FinOps
Savings Plans vs Reserved Instances: which one should you choose?
For EC2, Fargate and Lambda, the Compute Savings Plan is the default choice: it follows your changes of instance, Region and service. The EC2 Instance Savings Plan or the Standard Reserved Instance save more if the instance family and Region will not change for the whole term. For databases, look at the Database Savings Plan. In every case, commit to the floor of your usage, never to the average.
In short
- Compute Savings Plan: maximum flexibility (EC2 in any family and Region, Fargate, Lambda), up to 66% off according to AWS.
- EC2 Instance Savings Plan: one family in one Region (for example m7i in Paris), up to 72% off. Same rates as the Standard Reserved Instance, without choosing the size or operating system.
- Reserved Instances: still useful to reserve capacity in a zone (zonal RI), to resell a commitment (Standard RI) and for services Savings Plans do not cover, such as Amazon Redshift.
- Database Savings Plan: up to 35% off Aurora, RDS, DynamoDB, ElastiCache, OpenSearch and other databases, one-year term, no upfront payment.
The options compared
Example: one m7i.large Linux instance in eu-west-3, at USD 0.1176 an hour on demand. Rates taken from the AWS price lists on 23 October 2026, no upfront payment.
| Option | Applies to | What can change | 1-year price | 3-year price |
|---|---|---|---|---|
| Compute Savings Plan | EC2, Fargate, Lambda | Family, size, Region, operating system, and moving from EC2 to Fargate | USD 0.08919/h (−24%) | USD 0.06179/h (−47%) |
| EC2 Instance Savings Plan | EC2, one family in one Region | Size, operating system, tenancy | USD 0.07756/h (−34%) | USD 0.05358/h (−54%) |
| Standard Reserved Instance | EC2, one instance type | Size within the family (Linux, Regional scope); can be resold on the Reserved Instance Marketplace | USD 0.07756/h (−34%) | USD 0.05358/h (−54%) |
| Convertible Reserved Instance | EC2, one instance type | Exchange for another RI of equal or greater value | USD 0.08919/h (−24%) | USD 0.06179/h (−47%) |
| Database Savings Plan | Aurora, RDS, DynamoDB, ElastiCache, DocumentDB, Neptune, OpenSearch… | Engine, family, size, Region, and moving from RDS to DynamoDB | Up to −35% according to AWS | No three-year term |
In this example, the EC2 Instance Savings Plan has exactly the price of the Standard RI, and the Compute Savings Plan that of the Convertible RI. For the same discount, the Savings Plan is simpler: it applies on its own to any size in the family and needs no reservation management.
The decision tree
Answer the questions in order:
- Is the spend a database (RDS, Aurora, DynamoDB, ElastiCache…)? Yes: Database Savings Plan, or RDS Reserved Instance if the configuration will not change. The two do not stack on the same workload.
- Is the service covered by no Savings Plan (Amazon Redshift, for example)? Yes: Reserved Instances or reserved nodes for that service, if it offers them.
- Do you need guaranteed capacity in a specific zone? Yes: zonal Reserved Instance, or an On-Demand Capacity Reservation combined with a Savings Plan.
- Does the workload run on Fargate or Lambda, or could it change family, Region or move to containers (a planned Graviton migration, for example)? Yes: Compute Savings Plan.
- Are the family and Region stable for the whole term? Yes: EC2 Instance Savings Plan, about ten more points of discount.
- One year or three? Three years almost doubles the discount but commits you to an architecture you cannot see yet. One year is the safe choice for a changing workload.
- 1Is the spend a database?YesDatabase Savings Plan, or RDS RI if the configuration will not changeNo
- 2Is the service covered by no Savings Plan (Redshift…)?YesReserved Instances or the service's reserved nodesNo
- 3Do you need guaranteed capacity in a zone?YesZonal RI, or Capacity Reservation + Savings PlanNo
- 4Fargate, Lambda, or a possible change of family, Region or move to containers?YesCompute Savings Plan (up to 66% off)No
- 5Family and Region stable for the whole term?YesEC2 Instance Savings Plan (up to 72% off)NoCompute Savings Plan
- Then: one year or three, and an hourly commitment set on the floor of your usage.
Working out the right commitment level
A Savings Plan commits an hourly spend, paid whether you use it or not. The right value is the floor of your usage, not its average. Example: an EC2 workload costing USD 1.20 an hour on demand at night and USD 2.80 by day (12 hours each), USD 1,460 a month. One-year no-upfront Compute Savings Plan, 24% off.
Set on the peak, the plan costs more than buying nothing: at night, more than half the commitment is paid without being used. Two indicators drive the level: utilisation (share of the commitment actually used, to keep close to 100%) and coverage (share of eligible usage paid at the discounted rate). Coverage of 70% with 100% utilisation beats the reverse.
Buy in steps: a first plan on the floor, then a top-up a few weeks later if utilisation stays at 100%. And right-size first: a plan bought on over-provisioned instances commits the waste. The other levers are in the guide to reduce your AWS bill.
| Commitment set to | Hourly commitment | Monthly cost | Monthly saving |
|---|---|---|---|
| The floor (USD 1.20/h) | USD 0.91/h | USD 1,248 | USD 212 |
| The average (USD 2.00/h) | USD 1.52/h | USD 1,399 | USD 61 |
| The peak (USD 2.80/h) | USD 2.12/h | USD 1,550 | −USD 90 (more than on demand) |
# Savings Plans coverage and utilisation over a month
aws ce get-savings-plans-coverage --time-period Start=2026-09-01,End=2026-10-01 \
--granularity MONTHLY
aws ce get-savings-plans-utilization --time-period Start=2026-09-01,End=2026-10-01
# Reserved Instances coverage
aws ce get-reservation-coverage --time-period Start=2026-09-01,End=2026-10-01
# Active plans and hourly commitment
aws savingsplans describe-savings-plans \
--query 'savingsPlans[].[savingsPlanType,commitment,end,state]' --output tableThe pitfalls
- Committing on a peak: see the table above, the unused commitment is lost every hour.
- Committing before the clean-up: stopping non-production at night and right-sizing lower the floor; do them first.
- Assuming a Savings Plan covers everything: neither the Compute nor the EC2 Instance Savings Plan covers RDS, EBS storage, data transfer, NAT gateways or Redshift. SageMaker has its own plan.
- Blocking a migration: an EC2 Instance Savings Plan on m7i does not apply to m7g. If a Graviton migration is planned, the Compute Savings Plan avoids paying twice.
- Counting on a return: a Savings Plan cannot be cancelled. Only plans of USD 100 an hour or less, bought in the last seven days and in the same calendar month, can be returned.
- Forgetting sharing across the organisation: by default, the discount of a plan bought in one account benefits the other accounts of the AWS organisation. That is usually what you want, but worth knowing before charging teams back.
What the FinOps audit checks
The AWS FinOps audit reads, read-only, the coverage and utilisation of your Savings Plans and Reserved Instances, the active plans and Cost Explorer's purchase recommendations. It sets them against the right-sizing recommendations, so as not to recommend a commitment on instances that should shrink.
The report prices the monthly saving of each recommended purchase and places it in the action plan, after the levers that need no commitment. The audit buys nothing: it recommends, you decide.
Savings Plans and Reserved Instances: frequently asked questions
What is the difference between a Savings Plan and a Reserved Instance?
A Savings Plan commits an hourly amount (dollars per hour) and applies on its own to any eligible usage. A Reserved Instance commits to a specific instance type. For the same discount, the Savings Plan is more flexible; the Reserved Instance stays useful to reserve capacity in a zone, to resell a commitment or for services Savings Plans do not cover.
Do Savings Plans cover Fargate and Lambda?
Yes, but only the Compute Savings Plan. The EC2 Instance Savings Plan and Reserved Instances apply to EC2 only.
How do I reduce RDS costs with a commitment?
With a Database Savings Plan (up to 35% according to AWS, over one year, also valid for Aurora, DynamoDB, ElastiCache and other databases) or with RDS Reserved Instances. The two do not stack on the same workload.
Can I cancel a Savings Plan?
No. Only a plan of USD 100 an hour or less, bought in the last seven days and in the same calendar month, can be returned, with the upfront payment refunded. Standard EC2 Reserved Instances, on the other hand, can be resold on the Reserved Instance Marketplace.
Should I pay upfront?
Paying upfront increases the discount without changing the principle. For an m7i.large in eu-west-3, the one-year Compute Savings Plan goes from 24% off with no upfront payment to 29% with full payment at purchase. The choice depends on your cost of cash.
Where does your AWS account stand?
Ten questions, three minutes, no access to your account: a security score, a FinOps score and the article to read for each of your three weakest points. Your answers stay in your browser.
Ready to audit your AWS account?
Subscribe on AWS Marketplace, deploy the read-only role and get your reports within the hour.