While public Cloud platforms can be leveraged to create elastic infrastructures and thus reduce costs, the pay-as-you-go pricing model can be more expensive than on premise infrastructure for a consistent amount of usage.
To alleviate this drawback, Cloud providers offer discounts over the standard pricing model in exchange for a commitment over time.
Reserved Instances couldn’t be saved
All the way back in 2009, AWS introduced Reserved Instances, and they have greatly evolved since. They brought discounted rates and cost certainty to businesses. On the surface, they appeared simple: once you knew what you needed, you just had to make a low one-time payment corresponding to your usage.
Unfortunately, many businesses were becoming hesitant the closer they got to actually purchasing RIs. Indeed, the profusion of options made them daunting: Am I sure this is the right instance type? Am I sure my usage won’t change over this period? Which OS/tenancy do I need? Do I reserve inside a region or a zone? The granularity of the parameters made it look like clients were taking the risk to confine themselves to a usage, losing some of the benefits of the public Cloud.
Even with the introduction of Convertible RIs, businesses still needed to monitor the coverage and explicitly modify each RI.
Thankfully, this has just ended…
Introducing Savings Plans
Conscious of the difficulties encountered by its clients, AWS released a completely revamped discount system: Savings Plans. A simple name for a much-simplified scheme.
Instead of reserving instances with a plethora of parameters to set, you get discounts in exchange for a commitment to a consistent amount of usage (in $/h).
They basically promise the same levels of discounts as Reserved Instances on EC2 with a lot more flexibility, and thus ease of use. Indeed, just like RIs there are 2 types of Savings Plans: Compute and EC2 Instance.
This plan provides the most flexibility while offering the same discounts as Convertible RIs (up to 66%, usually 20-50%). It automatically applies to EC2 and Fargate usage, regardless of instance parameters (family, size, AZ, region, OS or tenancy). As such, it enables you to change your type of workload, update to a newer instance family generation, move to another region or even move from EC2 to Fargate seamlessly. Contrary to Convertible RIs, you do not need to explicitly convert your commitment to your new usage, AWS will apply the discounts to the eligible instances automatically.
While less flexible (you commit to an instance family in a given region), it provides the highest discounts (up to 72%, usually 30-60%), just like Standard RIs. It still applies regardless of other parameters (AZ, size, OS or tenancy), and you do not need to explicitly apply your commitment to your instances.
On top of the greatly improved flexibility and ease of use brought by this new scheme, you know you’ll always get the most out of your commitment as AWS ensures that you have the best discount at any given moment.
One thing to be noted in case it wasn’t clear: when using Savings Plans, you will be charged the discounted Savings Plans price up to your commitment. Of course, if your usage is less than your commitment, you will still be charged up to your commitment.
What about capacity reservation?
Fear not, says AWS. While it is true that Savings Plans by design don’t allow you to reserve a capacity like zonal RIs did, you can use On-Demand Capacity Reservations introduced last year and get discounted rates when used in conjunction with a Savings Plan.
How to choose the right commitment
Select your type of commitment
All Savings Plans, from biggest to lowest discounts:
As we can see, whatever the instance family, selecting a bigger upfront fee cannot compensate for a less flexible plan, nor does this compensate for a shorter commitment.
Keeping in mind that an EC2 Instance plan locks you to a given instance family, committing yourself to it over 3 years can be risky, especially if it is already not a new family anymore (AWS introduced c4 instances less than 2 years after c3). Depending on your organisation’s ability to move to newer instance families, especially in production environment, it can still be a reasonable choice.
Moreover, there is usually no point in selecting an EC2 Instance plan over a 1 year period because the more flexible Compute plan over 3 years offers better discounts. That is, as long as you know that your EC2 (+ Fargate) usage will not drastically go down in the next 3 years.
As such, it appears that the Compute plan over 3 years offers the best flexibility/discount combo, so that’s what we chose at Gekko.
Now, all that was left to do was for us to decide how much we were willing to spend upfront. Of course, the more we paid upfront, the bigger the discount. For Linux t3 in Ireland:
- No Upfront : 42%
- Partial Upfront : 46%
- All Upfront : 47%
This question is really about how best to use the company’s cash, so the answer must come from your CFO. But if you want my view on this, the Partial Upfront (»50%) option gives a good balance between increased discount (+4pts vs No Upfront for the t3 mentioned above, against +5pts for All Upfront) and cash mobilization; moreover, comparison is quite advantageous when you look at current cost of debt on the market.
And that’s pretty much it! The type of commitment is already chosen. Much simpler isn’t it?
Calculate a commitment
Although the commitment can apply across regions and instance families, on demand prices and discounts vary.
So, because this commitment represents the amount we will pay after discounts, we must take into consideration the particularities of our own infrastructure.
AWS provides a commitment recommendation based on your observed usage, but it cannot account for particularities or future evolutions that it doesn’t know about. Moreover, at the time of writing, the recommendation made by AWS fails to consider the accounts excluded from discount sharing.
For example, for a t3a.large Linux instance in eu-west-1 (Ireland), On-Demand price is $0.0816/h while Savings Plans rate (3y No Upfront) is $0.0472/h (42% discount).
The same instance in North Virginia (us-east-1) will cost you $0.0752/h On-Demand and $0.0374/h in a Savings Plan (50% discount).
Using a real-life example with NFU (Normalized Factor Units):
The usage above gives us a recommended commitment of 1,477$/h, which represents a 49% discount overall.
For shared tenancy, this table can be summarized with the following more generic formula:
Where NFU is the usage of a given instance family/region/OS in Normalized Factor Units, Price is the On-Demand price and Discount is the Savings Plans discount over On-Demand.
One last thing to be careful about, is to first evaluate the current rightsizing of your infrastructure.
If you think you have a substantial rightsizing margin, you will need to estimate the maximum downsizing you could conceivably do and calculate your initial Savings Plan using this theoretical infrastructure.
Once you are confident that your infrastructure is sufficiently rightsized, you will be able to layer new Savings Plans on top of your initial commitment, thus bridging the gap between your theoretical infrastructure and your actual usage.
Simple, flexible, automated, and with the same levels of discounts… Savings Plans will make your life easier, and you will shortly forget these long afternoons spent on the AWS Console converting your RIs!