Reserved Instances vs Savings Plans: Which Should You Buy?

Standard RIs lock to an instance family for up to 72% off; Savings Plans track spend instead, for a bit less. The trade-off, and which one fits your usage.

Published August 26, 2026 · Last updated August 26, 2026

The Cost Explorer recommendations panel is showing you a purchase button and a dollar figure, and it does not particularly care whether that button says "Reserved Instance" or "Savings Plan." Both promise a discount for committing to future usage. They are not the same product, they are not interchangeable, and picking the wrong one for your situation means locking in a worse deal for the next one to three years with no clean way to undo it.

What's actually different between the two?

A Reserved Instance is a commitment to a specific thing: an instance family, in a specific AWS Region, for one or three years. AWS matches any running instance with those exact attributes to the reservation and bills it at the discounted rate automatically — but only instances with those attributes. Move to a different family, migrate Regions, or shift the workload to a different service, and the match breaks. The reservation keeps billing you regardless; it just stops discounting anything.

A Savings Plan is a commitment to a number instead: a dollar amount per hour, for one or three years. AWS applies that commitment to whatever eligible usage you actually run, at the discounted rate, up to the committed amount — no family, Region, or service match required for a Compute Savings Plan. Usage above the commitment bills at the regular on-demand rate; usage below it means part of the dollar commitment goes unused, and unused commitment does not roll over to the next hour.

Both instruments exist for EC2. Only one exists for most other committable services — RDS, for instance, has Reserved Instances and no Savings Plan equivalent at all. Are RDS Reserved Instances worth buying? covers what that means when the flexible option simply isn't on the menu. SageMaker runs the gap the other way: it gets a dedicated Savings Plan of its own and no Reserved Instance option at any term, so there's no RI Marketplace to fall back on if the commitment turns out wrong — see are SageMaker Savings Plans worth the commitment? for what that leaves you deciding when the flexible instrument is the only one on offer.

How much does each one actually save?

AWS publishes ceiling discounts for four products that all apply to EC2 usage, and the ceiling is reached only at the deepest end of each — a 3-year term, the most upfront cash, the least flexibility:

ProductMax discount1-year average3-year averageWhat it locks to
Standard Reserved Instanceup to 72%~40%~60%One instance family, one Region
Convertible Reserved Instanceup to 66%~31%~54%One instance family, one Region (exchangeable)
EC2 Instance Savings Planup to 72%One instance family, one Region
Compute Savings Planup to 66%Nothing — covers EC2, Fargate, and Lambda

Notice the pattern: the two options with a matching discount ceiling — Standard RI and EC2 Instance Savings Plan, both up to 72% — are also the two with the least flexibility, locked to a single family and Region either way. Convertible RIs and Compute Savings Plans both give something up in exchange for staying useful when your infrastructure changes, and AWS prices that trade-off at roughly six points either way. There is no free lunch here: the deepest discount and the most flexibility are opposite ends of the same lever, not independent choices.

Which one is more flexible if your usage changes?

Flexibility works differently for each, and the difference is what actually matters once you're a year into the term.

Compute Savings Plans adjust automatically. Move a workload from c5 to m7g, shift it to a different Region, or migrate it from EC2 to Fargate mid-term, and the discount follows without you doing anything. Nothing to exchange, nothing to modify — the dollar commitment just keeps applying to whatever eligible usage shows up.

Convertible RIs require you to act. They can be exchanged for a different Convertible RI "of equal or greater value" through the ExchangeReservedInstances API or the console — covering a change in instance family, operating system, tenancy, or payment option. That's real flexibility, but it's manual: you have to notice the mismatch and initiate the exchange yourself. Nothing adjusts on its own.

Standard RIs barely move. You can modify the Availability Zone, the instance size within the same family (Linux only), and the networking type — but you cannot exchange a Standard RI into a different instance family. If your fleet moves off the family you reserved, the discount simply stops applying to anything.

