Main content
Guide

Cloud cost optimization: 12 proven strategies to reduce your cloud bill

Cloud cost optimization is the continuous practice of reducing cloud spend without reducing business value: removing waste, matching resources to real demand, paying lower rates through commitment discounts and spot capacity, and making cost visible to the engineers who create it. Done well, it is a recurring engineering and finance process, not a one-off cleanup.

Last updated: · 16 min read

Key points

  • Clean up idle resources and rightsize first; buy commitment discounts only for the steady usage that remains.
  • Rate optimization (Savings Plans, reservations, committed use discounts, spot) and usage optimization (rightsizing, scheduling, cleanup) are separate levers. You need both.
  • Allocation comes before accountability: aim for at least 70% of spend mapped to a known owner, then 85% and more than 90% as the practice matures.
  • Prevent new waste with cost review in pull requests, tagging policy and anomaly alerts, and track realized savings rather than recommendations.

Why cloud bills keep growing

Cloud spend rarely grows because of one bad decision. It grows because provisioning is self-service, billing is usage-based and very little turns itself off. The published data points in the same direction:

  • Waste is rising again. Flexera’s 2026 State of the Cloud Report puts wasted cloud spend at 29%, the first increase in five years, and 85% of respondents cite managing cloud spend as a top challenge (Flexera, 2026).
  • Waste reduction is still the top priority. The FinOps Foundation’s State of FinOps 2026 survey of 1,192 respondents, representing more than $83 billion in annual cloud spend, found that workload optimization and waste reduction remains practitioners’ top current priority, and 98% now manage AI spend (FinOps Foundation, 2026).
  • The base keeps expanding. Gartner forecast that worldwide end-user spending on public cloud services would total $723.4 billion in 2025, up from $595.7 billion in 2024 (Gartner, 2024).

Underneath those numbers are the same structural causes in almost every organization:

  • Safety-margin sizing. Instances, databases and Kubernetes requests are sized for peak load or fear of an outage, then never revisited.
  • No owner. Untagged resources outlive the project that created them. Unattached volumes, old snapshots and idle load balancers keep billing.
  • Rate blindness. Steady workloads run at on-demand prices because nobody owns commitment purchasing.
  • Hidden transfer costs. NAT gateway processing, cross-zone traffic and internet egress rarely appear on architecture diagrams.
  • Late feedback. Engineers see cost weeks after deploying, in a monthly invoice grouped by service rather than by team or change.
  • New workload types. GPU instances and managed AI services have different pricing units and less mature optimization habits.

12 cloud cost optimization strategies

The strategies below are ordered roughly by how most teams should sequence them: remove waste, fix sizing, then lower rates, then build the controls that stop waste coming back.

1. Rightsize compute and databases

Rightsizing matches instance type, size and count to observed utilization. It is usually the largest usage-based saving and it should come before any commitment purchase; otherwise you lock in discounts on capacity you do not need.

  • Start with the native recommenders. AWS Compute Optimizer analyzes 14 days of CloudWatch metrics by default, or up to 93 days with its paid enhanced infrastructure metrics. Azure Advisor analyzes seven days by default, configurable up to 90. Google Cloud’s machine type recommender uses the last eight days of data.
  • Collect memory metrics. Without an agent, many recommendations rely mainly on CPU and network. Google notes its machine type recommendations don’t capture short CPU spikes, so check peak behavior before downsizing latency-sensitive services.
  • Consider newer generations and processor architectures, not just smaller sizes. AWS Cost Optimization Hub, for example, includes Graviton migration recommendations.
  • Include managed databases. AWS Compute Optimizer covers Amazon RDS and Aurora, and database over-provisioning persists because resizing feels risky.

2. Remove idle and orphaned resources

Idle resources deliver no value, which makes them the safest place to start. Typical candidates are unattached block volumes, snapshots past their retention period, idle virtual machines, load balancers with no healthy targets, unused public IP addresses and forgotten test environments. The native tools give you a first list:

  • Azure Advisor recommends shutting down a VM when, among other criteria, P95 CPU utilization is below 3% and outbound network utilization is below 2% over seven days.
  • Google Cloud’s idle VM recommender evaluates CPU and network usage over a 14-day observation period by default.
  • OCI Cloud Advisor flags underutilized Compute instances and unattached block and boot volumes.

