The Cost Cutter Guide to AWS Savings Plans

AWS can give you better discounts if you commit to using their services for a longer duration (1 year or 3 years). You get locked in for the duration but pay far lower prices. There are multiple levers of flexibility available. The less flexibility you choose, the more discounts you can get.

AWS savings plan is a purely financial instrument that can be used to bring down your AWS costs significantly. There are two types: Compute Savings Plan and EC2 Instance Savings Plan. In this article, I’ll share everything I have learned about the savings plan based on my experience planning and buying them for my organisations. Its a long article, so go ahead and grab your coffee ☕️.

Types of Savings Plans

When you buy a savings plan, you are effectively making a commitment to AWS that you’ll spend x dollars every hour for the next 1 or 3 years on applicable resources. This x dollar is the amount you finally pay after applying discounts.

  1. Compute Savings Plan: You commit to spending a minimum dollar amount every month across EC2, Lambda, or Fargate. Discounts get automatically applied to your monthly bill. Very flexible, decent savings.
  2. EC2 Instance Savings Plan: You commit to spending a minimum dollar amount every month on on-demand EC2 instances belonging to a specific family and a particular AWS region. This plan gives roughly 7-12%(depending on instance family) more savings as compared to the compute savings plan. Less flexible but more savings. Keep reading to understand how you can do some planning and avoid buying the compute savings plan in favour of the EC2 instance savings plan and get better discounts.

See the table below to understand the difference between compute savings plan and EC2 instance savings plan.

On DemandCompute Savings PlanEC2 Instance Savings Plan
SavingsNilSome savingsMax savings
Ease of doingNAVery easyRequire planning
FlexibilityHighMediumLow
CommitmentNot requiredCommit to a minimum dollar usage per month ($100/month)Commit to using a particular instance type(family) in a particular region for 1 or 3 years.
Max Savings0%66%72%
Applicable ServicesNAEC2, Lambda, FargateEC2 Only
Restricted by RegionsNANoYes
Restricted by Instance FamilyNANoYes
Restricted by Instance SizeNANoNo
Restricted by AZNANoNo
Restricted by OSNANoNo
Comparison between Compute Savings Plan and EC2 Instance Savings Plan

Cost Levers

With either of the savings plans, you can tweak the discounts you can get by using the below levers. As an AWS account manager, it is your job to understand the trade-off between flexibility and discounts and choose wisely based on your workload and business growth prospects.

  1. Commitment Duration: You can commit for 1 year and 3 years. 1 year gives you lower discounts but flexibility to reduce usage. A 3 year commitment offers much higher discounts but with a longer lock-in duration.
  2. Payment Options: Choose from no upfront payment(minimum discount), partial upfront payment, and full upfront payment (maximum discount).

How to Calculate the Savings Plan Amount

Let’s say your usual hourly spend is $2 / hour and you want to buy the savings plan for roughly $1.40 / hour out of this $2. This means that you are okay paying on-demand price for $0.6 / hour. Let’s assume a discount of 25% for ease of calculations. You should be committing to spend ($1.4 – $1.4*0.25) $1.05 / hour to get the desired savings plan.

It is important to note that the amount mentioned while buying the savings plan is the amount you will be spending after the discounts get applied. This will be the minimum amount AWS will be charging you every month regardless of whether you are fully using your savings plan or not. So, even if you terminate all your instances, you’ll still be paying $1.05 / hour till the end of your commitment period.

How is Savings Plan Applied

Savings Plans apply to your usage after the Amazon EC2 Reserved Instances (RI) are applied.

Your current Savings Plans are grouped together and applied to the eligible usage. EC2 Instance Savings Plans are applied before Compute Savings Plans because Compute Savings Plans have broader applicability.

Savings plan discounts are applied by AWS directly on your final monthly bill. You have no control over which instance the discount is applied on. AWS optimises this automatically so that you get a maximum possible discount. All you should care about is coverage and utilisation. I cover these in detail in the next sections.