Savings Plans, once bought, are fixed. There's a narrow return window — a commitment of $100/hour or less, purchased within the last 7 days and the same calendar month — and nothing beyond it. No exchange mechanism exists for a Savings Plan the way it does for a Convertible RI.

How do I check what I already have covered — and what I don't?

Before buying either one, see how much of your current usage is already committed and how much is running at the full on-demand rate:

aws ce get-savings-plans-coverage \
  --time-period Start=2026-07-01,End=2026-08-01 \
  --granularity MONTHLY \
  --metrics SpendCoveredBySavingsPlans OnDemandCost
aws ce get-reservation-coverage \
  --time-period Start=2026-07-01,End=2026-08-01 \
  --granularity MONTHLY

Both calls return a coverage percentage and the on-demand spend still running uncovered. A low coverage number next to steady, predictable usage is the actual signal to buy something — not a recommendation panel showing a big dollar figure, which optimizes for the deal AWS can offer, not for whether that deal fits how your usage actually moves.

Once you know there's a real gap, pull AWS's own sizing recommendation for each instrument rather than guessing a commitment amount:

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 SIXTY_DAYS
aws ce get-reservation-purchase-recommendation \
  --service "Amazon Elastic Compute Cloud - Compute" \
  --term-in-years ONE_YEAR --payment-option NO_UPFRONT \
  --lookback-period-in-days SIXTY_DAYS

Read the estimated utilization field in both responses before you read the estimated savings figure. A recommendation that assumes you'll use 95% of the commitment and a fleet that's actually growing or shrinking are two different bets, and only one of them is the one you're being sold.

Which one should you actually buy?

Work it in this order:

If your fleet is genuinely stable — same instance family, same Region, no migration or architecture change planned — a Standard RI captures the deepest discount for free, and the RI Marketplace gives you a real (if partial) exit if you're wrong.

If you expect any change — a Graviton migration, a Region consolidation, a move to Fargate, or just less certainty than "stable" — a Compute Savings Plan is worth the roughly six-point discount haircut. It's the only one of the four that adjusts to a changed architecture without you doing anything, and it also covers Fargate and Lambda usage the same commitment would otherwise miss entirely.

If you want the deep discount but some room to change instance families, a Convertible RI sits between the two — better than a Compute Savings Plan's ceiling, worse than a Standard RI's, and it requires you to notice the mismatch and act instead of adjusting on its own.

If the workload is RDS, ElastiCache, or Redshift, the choice doesn't exist — those services offer Reserved Instances only, and the commitment math and exit options above (minus the RI Marketplace, which doesn't cover them) are what you're actually deciding between.

What else should I check before I commit to either one?

A commitment discounts the rate on whatever you're already running — it does nothing about whether you should be running it. EC2 Savings Plans: when do they pay off works through the break-even utilization math in detail and the idle-instance cleanup that should happen before any multi-year commitment, not after. And if the workload in question is a database rather than compute, Are RDS Reserved Instances worth buying? covers the same commitment risk one tier over, where there's no Savings Plan alternative to fall back on.

Committing to a discount is also one of the last moves in an account cleanup, not the first one — our walk-through of where a small team's AWS bill actually leaks works through the rest of the account in order of savings per minute spent, most of which is cheaper and faster to fix than any multi-year commitment.

How do I find committable usage — and avoid locking in waste — across my whole account?

Pulling coverage and recommendation data by hand for one Region is a few CLI calls. Doing it for every Region, separating usage that's genuinely stable from usage that's about to be resized or retired, and re-checking it as the fleet changes over a one- or three-year term is the part that gets skipped. That's what a scan is for. Parsivex checks every Region for EC2 and RDS usage stable enough to be worth committing against, flags it separately from anything idle or over-provisioned, and keeps watching afterward — so a commitment sized for today's fleet doesn't quietly lock in tomorrow's waste.

For what this finding means once it appears in your report, see Reserved Instance opportunity, or read how scans work before you connect an account.