Make cleanup safe enough to run every week: tag the resource, notify the owner, snapshot anything that might matter, and delete after a grace period.

3. Schedule non-production environments

Development, test and demo environments rarely need to run around the clock. The AWS Well-Architected Framework gives the arithmetic: an environment used eight hours a day during the working week runs 40 of 168 hours, so stopping it the rest of the time is a potential 75% saving on that compute.

  • Start with environments that have a clear owner and predictable working hours.
  • Know what keeps billing. On Azure, a VM shut down from inside the guest OS stays in the Stopped (allocated) state and is still billed; only a deallocated VM stops compute charges. Disks and some networking resources continue to incur charges on every cloud.
  • Apply the same schedule to Kubernetes node pools and non-production databases, not only to VMs.

4. Buy commitment discounts for steady usage

For workloads that run continuously, commitment-based discounts are the largest rate-based saving. You commit to a level of usage or spend for one or three years and pay a lower hourly rate. Published maximums include up to 72% for AWS EC2 Instance Savings Plans and Reserved Instances, up to 72% for Azure reservations and up to 65% for the Azure savings plan for compute, and up to 55% for Google Cloud resource-based committed use discounts (up to 70% for memory-optimized machine series). The discount table below compares them.

  1. Rightsize and clean up first.
  2. Cover the stable baseline, not the peak. Look at the lowest sustained usage over recent months.
  3. Prefer flexible instruments (Compute Savings Plans, Azure savings plans, spend-based CUDs) where workloads are still changing, and resource-specific ones where they are not.
  4. Stagger purchases in smaller tranches so expirations don’t all land at once and you can adjust as usage changes.
  5. Track coverage (the share of eligible usage that is discounted) and utilization (the share of the commitment you actually use).

Read the terms before buying. Microsoft states that Azure savings plan purchases can’t be cancelled or refunded, whereas Azure reservations can be exchanged and refunded up to $50,000 USD in a rolling 12-month window.

5. Run interruptible workloads on spot capacity

Providers sell spare capacity at deep discounts in exchange for the right to reclaim it. AWS EC2 Spot Instances are up to 90% off On-Demand prices with a two-minute interruption notice. Google Cloud Spot VMs offer discounts of up to 91% for many machine types, with no dedicated notice period by default (a 120-second option is in preview). Azure Spot Virtual Machines have no SLA and are evicted with up to 30 seconds’ notice. OCI preemptible instances cost 50% less than on-demand capacity, with an event emitted two minutes before termination.

Good fits are batch and data processing, CI runners, rendering, stateless services behind autoscaling and Kubernetes node pools for fault-tolerant workloads. Diversify across instance types and zones, checkpoint long-running jobs and handle the interruption signal gracefully.

6. Tier storage and set lifecycle policies

Storage costs accumulate quietly because data is rarely deleted.

  • Set lifecycle rules for logs, backups and build artifacts: transition to colder tiers, then expire.
  • For unpredictable access patterns, S3 Intelligent-Tiering moves objects not accessed for 30 consecutive days to an Infrequent Access tier and, after 90 days, to Archive Instant Access, for a small monitoring charge. Objects smaller than 128 KB are not monitored or tiered.
  • OCI Cloud Advisor flags Object Storage buckets without lifecycle policy rules, which is a sensible check on any cloud.
  • Review snapshot retention and block volume types; over-provisioned performance tiers are a common rightsizing target.

7. Reduce data transfer and networking costs

Networking charges are hard to predict from a diagram and easy to miss in a bill grouped by service.

  • AWS NAT gateways are charged per hour and per gigabyte processed, so heavy traffic from private subnets to other AWS services is worth routing through VPC endpoints where supported.
  • Data transfer between Availability Zones is charged on AWS. Keep chatty service-to-service traffic zone-local where your resilience design allows.
  • Cache and compress at the edge for internet-facing workloads, and avoid serving large downloads from origin.
  • Keep analytics close to data. Replicating large datasets between regions or clouds creates recurring transfer charges.

