After rightsizing, the largest lever is the rate you pay for each hour. On-demand is the default; everyone pays list price. Commit to a multi-year baseline and the price drops 20-70%. That is what Reserved Instances, Savings Plans, and Committed Use Discounts are for.
The Core Trade
You commit to spend at least $X per hour (Savings Plans) or use specific resources (RIs, CUDs) for 1 or 3 years. The cloud provider gives you a discount on that committed usage. Use less than committed — you still pay for the commitment. Use more — the excess is at on-demand rate.
Net effect: predictable workloads pay much less; the gamble is on how predictable they really are.
AWS: Savings Plans and Reserved Instances
AWS has both, in this rough order of flexibility:
| Vehicle | Flexibility | Discount | Use when |
|---|---|---|---|
| Compute Savings Plan | Any compute (EC2, Fargate, Lambda), any region, any family, any OS | up to ~66% (3y AURF) | Default choice for most workloads |
| EC2 Instance Savings Plan | Specific instance family + region; flex on size, OS, tenancy | up to ~72% | Specific stable family |
| SageMaker Savings Plan | SageMaker only | up to ~64% | SageMaker users |
| Convertible RI | Can exchange for different family/OS | up to ~54% | Mostly superseded by SP |
| Standard RI | Locked to family/region; can be sold on Marketplace | up to ~72% | Highly stable workloads only |
Plus terms — 1 year vs 3 year (deeper discount), All Upfront / Partial / No Upfront (deeper to shallower discount).
For most teams: Compute Savings Plans, 1-year, No Upfront is the right starting default. Easy to manage, broadly applicable, and the upside of 3-year deeper discount is offset by the risk of architectural change in 18 months.
RIs that still matter
- RDS RIs — Savings Plans don't cover RDS yet.
- ElastiCache RIs — same.
- Redshift RIs — same.
- OpenSearch RIs — same.
Buy these RIs separately to cover the database tier.
Azure: Reservations and Savings Plans
| Vehicle | Covers | Discount |
|---|---|---|
| Azure Savings Plan for Compute | VMs, AKS, App Service, Container Apps, Container Instances, Dedicated Hosts — any region, any series | up to ~65% |
| Reserved VM Instances | Specific VM size + region; size flexibility within group | up to ~72% |
| Reservations for SQL, Cosmos, Synapse, Redis, App Service, Databricks | Service-specific | varies, ~30-65% |
Azure Hybrid Benefit (using on-prem Windows Server / SQL Server licences) stacks on top — often the largest single saving for Windows estates.
GCP: Committed Use Discounts and Sustained Use Discounts
| Vehicle | Covers | Discount |
|---|---|---|
| Spend-based CUDs (Flexible CUDs) | Compute Engine, GKE, Cloud Run — commit to $/hour | up to ~28% (3y) |
| Resource-based CUDs | Specific machine type + region | up to ~57% (3y) |
| Sustained Use Discounts | Automatic discounts for VMs running >25% of month | up to ~30% |
| BigQuery Slots / Editions commitments | Analytics workload pricing | varies |
Sustained Use Discounts are automatic — no purchase needed. CUDs require explicit commitment.
The Coverage Target
How much of usage to cover with commitments? The community rule:
- ~60-80% commitment coverage of steady-state compute.
- The remaining 20-40% stays on-demand or Spot to absorb growth, seasonality, and migration.
Going to 100% leaves no headroom for change. 50% leaves money on the table. Tune over time using actual coverage and utilisation reports (every cloud has them).
Two Reports to Watch
| Report | What it tells you |
|---|---|
| Coverage | % of eligible usage covered by commitments. Target 60-80%. |
| Utilisation | % of commitments being used. Target >95%. |
Low coverage = leaving discount on the table. Low utilisation = paying for commitments you cannot consume.
Managing Commitments at Scale
Three patterns:
- Manual (Crawl). FinOps practitioner buys quarterly based on Cost Explorer / Advisor recommendations. Works up to ~$5M/year cloud spend.
- Centralised tooling (Walk). Vantage, ProsperOps, Cloudability, or in-house scripts watch usage and recommend. Buy approved monthly.
- Automated commitment management (Run). ProsperOps, Spot.io Eco, Zesty Commitment Manager, USEReady CloudOptimizer — fully automated buy/sell/exchange. They manage commitments dynamically, often outperforming manual by 5-10 percentage points.
The automated tools take a share of the savings as their fee. For estates over $10M/year, they usually pay for themselves several times over.
Common Mistakes
- Buying 3-year for unstable workloads. The 3-year discount is bigger but a re-architecture during the term turns it into stranded commitment. Default to 1-year until the workload is proven stable.
- Buying before rightsizing. Commitments lock in the wrong baseline. Rightsize first; commit second.
- Letting individual teams buy. Federated buying creates orphan reservations matched to specific accounts. Commitments belong to the org / billing account, managed centrally.
- Forgetting expiries. An expiring RI portfolio with no plan is a sudden 20% bill jump. Calendar of expiries is mandatory.
- Not selling unused Standard RIs on the Marketplace. AWS lets you sell unused Standard RIs to recover some value when workloads change.
- Convertible RIs that are never exchanged. Their flexibility is wasted unless you actively rebalance.
Spot, Preemptible, and Low-Priority
The other "cheap rate" lever, often underused:
- AWS Spot — up to 90% off; can be interrupted with 2-minute warning. Karpenter and EKS make Spot first-class for stateless workloads.
- Azure Spot VMs — same model; 1-minute eviction.
- GCP Spot VMs / Preemptible — up to 91% off; 30-second warning, 24-hour max lifetime.
Combine commitments (the steady-state baseline) with Spot (the variable burst) and on-demand (the buffer). Aim:
- ~60% Reserved / SP / CUD
- ~30% Spot
- ~10% on-demand
Mature CNCF-style workloads frequently achieve this; it dramatically reduces blended compute cost.
The Math Worth Remembering
A 1-year Compute Savings Plan at $1/hour ($8,760/year) at ~30% discount returns the commitment as $0.70/hour effective price. If you actually run an average of 1.2 effective hours/hour (i.e., you used 20% more than committed), the extra 0.2/hour is at on-demand $1, so blended is around $0.75/hour — still ~25% cheaper than fully on-demand. If you run only 0.7 hour/hour against the commitment, you paid for 0.3 hours of nothing — blended becomes $1.00/hour, no discount.
That is why coverage and utilisation are the two critical KPIs.
Commitments are the highest-leverage rate optimisation. Combined with rightsizing they routinely deliver 30-50% reduction on like-for-like workloads. Next we look at the specific patterns for Kubernetes, where allocation and rightsizing are harder.