The 13% flexibility premium: Compute Savings Plans vs EC2 Instance Savings Plans
A Compute Savings Plan costs about 13% more than an EC2 Instance Savings Plan for the same instance, and that 13% is the price of being allowed to change your mind. Across 1,360 us-east-1 Linux instance types, the median EC2 Instance rate is 86.95% of the Compute rate at one year and 86.83% at three.
Both plans lock you into a dollar-per-hour spend for one or three years. The Compute plan covers any EC2 family in any region, plus Fargate and Lambda. The EC2 Instance plan covers one family in one region. Inside that family and region it still covers any size, OS, and tenancy, so you can resize an m7i.xlarge to an m7i.4xlarge, switch it to Windows, or change its tenancy and stay covered. What it can’t do is follow you to m8i or to another region.
The median is the headline, not a constant. The premium runs from 8% to 17% across c/m/r families, with third-generation families near 4% and GPU plans as high as 41%. And the fence pays for itself later than most people assume: a full-fleet move has to land in the last five months of a three-year term for the EC2 plan to come out ahead.
The Savings Plans file is a raw price-list cache, 504,706 rows, not one of the processed CSVs the site builds from. Filtering to us-east-1, Linux, and No Upfront (billed hourly, nothing paid in advance) leaves 1,360 instance types at 1 year and 1,340 at 3 years. On-demand rates come from instance_pricing.csv; the two sources agree on the three examples below.
On the same instance, the gap runs 8% to 13%
| Instance | On‑demand | 1yr Compute | 1yr EC2 Inst | 1yr gap | 3yr Compute | 3yr EC2 Inst | 3yr gap |
|---|---|---|---|---|---|---|---|
| c7g.xlarge | $0.1450 | $0.10400 | $0.09550 | 8.2% | $0.07020 | $0.06370 | 9.3% |
| m7i.xlarge | $0.2016 | $0.14811 | $0.13336 | 10.0% | $0.10224 | $0.09145 | 10.6% |
| r7i.xlarge | $0.2646 | $0.19170 | $0.17503 | 8.7% | $0.13803 | $0.12002 | 13.0% |
At three years, the per-instance saving is $57/year for c7g.xlarge, $95 for m7i.xlarge, and $158 for r7i.xlarge. The 1-year gaps are smaller for these three. The median 1-year gap is still 13.1%, so they are not representative of the whole catalog.
The gap is not the same as the difference in discount depth. c7g.xlarge gets 51.6% off On-Demand on the 3-year Compute plan and 56.1% on the EC2 Instance plan, a 4.5-point difference in discount that becomes a 9.3% difference in price. The ratio is what you pay. The discount points are what the pricing page shows.
The median is not a setting
The 13% figure is a median over a distribution with hard steps, not a smooth curve. The ratio moves family by family, and the values repeat in cohorts:
| Family | 1yr ratio | 1yr premium | 3yr ratio | 3yr premium |
|---|---|---|---|---|
| m5 | 0.8576 | 14.2% | 0.8519 | 14.8% |
| c5 | 0.8696 | 13.0% | 0.8680 | 13.2% |
| r5 | 0.8695 | 13.1% | 0.8282 | 17.2% |
| m7i | 0.9004 | 10.0% | 0.8944 | 10.6% |
| c7g | 0.9192 | 8.1% | 0.9077 | 9.2% |
| r7i | 0.9130 | 8.7% | 0.8695 | 13.0% |
| p5.48xlarge | 0.8000 | 20.0% | 0.5882 | 41.2% |
The premium is a family-level number, not a generation-level one. m6i, m7i, m8i, m7g, and m8g all land at 10.0% for one year and 10.6% for three. c6i, c7i, c8i, c7g, and c8g land at 8.1% to 9.2%. The r-family is stranger: r6i, r7i, and r8i sit at 8.7% at one year, then drop to 13.0% at three years. The older m5, c5, and r5 cohorts sit at 13% to 17%.
Generation alone does not predict the ratio. The r-family moves 4.3 points between terms while the m and c families barely move. A 3-year commitment does not automatically buy a bigger flexibility premium.
GPU plans are a different market. p5.48xlarge is 20.0% at one year and 41.2% at three. The 13% median says nothing useful about accelerator capacity planning. At the other end, c3, m3, and r3 sit at 3.5% to 4.3% for one year. The fence is nearly free on those families.
On 50 m7i instances the gap is $4,726 a year
Take 50 m7i.xlarge instances on a 3-year No Upfront plan. The Compute plan costs $44,781 per year. The EC2 Instance plan costs $40,055. The gap is $4,726 per year, or $394 per month, and $14,178 over the term. That is 10.6%, not 13.2%, because m7i is one of the 10.6% families. At the fleet-wide median, the same Compute bill would fall to $38,883, a $5,898 annual gap. The median would overstate the saving on this fleet by $1,172 a year.
On a $50,000/month Compute plan covering EC2 only, the median gap is $6,586/month, or $79,030/year. At m7i’s 10.6%, it is $5,277/month, or $63,322/year. Over three years the median premium is $237,090. The difference between the median and the actual family is $1,309/month, which is the error in assuming the median applies to your fleet.
A full-fleet move has to land in the last five months
Let C be one year of Compute plan cost and r the EC2/Compute ratio. At the 3-year median, r = 0.868.
Annual premium = (1 - r) × C = 0.132C
3-year premium = 3 × 0.132C = 0.395C
Annual EC2 spend = r × C = 0.868C
A full-fleet move at month m keeps the old plan billing for the rest of the term. The waste is 0.868C × (36 - m) / 12. The premium earned before the move is 0.132C × m / 12. They cross at month 31.3.
| Full‑fleet move at | Premium earned | Old commitment left | Net vs Compute |
|---|---|---|---|
| Month 12 | 0.13C | 1.74C | -1.61C |
| Month 24 | 0.26C | 0.87C | -0.61C |
| Month 30 | 0.33C | 0.43C | -0.11C |
| Month 34 | 0.37C | 0.14C | +0.23C |
Net is premium earned minus stranded commitment, before any discount on the new family. Re-buying an EC2 plan for the new family recovers part of the loss and moves the crossing to about month 30.5. The window stays in the last five months either way.
That pays for one full-fleet change, in the last five months. A second change has no room to pay for itself. If you move only part of the fleet, the threshold scales. A permanent move of roughly 13% of the covered footprint consumes the premium, because the waste on the moved share equals the premium on the retained share.
This is where the flexibility argument usually breaks. “We might change something” is not a plan. The EC2 plan’s 13% saving only pays off if the change lands late or touches a small share of the fleet. A 3-year EC2 Instance plan on a family you expect to leave in 18 months is a bad trade even if the migration itself is free. Most family changes are generation upgrades or architecture moves, not monthly events, and a 3-year term usually spans one. That is the change the Compute plan insures against, and it tends to land too early for the EC2 plan’s 13% to cover it.
Paying All Upfront widens the three-year gap to about 17%
All Upfront means paying the whole commitment on day one. At one year, it cuts both plans by the same 6.7%, so the 13.1% gap does not move. At three years, the payment discount diverges. All Upfront cuts the Compute rate by 9.3% and the EC2 Instance rate by 13.0%. On the median, the gap widens to 16.7%.
| Instance | 3yr Compute NU | 3yr EC2 NU | NU gap | 3yr Compute AU | 3yr EC2 AU | AU gap |
|---|---|---|---|---|---|---|
| c7g.xlarge | $0.07020 | $0.06370 | 9.3% | $0.06370 | $0.05550 | 12.9% |
| m7i.xlarge | $0.10224 | $0.09145 | 10.6% | $0.09277 | $0.07959 | 14.2% |
| r7i.xlarge | $0.13803 | $0.12002 | 13.0% | $0.12525 | $0.10446 | 16.6% |
The narrower commitment gains more from prepayment, so the stable window lengthens. The 3-year premium is now 0.50C, and a full-fleet move has to land in roughly the last six or seven months to keep the EC2 plan ahead.
What to buy
Buy the EC2 Instance plan when the workload is EC2-only, the family and region are stable for the term, and size, OS, and tenancy are the only changes you need. Buy the Compute plan when a family or region change is likely before the last five months, when a meaningful share of the footprint is Fargate or Lambda, or when one commitment has to cover a fleet spread across several families or regions.
Most teams should use both. Put the stable EC2 core on EC2 Instance plans and the part that might move, plus Fargate and Lambda, on a Compute plan. The 13% applies only to the dollars the EC2 plan can cover.
An EC2 Instance Savings Plan is not a reservation, whatever the Reserved Instance habit says. There is no capacity held for you, no marketplace, and no exchange. The commitment terms can’t be changed after purchase. An unused RI can sometimes be sold or modified. An unused Savings Plan commitment is paid and gone. The only mitigations are sharing it across a consolidated billing family and sizing it at or below a floor you will actually use.
The mechanics of application order and hourly coverage are in how Compute Savings Plans are applied. The sizing math for elastic and seasonal workloads is in managing AWS Compute Savings Plans. Those guides cover how to live with a plan. This post prices the choice between the two.
Check the rate for your own family before buying. The median is 13%, but the family you run may be an 8% family or a 17% family. The instance explorer has the on-demand rates; the family pages for c7g, m7i, and r7i show where each one sits.