8. Right-size Kubernetes requests and limits

The Kubernetes scheduler places pods based on their resource requests, not their actual usage. Inflated requests reserve node capacity that nothing uses, so clusters scale out and costs rise even when utilization looks low.

  • Set requests from observed usage over a representative period and revisit them as workloads change.
  • Understand limits: CPU limits are enforced by throttling, while memory limits are enforced by out-of-memory kills. Tight memory limits cause restarts; generous requests hide waste.
  • Use the Horizontal Pod Autoscaler, which is built in, for replica counts. The Vertical Pod Autoscaler is an add-on that must be installed separately. Pair either with node autoscaling so empty nodes are removed.
  • Allocate cluster cost to namespaces, labels and teams. OpenCost, a Cloud Native Computing Foundation incubating project, measures and allocates Kubernetes and related cloud costs in real time.

9. Tag resources and allocate every dollar

You can’t optimize what nobody owns. Allocation turns an invoice into team-level costs and is the foundation for showback, chargeback and accountability.

  • Define a small mandatory tag set: owner, team or cost center, environment, and application or service.
  • Enforce tags at creation time through infrastructure-as-code and policy, not in a quarterly cleanup.
  • Know each platform’s rules. AWS user-defined cost allocation tags must be activated before they appear in Cost Explorer and cost allocation reports, and can take up to 24 hours to appear. Microsoft Cost Management supports tag inheritance and rules that split shared costs. OCI budgets can be set on compartments or tags.
  • Document how untaggable and shared costs (support, data transfer, shared clusters) are split.

The FinOps Foundation maturity model uses allocation as a benchmark: at least 70% of cost allocated to a known owner at the Crawl stage, at least 85% at Walk and more than 90% at Run.

10. Detect anomalies and set budgets

A misconfigured autoscaler or runaway job can consume a month’s budget in days. If the first signal is the invoice, the money is already gone.

  • Turn on native detection. AWS Cost Anomaly Detection uses machine learning that accounts for trends and seasonality, and can alert by email or Amazon SNS, including to Slack and Microsoft Teams. Microsoft Cost Management anomaly alerts flag unexpected changes in daily usage for subscriptions.
  • Add budgets with forecast-based alerts. AWS Budgets can trigger actions automatically or after approval; OCI budgets alert on actual or forecasted spend and are evaluated every 24 hours.
  • Route alerts to the owning team, not a shared inbox, and agree who responds and how quickly.

11. Review cost in pull requests

The cheapest cost to remove is one that never ships. Show the cost impact of infrastructure changes in the pull request, next to the code diff, while the engineer still has context.

  • Estimate the monthly cost change of infrastructure-as-code changes, such as Terraform, at review time.
  • Set thresholds so small changes pass without friction and large increases need a named approver.
  • Encode guardrails as policy: approved instance families, mandatory tags, lifecycle rules required on new buckets.

12. Measure unit economics

Rising total spend is not a problem if revenue, customers or transactions grow faster. The FinOps principle “business value drives technology decisions” points teams toward unit metrics rather than aggregate spend, and the AWS Well-Architected Framework asks you to measure the business output of a workload against the cost of delivering it.

  • Pick one or two unit metrics per product: cost per customer, per thousand API requests, per order or per gigabyte processed.
  • Combine allocated cost with a volume metric from product analytics or billing systems.
  • Report the trend. A falling unit cost alongside rising total spend is usually good news.

Discount models by provider

Each provider names its discount programs differently. This table summarizes the main options and published maximums; actual discounts depend on machine family, region, term and payment option.

Scroll sideways to see the full table.

