logo
All blog posts

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

Originally Published September, 2020 · Last Updated August, 2024

By:

Erik Carlin

Co-Founder and Chief Product Officer

aws cloud cost optimization best practice savings plans

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.

The problem when Savings Plans don’t reside in an empty AWS account

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: Run Savings Plans in an empty AWS Account

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 in accounts with usage, there is unfortunately no way to move them between accounts in an Organization (unlike RIs where you can open an AWS Support case and request transfer). Once the Savings Plans expire, you’ll want to replace them with new Savings Plans in an empty account.

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

Get Started for Free

Latest from our blog

Request a Free Savings Analysis

3 out of 4 customers see at least a 50% increase in savings.

Get a deeper understanding of your current cloud spend and savings, and find out how much more you can save with ProsperOps!

  • Visualize your savings potential
  • Benchmark performance vs. peers
  • 10-minute setup, no strings attached

Submit the form to request your free cloud savings analysis.

prosperbot