To allocate costs or maximize savings? That’s the question many AWS customers will have to answer when formulating their FinOps strategy relating to Savings Plans. If part of your daily routine is finding ways to cut cloud costs, then you know exactly what I’m talking about. Appropriate chargeback reporting is an undeniable necessity for any business, but in this world of uncontrolled rising cloud costs, so is capitalizing on any savings opportunities! But simply passing the costs off to the business area that is using the capacity is a way of passing the problem of savings off to others.
The pressing question: Is there a way of both allocating costs and simultaneously maximizing savings?
AWS Savings Plans for compute usage were introduced in late 2019 and effectively replace Reserved Instances for Amazon EC2. Not only are Savings Plans simpler to purchase and manage than Reserved Instances, they typically yield greater cost savings as they are more flexible and efficient. This efficiency stems from how discounts offered by Savings Plans are applied to compute usage by favoring higher discount rates, first towards usage in the same account that purchased the savings plan, and subsequently to usage in other linked accounts.
The priority by which savings plan discounts are applied allows (or forces) AWS customers to choose between two common objectives when purchasing Savings Plans:
The requirement for internal chargeback reporting often applies to organizations comprised of multiple departments or lines of business that each operate one or more linked accounts. Each department manages their own budgets and chooses how many Savings Plans they wish to purchase. To allocate costs for internal chargeback reporting, Savings Plans can be purchased in the corresponding AWS linked accounts to align the discounts with the targeted usage.
Alternatively, to maximize cost savings for the entire organization, Savings Plans can be purchased in an AWS master account that has little or no compute usage. This ensures that the savings plan discounts are prioritized to the compute usage with highest discount rates, regardless of the linked account where the compute usage is consumed. This strategy to maximize savings often applies to organizations with a centralized cloud financial management group (FinOps) that oversees and optimizes the overall cloud spend.
To illustrate the tradeoffs between these two AWS purchasing strategies, consider an AWS customer with three AWS accounts: one master account and two linked accounts. The master account has the role of the payer account for the organization, and has zero compute usage. The linked accounts are operated by the Engineering and Finance departments, respectively. Each linked account runs the same mix of public Amazon Machine Image (AMI) M5 instances using the following OS (operating system) mix: Linux, Red Hat Enterprise Linux (RHEL), Windows, and Windows with SQL Server Enterprise. The hourly On-Demand usage costs are constant, as summarized in the following table:
AWS Account Name | M5 Linux | M5 RHEL | M5 Windows | M5 Windows with SQL Server Enterprise | Total |
---|---|---|---|---|---|
Master Account | $0 | $0 | $0 | $0 | $0 |
Finance Account | $50 | $20 | $20 | $10 | $100 |
Engineering Account | $50 | $20 | $20 | $10 | $100 |
Total | $100 | $40 | $40 | $20 | $200 |
|
The following chart illustrates the hourly EC2 On-Demand costs for a typical 24-hour day:
To compare the saving plan purchasing strategies, let’s assume the purchase of $60/hour of: 3-year, No Upfront Compute Savings Plans.
The OS platform-specific discount rates for M5 instances based on this type of savings plan are:
Public AMI OS Type | Discount Rate |
---|---|
Linux | 54% |
RHEL | 33% |
Windows | 28% |
Windows with SQL Server Enterprise | 6% |
In this scenario, the Finance department chooses to purchase Savings Plans to reduce their costs, whereas the Engineering department chooses not to purchase Savings Plans. To ensure the savings plan discounts are applied to Finance usage first, $60/hour of savings plan are purchased in the Finance AWS linked account. The savings plan discounts are applied by AWS to the Finance account compute usage based on the respective discount rates of the different platforms.
The following table shows how AWS would apply the savings plan discounts:
AWS Account Name | M5 Linux | M5 RHEL | M5 Windows | M5 Windows with SQL Server Enterprise | Total |
---|---|---|---|---|---|
Master Account | $0 | $0 | $0 | $0 | $0 |
Finance Account | $23 | $13.3 | $14.40 | $9.41 | $60.14 |
Engineering Account | $50 | $20 | $20 | $10 | $100 |
Total | $73 | $33.33 | $34.40 | $19.40 | $160.14 |
The M5 Linux usage cost is reduced from $50/hour to $23/hour based on its 54% discount. Similarly, the M5 RHEL, Windows, and Windows SQL usage costs are reduced by their respective discount rates. With the savings plan purchased in the Finance account, the AWS bill reflects internal chargeback for the Finance account is $60.14/hr. With no savings plan purchased in the Engineering account, the internal chargeback for the Engineering account remains at $100/hr. The total cost for the organization based on this purchasing strategy is $160.14/hour for a savings of $39.86 or 20%.
Next, consider the case where the same savings plan ($60/hr) is purchased in the Master account which has zero compute usage costs. By purchasing the savings plan in the Master account, AWS automatically applies the discounts to favor usage with the highest discount rates in both linked accounts.
The following table shows how AWS would apply the savings plan discounts with the savings plan purchase in the Master account.
AWS Account Name | M5 Linux | M5 RHEL | M5 Windows | M5 Windows with SQL Server Enterprise | Total |
---|---|---|---|---|---|
Master Account | $0 | $0 | $0 | $0 | $0 |
Finance Account | $23 | $16.50 | $20 | $10 | $69.50 |
Engineering Account | $23 | $16.50 | $20 | $10 | $69.50 |
Total | $46 | $33 | $40 | $20 | $139 |
Since the Linux usage has the highest discount rate at 54%, the first $46/hour of the Savings Plans are applied to the $100/hour of the M5 Linux On-Demand costs in the 2 linked accounts. Since the RHEL usage has the next highest discount rate at 33% discount, the remaining $14/hour of the savings plan are applied to $21/hour (out of $40/hr) of the M5 RHEL On-Demand costs. The total cost of the M5 RHEL usage is $33/hour based on the remaining On-Demand usage of $19/hour and $14/hour of savings plan costs. No savings plan discounts are applied to the M5 Windows and Windows with SQL Server Enterprise usage. The total costs for the organization based on this purchasing strategy is $139/hour for a savings of $61/hour or 30.5%.
The following chart compares the hourly EC2 costs for the three scenarios in the above example:
In this example, purchasing Savings Plans in the Master account to maximize savings yields greater cost savings (30.5% versus 20%) than purchasing to allocate costs for chargeback. This additional cost savings of $21/hour translates to more than $185K/year. However, purchasing the Savings Plans in the Master account makes internal chargeback reporting challenging because there is a need to allocate costs and savings to specific groups in the organization.
So, the advantage of centralizing savings is clearly worth while, but back to the original question: Can we achieve both maximized savings and accurately allocated costs for internal chargeback? The answer is that, with the right process steps and analytics we can! AWS customers can follow this process:
This process is illustrated in the following flowchart:
These steps may seem a bit daunting, especially in a more complex environment or more accounts. These steps can largely be automated with the right preparation and supporting analytics. If your organization is trying to maximize overall savings but ensure that each department carries their true costs, Densify can help you assess the potential before you embark on a solution.