ComparisonCommitments

Reserved Instances vs Savings Plans: Which Should You Buy?

Savings Plans replaced Reserved Instances for most compute, but not all of it. Where each discount still wins, and the traps in switching between them.

Erik LoydJune 18, 20266 min read
Reserved Instances
Savings Plans
vs

The verdict

Buy Savings Plans for compute and Reserved Instances for everything else. Compute Savings Plans carry nearly the same discount as convertible RIs with none of the exchange paperwork, but RDS, ElastiCache, OpenSearch, and Redshift still only discount through reservations.

Key takeaways

  • Both reach up to 72 percent off on-demand; the ceiling is the same, the flexibility is not
  • Savings Plans cover EC2, Fargate, and Lambda; RIs are the only discount for RDS and the other database engines
  • Standard RIs can be resold on the AWS Marketplace; a Savings Plan cannot be exited early
  • AWS applies RI discounts before Savings Plans, which matters when you hold both
AWS sells the same discount two ways. Reserved Instances arrived in 2009 and price a specific thing: this instance family, this region, sometimes this exact availability zone. Savings Plans arrived in 2019 and price a spending level: this many dollars per hour of compute, wherever that compute runs. Both trade a one- or three-year commitment for up to 72 percent off on-demand rates, and because the discount ceilings match, the choice between them is really a choice about what you are willing to lock.
For a fuller primer on how the commitment mechanics work hour by hour, our glossary entry on Savings Plans covers the application math. This piece is about the decision.

What each one actually locks

A Reserved Instance is an attribute lock. You commit to an instance family in a region (for example, m7i in us-east-1), and usage matching those attributes bills at the discounted rate. Regional Linux RIs flex across sizes within the family, so one m7i.2xlarge reservation can cover two m7i.xlarge instances. Standard RIs hold their attributes for the whole term; convertible RIs can be exchanged for different attributes, at the cost of a few points of discount and a manual exchange process.

A Savings Plan is a dollar lock. You commit to an hourly spend, say $15 per hour, and AWS applies it to your most-discounted eligible usage first, every hour, automatically. A Compute Savings Plan follows your usage across EC2 instance families, regions, operating systems, Fargate, and Lambda with no action from you. An EC2 Instance Savings Plan narrows to one family in one region, like an RI, in exchange for the top discount tier.

In travel terms: a Reserved Instance books a specific hotel room for the year, while a Savings Plan prepays a nightly budget that discounts whichever hotel you end up in.

The comparison, line by line

Reserved InstancesSavings Plans
Maximum discountUp to 72% (standard, 3-year, all upfront)Up to 72% (EC2 Instance SP, 3-year, all upfront)
Flexible-option discountUp to 66% (convertible)Up to 66% (Compute SP)
CoversEC2, RDS, ElastiCache, OpenSearch, Redshift, DynamoDB reserved capacityEC2, Fargate, Lambda, SageMaker (separate plan)
What you commit toInstance attributes (family, region, term)Dollars per hour of compute spend
Adapts to family or region movesStandard: no. Convertible: manual exchangeCompute SP: automatically
Capacity reservationZonal RIs reserve capacityNever
Early exitStandard EC2 RIs can be sold on the AWS MarketplaceNo resale, no cancellation
Applies to the billFirst, before Savings PlansAfter RIs, largest discount first

Two rows in that table decide most real purchases: coverage and early exit.

Where Savings Plans win

For compute, the case is hard to argue against. A Compute Savings Plan survives the events that strand Reserved Instances: an instance-family refresh to the next generation, a Graviton migration, a region move, a workload shifting from EC2 to Fargate. Each of those turns a standard RI into dead weight or an exchange ticket, and turns a Compute Savings Plan into nothing at all, because the plan never knew which instances it was covering in the first place.

That resilience is worth real money in practice. Teams that were burned by stranded RIs respond by under-committing, and paying on-demand rates for steady usage costs more than a slightly imperfect commitment ever would. A discount instrument you trust enough to actually buy beats a marginally deeper one you keep postponing.

If the workload's home is genuinely stable, the EC2 Instance Savings Plan takes the top discount tier while keeping size, OS, and tenancy flexibility within the family. It is the direct replacement for the standard EC2 RI in almost every case.

Where Reserved Instances still win

Databases, first and always. Savings Plans do not touch RDS, ElastiCache, OpenSearch, or Redshift. If a third of your bill is RDS, the only commitment discount available for that third is a reservation, and database RIs are often the calmest purchase on the menu: a production Postgres instance rarely changes family mid-term, and RDS reserved pricing reaches roughly 60 percent off on 3-year terms.

Capacity guarantees, second. A zonal RI reserves actual capacity in an availability zone. If you run workloads that must scale into scarce instance types during a regional event, that guarantee has a value no Savings Plan offers. Most teams do not need this; the ones that do already know.

The marketplace exit, third. A standard EC2 RI can be listed on the AWS Marketplace and sold if plans change. Recovery is rarely full price, but it is an exit. A Savings Plan has none: whatever you commit, you pay, every hour, until the term ends. Teams that value the escape hatch sometimes prefer RIs for that reason alone, though the same logic argues for committing a smaller, safer number instead.

The trap when you hold both

AWS applies Reserved Instances to matching usage first, then applies Savings Plans to whatever remains, largest discount first. That ordering has a sharp edge: if you buy RIs to cover a workload that a Savings Plan was already covering, the plan's committed dollars do not go away. They shift onto other usage, and if there is not enough eligible usage left, the commitment goes unused while you pay for it. Any purchase decision should start from your current hourly coverage picture, not from a service-by-service look at on-demand spend.

The same ordering makes staged purchases safer: cover the stable floor with the deep-discount instrument for that workload class, then layer a Compute Savings Plan over the variable remainder, sized to the hourly level your total eligible spend never drops below.

How to decide in practice

Split the bill in two. Everything that is a database engine gets evaluated as a reservation, term by term, against how confident you are the engine and family survive the term. Everything that is compute gets a Savings Plan: EC2 Instance SP where the family is settled, Compute SP everywhere else, sized to the measured hourly floor rather than the monthly average.

The sizing question matters more than the instrument question. Commit to your floor and either product saves you money; commit to your forecast and either one can hurt you. The rest of our commitments research covers coverage targets and the sizing math in detail.
Reserved InstancesSavings PlansCommitmentsEC2

Stop guessing which one is cheaper.