The Cost Cutter Guide to AWS Savings Plans

AWS can give you better discounts if you commit to use 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.

Savings plan is a purely financial instrument that can be used to significantly bring down your AWS costs. 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 in planning and buying them for my customers. Its a long article, so go ahead and grab your coffee ☕️.

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

Types of Savings Plans

  1. Compute Savings Plan: You commit to spend 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 spend 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 compute savings plan in favour of 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 plan, you can tweak the discounts you can get by using 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 or change to newer instance family after an year. 3 years commitment offers much higher discounts but with 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 Amount

Let’s say your usual hourly spend is $2 / hour and you want to buy savings plan for roughly $1.40 / hour. Let’s assume a discount of 25%. You should be committing to spend ($1.4 – $1.4*0.25) $1.05 per hour to get the desired savings plan.

It is important to note that the amount mentioned while buying savings plan is the amount you will be actually 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 Savings Plan is 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 maximum possible discount. All you should care about is coverage and utilisation. I cover these in detail in 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 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 you your on-demand consumption and what percentage of that consumption is being covered by savings plan. If you spend $100 a month and you have bought savings plan with 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 more than what you need. You also should have enough headspace to accommodate for future organic cost optimisation which can lower your monthly bills. For example, you may right-size your instances after a few months and your bills 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 comes with two commitment duration options, 1 year and 3 years. It is very difficult to have clear visibility for next one year (or 3 years). In many cases, teams are find it difficult to commit for an year, let alone 3 year. Teams end up buying much less than what they could have and loose out a lot on discounts.

If you assume a 30% discount for 1 year reservation, you actually need to run the committed workload only for 9 months to break even. Similarly, for 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 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 plan of $1 each. This approach helps in 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

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, compute savings plan will give you a 26% discount over the on demand price but EC2 instance savings plan will give you roughly 38% discount on the same.

EC2 instance savings plan are not tied to a particular instance. They are tied to an instance family(m6, c7g and so on) and region. As long as you have enough instances of the family running, 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 latest hardware in a more predictable way and you’ll also be able to

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 savings plan for your on-demand EC2 usage. There is however no reason to buy reserved instances any more. Savings plan are much better instruments in every way possible and offer exactly same discounts.
  3. Do not try to buy savings plan 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.