AWS
9 min readMay 30, 2026

AWS Savings Plans vs Reserved Instances: Which Saves More

AWS offers four commitment-based discount models, and they don't overlap cleanly. Picking the wrong one leaves money on the table or locks you into commitments that don't match how your infrastructure actually changes. Here's how to think about each model and when to use it.

AJ
Ajeet Yadav
Platform & Cloud Engineer
AWS Savings Plans vs Reserved Instances: Which Saves More

AWS's commitment-based pricing has four distinct models that are often grouped together as "Savings Plans vs Reserved Instances" — but that framing hides important differences within each category. The discount percentages, flexibility constraints, and best-fit workloads are different enough that a wrong choice at purchasing time can cost you thousands per month for 1–3 years.

Here's the full breakdown.

The Four Models

1. Compute Savings Plans

Discount: up to 66% off On-Demand
Commitment: hourly dollar amount, any compute
Applies to: EC2 (any family, size, region, OS, tenancy), Fargate, Lambda

Compute Savings Plans are the most flexible option AWS offers. You commit to spending, say, $5.00/hour on compute. AWS automatically applies the discount to whatever compute you're running — EC2 t3, m6i, c7g, ECS Fargate tasks, Lambda invocations — up to your committed amount. The discount follows the work.

This is the right choice if:

  • You run a mix of EC2, Fargate, and Lambda
  • You're planning to migrate from one instance family to another
  • You operate in multiple regions and workload distribution shifts

The trade-off: the discount is slightly lower (66%) than EC2 Instance Savings Plans (72%) because you're paying for flexibility.

2. EC2 Instance Savings Plans

Discount: up to 72% off On-Demand
Commitment: hourly dollar amount for a specific instance family in a specific region
Applies to: EC2 only, within the committed family + region, any size/OS/tenancy

EC2 Instance Savings Plans commit you to a family (e.g., m6i in us-east-1) but let you change the size, OS, and tenancy. So a m6i.large commitment still applies if you move to m6i.4xlarge or switch from Linux to Windows within that family.

This is the right choice if:

  • Your workload is pure EC2 (no Fargate or Lambda)
  • You know which instance family you'll be on for the term (1 or 3 years)
  • You need the highest discount rate without locking to a specific instance size

3. Standard Reserved Instances

Discount: up to 72% off On-Demand
Commitment: specific instance type, AZ or region, OS, tenancy
Applies to: EC2 only, for the exact committed configuration

Standard RIs are the most rigid — you're committing to a specific instance type (e.g., m6i.large), operating system, and either a specific AZ (zonal RI) or any AZ in a region (regional RI). The upside: you can buy and sell them on the AWS Reserved Instance Marketplace, which gives you an exit if your usage pattern changes.

Zonal vs regional distinction matters:

  • Zonal RI: applies to the specific AZ, provides a capacity reservation guarantee
  • Regional RI: applies across AZs in the region, more flexible, no capacity guarantee

If your production workload needs a guaranteed capacity reservation (you cannot afford to be unable to launch instances), zonal RIs are the only commitment model that provides it.

This is the right choice if:

  • Your instance type is stable and won't change for the commitment term
  • You need capacity reservation guarantees
  • You might want to sell commitments if plans change

4. Convertible Reserved Instances

Discount: up to 54% off On-Demand
Commitment: instance configuration that can be changed
Applies to: EC2 only

Convertibles let you exchange your RI for a different instance family, OS, or tenancy — but you can't sell them on the Marketplace and the discount is lower. The exchange must be for equal or greater value, and it's one-directional (you can't downsize).

In practice, EC2 Instance Savings Plans have made Convertible RIs mostly obsolete. Savings Plans offer comparable flexibility with a better discount.

Side-by-Side Comparison

Compute SPEC2 Instance SPStandard RIConvertible RI
Max discount66%72%72%54%
Commitment type$/hr spend$/hr spendInstance configInstance config
EC2 coverageAny family/regionOne family, one regionOne type/AZ or regionOne family (exchangeable)
Fargate/LambdaYesNoNoNo
Capacity reservationNoNoZonal onlyNo
MarketplaceNoNoYesNo
Term1 or 3 yr1 or 3 yr1 or 3 yr1 or 3 yr

How to Decide

If your stack includes Fargate or Lambda: start with Compute Savings Plans. The 6% discount gap over EC2 Instance Savings Plans is worth the flexibility across compute types, especially as you scale Fargate usage.

If it's pure EC2 and you know your instance family: EC2 Instance Savings Plans give you the highest discount with reasonable flexibility. You're covered if you resize from m6i.large to m6i.2xlarge, which is the most common scaling pattern.

If you need capacity reservation: Standard Zonal RIs are the only option. This matters for latency-sensitive services that can't wait for instance capacity to free up in a tight AZ.

If you're uncertain about instance type but committed to EC2: Convertible RIs are technically an option, but EC2 Instance Savings Plans are simpler and likely a better deal.

The Purchasing Strategy

1. Baseline, not peak

Buy commitments to cover your baseline steady-state usage, not your peak. Use On-Demand or Spot for the variable portion. The mistake I see most often is buying commitments that match current peak usage — then your workload scales down and you're paying for idle capacity you committed to.

Typical workload: 20 EC2 instances at night, 80 during business hours
Good commitment: cover 25-30 instances with SPs/RIs
Variable top: the remaining 50+ run On-Demand or Spot

2. Layer your coverage

Most organizations should layer multiple commitment types:

  1. Compute Savings Plans to cover baseline across EC2 + Fargate
  2. EC2 Instance Savings Plans for stable, well-understood EC2 families
  3. Spot for batch, CI/CD, stateless workers

3. Use AWS Cost Explorer's recommendations

Cost Explorer has a built-in Savings Plans and Reserved Instance recommendation tool. Give it a lookback period of 30–90 days and let it calculate the optimal commitment size based on your actual usage. Don't buy more than it recommends on the first pass.

bash
# Get Savings Plans recommendations via CLI
aws ce get-savings-plans-purchase-recommendation \
  --savings-plans-type COMPUTE_SP \
  --term-in-years ONE_YEAR \
  --payment-option NO_UPFRONT \
  --lookback-period-in-days THIRTY_DAYS

4. Payment options

All models support No Upfront, Partial Upfront, and All Upfront. The effective hourly rate is lowest with All Upfront, but the actual dollar savings depend on your discount rate and how long you hold the commitment. If cash flow matters, No Upfront with a 1-year term is almost always a better decision than locking into a 3-year All Upfront commitment for a workload that might change.

What the Discount Actually Means

A 66% discount on a m6i.large ($0.096/hr On-Demand in us-east-1) means you pay $0.033/hr. Over a 3-year term that's:

On-Demand:  $0.096 × 26,280 hours = $2,522/instance/3yr
All Upfront: $0.033 × 26,280 hours =  $867/instance/3yr

For 50 consistent m6i.large instances, the 3-year savings from full coverage is around $82,750. That's real money — but only if those 50 instances are actually running for 3 years. Size the commitment conservatively.

Related Topics

AWS
FinOps
Cost Optimization
Savings Plans
Reserved Instances
EC2

Found this useful? Share it.

Practice this

Read Next