“Up to” figures are provider-published maximums, checked against provider documentation on 15 September 2026.
ProviderCommitment discountsOther programsSpot or preemptibleInterruption notice
AWSEC2 Instance Savings Plans up to 72%; Compute Savings Plans up to 66%; Reserved Instances up to 72% (Standard) or 66% (Convertible)1- or 3-year terms; All, Partial or No Upfront payment for Reserved InstancesEC2 Spot Instances, up to 90% off On-DemandTwo minutes
AzureReservations up to 72%; savings plan for compute up to 65%Azure Hybrid Benefit for existing Windows Server, SQL Server, Red Hat and SUSE licensesSpot Virtual Machines, variable pricing, no SLAUp to 30 seconds
Google CloudResource-based CUDs up to 55% (up to 70% memory-optimized); Compute Flexible CUDs 28% (1-year) or 46% (3-year) for general-purpose and compute-optimized seriesSustained use discounts up to 30%, applied automatically to eligible machine series; they don’t stack with CUDsSpot VMs, up to 91% offNone by default; 120 seconds in preview
OCISet through your Oracle agreement; confirm terms with Oracle10 TB of outbound data transfer per month included in Always Free resourcesPreemptible instances, 50% less than on-demandTwo minutes

Provider-specific tips

AWS

  • Enable Cost Optimization Hub. It consolidates rightsizing, idle resource, Savings Plans and Reserved Instance recommendations across accounts and Regions, accounts for your commercial terms and deduplicates overlapping savings.
  • Opt in to Compute Optimizer at the organization level. Beyond EC2 it covers Auto Scaling groups, EBS volumes, Lambda, ECS on Fargate, RDS and Aurora, NAT gateways, DynamoDB and more.
  • Activate cost allocation tags early; they are not applied to cost data until activated.
  • Check NAT gateway data processing and cross-AZ transfer in Cost Explorer before assuming compute is the problem.

More detail: AWS cost optimization with Varcio.

Azure

  • Work through Azure Advisor cost recommendations, which are updated daily, and adjust the lookback period for workloads with monthly cycles.
  • Choose between reservations (deeper discounts for a specific resource, size and region) and savings plans (hourly spend commitment that applies across eligible services and regions) per workload.
  • Apply Azure Hybrid Benefit wherever you hold eligible Windows Server, SQL Server, Red Hat or SUSE licenses; reservations don’t cover software costs.
  • Deallocate rather than stop VMs, and set a Spot eviction policy of Delete for disposable workloads so disks don’t keep billing.

More detail: Azure cost management with Varcio.

Google Cloud

  • Check sustained use discount eligibility. They apply automatically, but only to certain machine series such as N1, N2, N2D, C2, M1 and M2, and not in combination with CUDs.
  • Use the idle VM and machine type recommenders, and install the Ops Agent so memory is considered.
  • Match commitment type to the workload: resource-based CUDs for stable Compute Engine usage, spend-based commitments for services such as Cloud SQL, BigQuery and Spanner.
  • Export billing data to BigQuery for detailed allocation by project and label.

More detail: Google Cloud cost optimization with Varcio.

Oracle Cloud Infrastructure (OCI)

  • Review Cloud Advisor cost management recommendations for underutilized Compute instances, unattached volumes and buckets without lifecycle rules.
  • Group Cost Analysis by compartment, tag and service to find the top cost drivers, and use Cost and Usage Reports for detailed allocation.
  • Set budgets on compartments or tags, with alerts on actual or forecasted spend.
  • Use preemptible instances for batch work. They can’t be stopped, started or rebooted after creation, and their shape can’t be changed.

More detail: OCI cost optimization with Varcio.

Kubernetes

  • Compare requested CPU and memory with actual usage per namespace; the gap is capacity you pay for but don’t use.
  • Scale nodes down as well as pods, and consolidate small, fragmented node pools.
  • Run fault-tolerant workloads on spot or preemptible node pools with pod disruption budgets.
  • Allocate shared cluster costs to teams so cost shows up where decisions are made.

More detail: Kubernetes cost management with Varcio.

How to build a cloud cost optimization program

One-off cleanups decay within months. A program makes optimization routine by combining clear owners, a fixed cadence and tooling that puts cost data in front of the right people.

People

The FinOps Foundation defines core personas that map directly onto optimization work: a FinOps practitioner who coordinates, engineering teams who own usage, finance who owns budgets and forecasts, procurement who owns commitments and contracts, and product owners and leadership who set cost and value targets. In a smaller company one person may cover several roles part-time. What matters is that every recommendation has a named owner.

