← Blog Home

Best Practice: Always run Savings Plans in an empty AWS account

Erik Carlin   Erik Carlin, Co-Founder and Chief Product Officer
Posted:

Savings Plans are AWS pricing discount instruments that deliver savings off on-demand rates in exchange for a 12 or 36-month commitment. Unlike Reserved Instances, where the commitment is made in units of an instance type, Savings Plan commitments are made in terms of an hourly post-discount dollar amount.

This model is what enables Savings Plans to have broader applicability. Because the commitment is to an abstract dollar amount vs. a specific instance type, AWS now has the flexibility to move that commitment around to different resources that are running and deliver the highest discount.

Problem

The problem comes into play when there are multiple accounts in an AWS organization. While Savings Plans have wide applicability, they apply first to ALL matching resources in the account where they reside, then float to the highest discounted resources elsewhere in the AWS organization. This means if there are lower discounted resources in the account where a Savings Plan is purchased, those resources will be covered first before other higher discount resources, leading to a suboptimal savings outcome.

Consider the following 2 examples:

Example 1: Non-empty AWS account → suboptimal savings

Account A

  • 50 m5.large Windows EC2 instances in eu-west-1
  • $3/hr of steady, on-demand Lambda usage in us-west-2
  • A 3 year no upfront Compute Savings Plan of $10/hr

Account B

  • 250 c5.large Linux EC2 instances in us-east-1

Because the Compute Savings Plan lives in Account A which is non-empty, it will first apply to all compute resources in all regions in Account A before floating elsewhere as follows:

  1. $7.65 of the Compute Savings Plan would cover the 50 m5.large Windows EC2 instance at a 23.1% discount
  2. The remaining $2.35 would cover $2.67 of the Lambda usage at a 12% discount
  3. At this point, the Compute Savings Plan has been exhausted, so the remaining Lambda and all c5.large Account B usage is paid at on-demand rates

Although c5.large instances receive a 51.8% discount (the highest of all running resources), the Compute Savings Plan never gets a chance to cover them, so savings are suboptimal.

Total monthly savings is only $1,887 with a Compute Savings Plan Effective Discount of 20.8%.

Example 2: Empty AWS account → highest possible savings

Account A

  • 50 m5.large Windows EC2 instances in eu-west-1
  • $3/hr of steady, on-demand Lambda usage in us-west-2

Account B

  • 250 c5.large Linux EC2 instances in us-east-1

Account C

  • A 3 year no upfront Compute Savings Plan of $10/hr

Note this example is identical to Example 1 except we've moved the Compute Savings Plan to an empty Account C. Since there is no compute usage in Account C, the Compute Savings Plan floats to all other accounts covering the highest discounted usage first as follows:

  1. All $10/hr covers 244 of the 250 c5.large Linux EC2 instances in us-east-1 at a 51.8% discount
  2. The remaining 6 c5.larges and all Account A usage is paid at on-demand rates

Total monthly savings is $7,730 with a Compute Savings Plan Effective Discount of 51.8%.

Just by running the Compute Savings Plan in an empty account, savings increased 410%!!

Best Practice

Always run Savings Plans in an empty AWS account with no resource usage. While the examples above use Compute Savings Plans, the same holds true for EC2 Instance Saving Plans as well (since there could be other higher discounted platforms and/or tenancies elsewhere within the selected instance family).

If you already have an empty AWS payer account with no usage, this is a reasonable place to run your Savings Plans. If you have usage in your AWS payer, we suggest creating a new, empty account in your AWS organization called "Financial Commitments" and running your Savings Plans there. You can find the instructions for adding a new AWS account here.

If you have existing Savings Plans you need to move, there is currently no UI or programmatic way to do this, but if you open a case with AWS Support and explain the rationale, they should be able to move them for you.

Following this simple best practice will maximize your Savings Plans savings. Prosper on!

 

Share on LinkedIn

 

← Blog Home