Utilisation Report

Utilisation report shows the percentage of your savings plan purchases being used against on-demand usage. It is ideal and pretty easy to keep your utilisation at around 100%. 100% utilisation means that you are fully using your savings plan and not overpaying to AWS for any unused commitment.

Let’s say you have committed $1/hour and the discount rate is 20%. This means that you need to spend at least $1.25 worth of on-demand cost (1.25 MINUS 20% OF 1.25 = $1) in a particular hour to get 100% utilisation of your savings plan. If you manage to spend only $0.9(on-demand cost) in a particular hour, your utilisation percentage for that hour will be 72%. This means that while you would have paid $0.9 if you had not purchased any savings plan, you’ll now have to pay $1 because of the $1 commitment.

It is therefore important to plan your savings plan purchases carefully to avoid overpaying. You can go through my free Cost Cutter Handbook to learn how to do it.

An example utilisation report. See Utilisation column showing 100% utilisation for all savings plans bought so far.

Coverage Report

Coverage report shows your on-demand consumption and what percentage of that consumption is being covered by the savings plan. If you spend $100 a month and you have bought the savings plan with a commitment to spend $50 in a month, it means that your coverage for the month is 50%.

You should try to aim for a healthy coverage percentage. You should ensure that you don’t end up buying savings plan for more than what you need. You should also have enough headroom to accommodate for future organic cost optimisation. For example, you may right-size your instances after a few months and your bills may drop to $80 / month. In my experience, you should not aim for more than 60%-70% coverage.

Mental Models while buying Savings Plan

Duration

Savings plans come with two commitment duration options, 1 year and 3 years. It is very difficult to have clear visibility for the next one year (or 3 years). In many cases, teams find it difficult to commit for a year, let alone 3 years. Teams end up buying much less than what they could have and lose out a lot on discounts.

If you assume a 30% discount for a 1-year reservation, you actually need to run the committed workload only for 9 months to break even. Similarly, for a 3-year reservation, assuming a 50% discount, you’ll break even in just 18 months. This means that you effectively need to plan only for 9 months (or 18 months). I find this mental model very helpful while planning to buy savings plans.

Buying Frequency

You don’t have to buy your entire savings plan in one chunk. You can buy just for 5% of your monthly usage even with zero planning and start getting some savings from today. Let’s say, your monthly bill is $100. You can buy the instance savings plan for $5. Considering 30% discounts, you’ll start getting 1.5% discounts on your overall bill without any effort or planning.

Instead of trying to plan everything and buy one single savings plan of $30/month, you can buy 30 savings plans of $1 each. This approach helps executing fast as you no longer have to plan everything in advance. You can just start with one service or one environment and plan for that.

Tilting in favour of EC2 instance savings plan

The EC2 instance savings plan offers 7-12% more discounts as compared to the more flexible compute savings plan. They are however restricted to a particular instance family and region for which you bought the plan. To give you an idea, on an m6g.large instance, the compute savings plan will give you a 26% discount over the on-demand price but the EC2 instance savings plan will give you roughly a 38% discount on the same.

EC2 instance savings plan is not tied to a particular instance. It is tied to an instance family(m6, c7g and so on) and region. As long as you have enough instances of the family running in the region, you will continue to get discounts.

If you can keep your instances confined to a few select instance families, it will become very easy to go with this plan instead of the compute savings plan. You’ll be able to upgrade your fleet to the latest hardware in a more predictable way and you’ll also be able to get better discounts.

Some Tips

  1. Savings plan do not apply to spot instances. They only apply to on-demand instances.
  2. You can either buy reserved instances or purchase a savings plan for your on-demand EC2 usage. There is however no reason to buy reserved instances anymore. Savings plan are a much better instrument in every way possible and offer exactly the same discounts.
  3. Do not try to buy savings plans for 100% of your usage. Try to find the right mix of on-demand, compute savings plan and EC2 instance savings plan for your account.