- Simple AWS
- Posts
- AWS Savings Plans and Reserved Instances
AWS Savings Plans and Reserved Instances
Did I ever tell you that I once almost took a job as an AWS Cost Optimization Architect? Yes, that is a thing. Building the right thing right is hard, but in AWS you also need to do some magic passes so you don't overpay for it. In this article we'll focus on the magic passes known as AWS Savings Plans and Reserved Instances, so you can do cloud cost management and optimization like a wizard! Ok, I'll stop with the bad analogy now.
You (Over)pay For What You Provision
When we say that in the cloud you only pay for what you provision, we're talking about On-Demand pricing, the default pricing model for nearly all AWS services. That's a fantastic advantage if you have very unpredictable workloads, like when you're experimenting or just starting out. But once you have some paying users, your traffic baseline starts to stabilize, and you can predict some demand. That's where Reserved Instances and Savings Plans come in.
AWS Savings Plans and Reserved Instances are two pricing models offered by AWS as an alternative to On-Demand. You are asked to commit to a specific usage level for a defined period of time (1 or 3 years), and in exchange you get a price reduction from 27% to 72%. That's a lot! You'll want to keep reading.
The Basics of AWS Savings Plans
AWS Savings Plans are a pricing model that allow you to commit to a specific amount of spending, measured in dollars per hour. The commitment term is either 1 or 3 years (no in betweens), and you can pay for the full amount upfront for the maximum discount, pay only half upfront, or nothing at all upfront and just pay monthly. Even with partial or no upfront you still get a significant discount, but keep in mind you're committing to an amount of spending which you'll have to pay for, regardless of whether you actually use the compute capacity.
Types of AWS Savings Plans
There are three types of Savings Plans: Compute, EC2, and SageMaker. Compute Savings Plans apply to EC2, Lambda and Fargate, and allow you to seamlessly transition from one to the other. EC2 Instance Savings Plans give you a greater discount, but are only for EC2, and they require you to commit to a specific region and instance family. SageMaker Savings Plans are obviously for SageMaker. Here's the pricing page.
Compute Savings Plans
Compute Savings Plans are the most flexible type of Savings Plan. They apply to any combination of compute usage, regardless of instance family, size, region, operating system, or tenancy. You can switch to a newer EC2 instance family, or even migrate to AWS Lambda and still enjoy your Savings Plan.
The discount applies to any spending up to the committed amount. For example, let's say you commit to $10 per hour of compute usage for one year, and you get a 25% discount for it. If your total usage is $8 per hour (that's $5760 per month), you'll pay $4320 per month, and you'd be slightly wasting your savings plan. If your usage is exactly $10 per hour ($7200 per month), you'll pay $5400. Then, if your usage goes up to $12 per hour ($8640 per month) you'll pay the first $10/hour at the discounted rate, and pay the remaining $2/hour at full price, for a total of $5400 + $1440 = $6840 per month.
EC2 Instance Savings Plans
EC2 Instance Savings Plans, also known as EC2 Savings Plans, will give you a better discount, but you'll have to commit to a specific instance family (e.g., C5 or M5) within a particular region. You still have the flexibility to change the size of the instances, so long as you remain within the same family.
For example, let's say you purchase an EC2 Instance Savings Plan for $10 per hour, for the C5 instance family in the us-west-2 region. You can use any size of C5 instance (large, xlarge, 2xlarge, etc.), and any spending you have on that instance family and within that region, up until the committed amount, you'll pay at the discounted price. Of course, the discount will be higher than with a Compute Savings Plan.
AWS Reserved Instances
Reserved Instances allow you to commit to using a specific EC2 instance type (not just family) and configuration, for one or three years, with no, partial or full upfront payment. Compute-wise, they are only for EC2, not for Fargate or Lambda.
Reserved Instances look very similar to Savings Plans, but the devil (or the money in this case) is in the details. There are two types of Reserved Instances: Standard and Convertible.
Standard Reserved Instances
Standard Reserved Instances are the most basic and inflexible type of reservation. You commit to a specific instance type, size, and region, and you can't change these attributes once the reservation is active.
Standard RIs are great when you know exactly how much compute power you'll need (at least for the baseline traffic). Not being able to change to Fargate or Lambda is a limitation, but in my experience the most severe limitation is not being able to upgrade to newer EC2 instance families, which often provide you better performance for an equal or lower price. That's why I don't really recommend Standard RIs for a 3-year term.
Convertible Reserved Instances
Convertible Reserved Instances allow you to change the instance family, operating system, size or tenancy of the reservation during the term, as long as the new configuration has an equal or higher value. This lets you essentially upgrade your reservation, either to bigger sizes or newer families, so the reservation grows along with your application.
Of course, this flexibility means you don't get as much of a discount, though it's still a significant improvement over the On-Demand pricing. For example, for a t4g.large instance with a Standard Reserved Instance you pay an effective hourly rate of $0.042, which is a 37% discount compared to the On-Demand price of $0.0672. A Convertible Reserved Instance gives you an effective hourly rate of $0.049 instead, a 28% discount. Here's the pricing page.
Reserved Instances vs Savings Plans: Key Differences
As I said before, the money is in the details. So, let me repeat the same information, but comparing and contrasting the alternatives.
Flexibility and ease of use
One of the main differences between Reserved Instances and Savings Plans is the level of flexibility they offer. As we've seen, Savings Plans (especially Compute Savings Plans) are generally more flexible than Reserved Instances, since they allow you to change your instance usage without modifying your commitment.
Reserved Instances, on the other hand, are more rigid, requiring you to commit to a specific instance type and configuration. Convertible Reserved Instances provide some flexibility to change your instance family or operating system, but they still don't offer the same level of freedom as Savings Plans.
Pricing models and discounts
Another key difference between Reserved Instances and Savings Plans is the way their pricing models and discounts work. Reserved Instances offer a fixed discount (up to 75% for Standard and up to 60% for Convertible) in exchange for a specific instance commitment, while Savings Plans offer a discount (typically around 65-75%) based on your overall compute spend.
This means that with Reserved Instances, you'll always know exactly how much you're saving on each instance, but you may end up with unused reservation capacity if your usage changes. With Savings Plans, you have more flexibility to shift your usage, but your actual discount will depend on how much you use and which instances you use.
Scope of application
Finally, there's a difference in the scope of application between Reserved Instances and Savings Plans. Reserved Instances are specifically for EC2 instances, and can't be applied to other compute services like AWS Lambda or AWS Fargate.
Savings Plans, on the other hand, can be applied to a broader range of services beyond just EC2. Compute Savings Plans, in particular, can be used for not only EC2 instances but also Lambda and Fargate. This makes Savings Plans a more versatile cost optimization tool, especially for organizations using a mix of different compute services.
Compute Savings Plans | EC2 Instance Savings Plans | Convertible RIs* | Standard RIs | |
---|---|---|---|---|
Savings over On-Demand | Up to 66 percent | Up to 72 percent | Up to 72 percent | Up to 72 percent |
Lower price in exchange for monetary commitment | ✓ | ✓ | — | — |
Automatically applies pricing to any instance family | ✓ | — | — | — |
Automatically applies pricing to any instance size | ✓ | ✓ | —** | —** |
Automatically applies pricing to any Tenancy or OS | ✓ | ✓ | — | — |
Automatically applies to Amazon ECS and Amazon EKS using Fargate | ✓ | — | — | — |
Automatically applies to Lambda | ✓ | — | — | — |
Automatically applies pricing across AWS Regions | ✓ | — | — | — |
Term length options of 1 or 3 years | ✓ | ✓ | ✓ | ✓ |
* Convertible RIs can be changed across instance families, sizes, OS, and tenancy, but requires you to manually perform exchanges.
** Regional convertible RIs and Regional standard RIs provide instance size flexibility.
Reserved Instances for Amazon RDS and Amazon Aurora
Reserved Instances are the only pricing alternative to On-Demand for RDS and Aurora. They work exactly like they do for EC2, so now you already know everything you need. For RDS and Aurora it's even more common that you'll have a stable baseline traffic, so my advice is that you purchase a reserved instance as soon as it makes sense to you.
Cost Optimization: Choosing The Best Option
So, how do you choose between Reserved Instances and Savings Plans for your specific workloads? Well, as a (now former) consultant, of course I'll say "it depends".
Workload Characteristics
I won't give you that bullshirt of whether your workload is stable or not. Of course it's not going to be stable, because of course you'll be doing your best to grow your business. However, you might be able to predict your technology choices.
If you won't be changing EC2 instance types for at least a year, a Standard RI will give you the best savings. If you're planning to stay on EC2, but keep upgrading, then a Convertible RI for one or three years is the best choice. And if you aren't set on your choice for the compute layer, or are planning to change this, Savings Plans are the way to go.
Long Term vs. Short Term Commitment
Of course, a 3-year commitment will give you a significantly higher discount than 1-year. However, keep in mind that it's a 3-year commitment. A lot of things can happen in 3 years! My general rule of thumb is that SMBs that have been around and using AWS for at least 5 years can do with a 3-year commitment, but companies that haven't existed that long should probably try a 1-year commitment first. Of course, this is entirely a business decision, so your business acumen and your analysis of your own business trumps my rule of thumb.
Technology-wise, also consider how much your tech can change in those 3 years. I mentioned SMBs because they tend to be stable. Startups, on the other hand, are a lot more unstable (ideally because they're growing a lot!) and might want to be more cautious with long term commitments.
All Upfront vs Partial Upfront vs No Upfront
Pro tip: Never do upfront. For a Compute Savings Plan on a 3-year term for a t4g.large instance, you get a 50% discount with no upfront, and a 55% discount with all upfront. You're locking down your capital, and you only get a meagre 5% increase! I believe most businesses can get more money if they invest that money on increasing revenue.
Review Your Specific Case
Always review your specific case. Throughout this article I've mentioned that Reserved Instances typically provide higher discounts than Savings Plans, because they're less flexible. Yet, for a t4g.large instance on a 3-year term with no upfront you'll get a 50% discount with either a Compute Savings Plan and a less flexible Convertible Reserved Instance. For an inf2.xlarge instance the Convertible RI gives you a 46% discount, while a Compute Savings Plan gives you a 48% discount. So, check your specific needs and actually compare the real prices.
Conclusion
In conclusion, understanding the nuances between AWS Savings Plans and Reserved Instances is really important for optimizing your AWS cost management. It shouldn't be this hard, I know. But it is, and you can either just close your eyes and overpay, or choose to understand cloud solutions. Since you're reading this, I'm glad you chose the latter.
Frequently Asked Questions
Can Savings Plans and Reserved Instances be used together?
Yes, Savings Plans and Reserved Instances can be used together. They are complementary pricing models that offer cost savings for different types of usage. By leveraging both, you can maximize cost savings on your AWS bill across various AWS services.
How do I switch between Savings Plans and Reserved Instances?
Well, you can't. However, you can modify your commitment by purchasing new Savings Plans or Reserved Instances that align with your updated requirements. It's important to consider plan prices, AWS region, and your specific usage patterns when purchasing a savings plan or reserved instance.
What happens if my usage exceeds my Reserved Instances?
If your usage exceeds your Reserved Instances, you will be billed at the On-Demand rate for the additional usage. It's important to regularly monitor your usage and adjust your Reserved Instances to ensure optimal cost savings.
There are no hidden costs with AWS Savings Plans. The pricing is transparent and based on your committed usage. Savings Plans offer flexible pricing options, allowing you to purchase compute capacity for as little as a fraction of a cent per hour.
How can I estimate my savings before committing to a plan?
To estimate your savings before committing to an AWS Savings Plan, you can use the AWS Pricing Calculator. Additionally, you can use the AWS Cost Explorer to understand your current aws usage and costs, so you can plan accordingly.
Did you like this issue? |
Reply