Process

  • Weekly: review new high-value findings with owning teams; approve, schedule or reject each one with a reason.
  • Monthly: review commitment coverage and utilization, budget against actuals, and anomaly follow-ups.
  • Quarterly: revisit unit economics, tagging policy, forecast accuracy and targets for the next quarter.

Track realized savings, confirmed in subsequent bills, separately from identified savings. Recommendation totals overstate impact because some findings are rejected, delayed or offset by growth. For the wider operating model, see What is FinOps?

Tools

Start with the native tools for each cloud. Add a multi-cloud platform when you need consistent allocation across providers, Kubernetes cost visibility, approval workflows or savings tracking that the native consoles don’t provide. Our cloud cost management tools guide includes an evaluation checklist. If you want help setting up the practice, Varcio Cloud Services offers FinOps consulting.

Metrics to track

A handful of metrics shows whether optimization is working. The benchmarks below come from the FinOps Foundation maturity model where one exists; the Foundation recommends maturing the capabilities that matter most to your business rather than aiming for Run everywhere.

Scroll sideways to see the full table.

MetricWhat it tells youBenchmark
Allocated spendShare of cost mapped to a known owner; whether accountability is possibleCrawl: at least 70%. Walk: at least 85%. Run: more than 90%.
Commitment discount coverageShare of eligible usage paying discounted ratesCrawl: about 60%. Walk: more than 75%. Run: more than 80%.
Forecast varianceHow predictable spend is against forecastCrawl: below 20%. Walk: below 10%. Run: below 5%.
Commitment utilizationWhether you are paying for commitments you don’t useSet internally; investigate sustained under-utilization
Realized vs identified savingsHow much of the opportunity actually lands on the billSet internally; track the ratio over time
Anomaly time to resolveHow quickly unexpected spend is caught and stoppedSet internally by severity
Unit costCost relative to business output, such as cost per customerFlat or falling as volume grows

How Varcio helps

The Varcio platform applies the strategies above across AWS, Azure, Google Cloud, OCI and Kubernetes in one place:

  • Read-only by default. AWS connects through IAM AssumeRole with an External ID, so no long-lived keys are stored; Azure through a service principal with an encrypted client secret; Google Cloud through a service account with encrypted key material; OCI through an API signing key encrypted at rest; and Kubernetes through Kubecost, OpenCost or a bundled in-cluster agent. Execution access is a separate, deliberate step.
  • Prioritized findings. Each finding is costed and ranked by savings, confidence and effort.
  • Governed changes. Changes are approval-gated, with approvals in Slack or Microsoft Teams, and recorded in an immutable audit log.
  • Savings you can verify. Identified and realized savings are tracked separately, with savings verified against subsequent spend.
  • Prevention. PR cost review for infrastructure changes, tag governance, cost allocation, policies, anomaly detection, forecasting and Reserved Instance and Savings Plan recommendations.

Costed findings arrive from the first scan. See capabilities or pricing.

Frequently asked questions

What is cloud cost optimization?

Cloud cost optimization is the ongoing practice of reducing cloud spend without reducing business value. It combines usage optimization (rightsizing, removing idle resources and scheduling non-production environments) with rate optimization (commitment discounts and spot capacity), and it makes costs visible to the teams that create them.

How can I reduce cloud costs quickly?

Start with low-risk actions: delete unattached volumes and expired snapshots, stop idle virtual machines, schedule non-production environments to stop outside working hours, and turn on budget and anomaly alerts. Then rightsize over-provisioned compute and databases before buying commitment discounts for the steady usage that remains.

How much can cloud cost optimization save?

It depends on your starting point. Flexera’s 2026 State of the Cloud Report puts wasted cloud spend at 29%, and providers publish maximum discounts such as up to 72% for AWS Reserved Instances and Azure reservations or up to 90% for AWS Spot Instances. Those figures are ceilings, not typical results, so measure savings against your own bills.

Should I rightsize before buying Savings Plans or Reserved Instances?

Yes. Commitments discount a fixed amount of usage or spend for one or three years. If you commit before rightsizing and cleaning up idle resources, you lock in discounts on capacity you do not need, and later rightsizing can leave the commitment under-utilized.

What is the difference between Savings Plans and Reserved Instances?

