The Blog

Spending Money to Save Money with Savings Plans and Reserved Instances

Calendar Icon 05.04.2021
aws-section-divider

As a Cloud Economist, a significant portion of my day is spent staring at the AWS Cost Opportunity Recommendations and slowly muttering, “Why… but why…” 

AWS offers a number of ways to save on the infrastructure you already have — such as Savings Plans, EC2 Savings Plans, and Reserved Instances for EC2, RDS, ElastiCache, and ElasticSearch. 

The best thing is that they’re named so similarly and each with their own “special sauce” of recommendations that it’s deceptively easy to get lost in. 

Let’s do everyone a favor and actually explain what these things are and which is actually better. 

What is an AWS Savings Plan?

A Savings Plan is a commitment to spend some minimum amount in compute services per hour in exchange for a discount. 

When a Savings Plan is purchased from the organization account, AWS will apply that discount to the most highly used compute services in that account or its children. 

What is an EC2 Instance Savings Plan?

An EC2 Instance Savings Plan is priced similarly at a higher discount for a specific instance type. 

If you had a specific instance type in an organization account and a child account and then purchased an Instance Savings Plan for it, that discount would apply to instances in the accounts that had that instance type—but not any others. 

What is a Reserved Instance in AWS?

A Reserved Instance is an instance that is yours to use for the term of your reservation. 

You get a deeper discount and aren’t held to per-hour commitment levels. A child account can also use any reservations made by the organization account. 

So, which is better?

That depends on how much you like managing it. 

If you hate managing it and you have fairly steady traffic, you can get a Compute Savings Plan. You can save up to 66% and have it cover your EC2s as well as your Lambda and Fargate Spend. It is truly AWS’s managed service savings solution. 

But what if your traffic isn’t steady? 

If you know what sorts of EC2 instances you’re going to be using, then Reserved Instances are the way to go. Depending on your level of commitment and reservation, you could get a 60% discount off of your spend.

There lies the problem with EC2 Instance Savings Plans. For those, you need to know which instance types you’re using. Then, AWS will dynamically assign discounts to that usage while charging per hour. 

If an EC2 type’s spend does not meet that hourly commitment, those dollars are wasted. You essentially lose the flexibility of a Compute Savings Plan as well as the aggregated discount of Reserved Instances. Unless you are autoscaling a specific instance type with a base level of spend, you will end up spending money on discounts you will never see. 

But I have spikes! 

Then get both. 

You are not the Evil Space Wizard dealing in absolutes. Use a Savings Plan where you can dictate your base spend. Chances are that a bit of analysis can tell you which services are spiking as well as the instance types they’re using. Use reservations for those spiking services and let the savings plans take care of the rest.

The bottom line is that Savings Plans commit you per hour and Reserved Instances don’t. Strategize from there. 

Of course, that may be easier said than done. If you need some help, give us a shout.