On AWS, Savings Plans are a one- or three-year commitment to a consistent amount of hourly spend. Compute Savings Plans apply across Amazon EC2, AWS Fargate and AWS Lambda with savings of up to 66%, and EC2 Instance Savings Plans apply to an instance family in a region with savings of up to 72%. Reserved Instances apply to specific instance attributes: Standard Reserved Instances offer up to 72% and Convertible Reserved Instances up to 66% with the flexibility to change attributes.

Are spot instances safe for production workloads?

They are safe for fault-tolerant, stateless and batch workloads that are designed for interruption. The provider can reclaim spot capacity: AWS gives a two-minute interruption notice, Azure up to 30 seconds, OCI two minutes, and Google Cloud Spot VMs have no dedicated notice period by default. Keep stateful and latency-critical components on regular capacity.

How do you reduce Kubernetes costs?

Set CPU and memory requests from observed usage, because the Kubernetes scheduler reserves node capacity based on requests rather than actual consumption. Use horizontal pod autoscaling together with node autoscaling so that empty nodes are removed, run fault-tolerant workloads on spot node pools, and allocate cluster costs to namespaces and teams with a tool such as OpenCost.

Is cloud cost optimization the same as FinOps?

No. Cloud cost optimization is one set of activities within FinOps. FinOps, as defined by the FinOps Foundation, is a broader operational framework and cultural practice that also covers cost allocation, forecasting, budgeting, unit economics and governance, and brings engineering, finance and business teams together to maximize the business value of technology.

Sources

  1. Flexera finds cloud value is rising while AI waste grows (2026 State of the Cloud Report) Flexera, 2026
  2. State of FinOps 2026 FinOps Foundation, 2026
  3. Gartner forecasts worldwide public cloud end-user spending to total $723 billion in 2025 Gartner, 2024
  4. FinOps maturity model FinOps Foundation
  5. FinOps principles FinOps Foundation
  6. Cost optimization pillar: design principles AWS Well-Architected Framework
  7. Compute Savings Plans pricing Amazon Web Services
  8. Amazon EC2 Reserved Instances Amazon Web Services
  9. Amazon EC2 Spot Instances Amazon Web Services
  10. Spot Instance interruption notices Amazon EC2 User Guide
  11. What is AWS Compute Optimizer? AWS documentation
  12. Identifying opportunities with Cost Optimization Hub AWS documentation
  13. AWS Cost Anomaly Detection Amazon Web Services
  14. AWS Budgets Amazon Web Services
  15. Organizing and tracking costs using AWS cost allocation tags AWS documentation
  16. Amazon VPC pricing Amazon Web Services
  17. How S3 Intelligent-Tiering works Amazon S3 User Guide
  18. What are Azure Reservations? Microsoft Learn
  19. Azure savings plan for compute Microsoft Azure
  20. What are savings plans? Microsoft Learn
  21. About Azure Spot Virtual Machines Microsoft Learn
  22. States and billing status of Azure Virtual Machines Microsoft Learn
  23. Azure Advisor: optimize VM spend by resizing or shutting down underutilized instances Microsoft Learn
  24. Overview of Cost Management Microsoft Learn
  25. Committed use discounts for Compute Engine Google Cloud documentation
  26. Sustained use discounts Google Cloud documentation
  27. Spot VMs Google Cloud documentation
  28. Idle VM recommendations overview Google Cloud documentation
  29. Apply machine type recommendations for VM instances Google Cloud documentation
  30. Preemptible instances Oracle Cloud Infrastructure documentation
  31. Cloud Advisor overview Oracle Cloud Infrastructure documentation
  32. Budgets overview Oracle Cloud Infrastructure documentation
  33. Always Free resources Oracle Cloud Infrastructure documentation
  34. Resource management for pods and containers Kubernetes documentation
  35. Autoscaling workloads Kubernetes documentation
  36. OpenCost OpenCost (CNCF)

Provider pricing and discount figures were checked against the linked documentation on 15 September 2026. Providers change pricing and programs regularly; confirm current terms before making purchasing decisions.

See what you can save

Connect a cloud account with read-only access and get costed, ranked findings from your first scan.