AWS announced a new benefit of Reserved Instances called “Instance Size Flexibility” for EC2 Reserved Instances. This allows the savings of an RI to apply to any size of compute instance you run inside of a family. We think this will simplify RI planning and make it easier to achieve savings.
We’re excited about this change and we’re eager to help our customers use this feature to improve the ways they can save with Reserved Instances (RIs), so let’s dive into more details. We’re going to walk through some background information to really hone in on how important this change is. If you’re looking for the new details right away, skip to the Instance Size Flexibility details below.
Let’s Recap Before Diving In
RIs are not an instance of compute, but a discount on the rate (dollars) vs. on-demand pricing. We like to think of a Reserved Instance as a coupon book: you buy a book applied to a compute family, size, Availability Zone and OS (e.g., m4.xlarge, us-west-2a, Linux) and when you run compute that matches those parameters, the discount applies. This has been a great way to save up to 75% vs on-demand pricing.
However, there are a few drawbacks to traditional RIs. First off, they’re picky: if your EC2 instance type doesn’t exactly match your coupon (RI), then it won’t be applied. From the example above, if you run an m4.xlarge in us-west-2b (note the AZ difference), then you’ll be charged on-demand rates and your discount for that hour will go to waste.
AWS recently addressed this by introducing the Regional Benefit. You can now buy an RI and apply it to a region instead of an AZ. This means if you run any m4.xlarge using Linux in us-west-2, the discount will apply.
How Regional Benefit Relates to Instance Size Flexibility
Regional Benefit is a great simplification, and we’ve seen a number of customers adopt this. There is no cost difference, but there is one major consideration: capacity. An RI that applies to a specific AZ comes with a capacity guarantee. Think of it as a discount coupon but also a guaranteed “slot” to launch your instance. This is a great benefit for companies who know their capacity needs or want to plan ahead around future events (or, who want to ensure a base level of capacity at any given time). We find, however, that this will become the less frequent use case for RI’s — most customers want a price discount vs. on-demand but don’t need the explicit capacity guarantee.
Now, on to the new feature. An RI with Regional Benefit is a great simplification, but it still requires a level of planning and accuracy to correctly determine the size of instance you’re running. Cloudability’s RI recommendation engine will examine your compute usage and recommend a portfolio of RIs. For example, if you use a lot of m4.xlarge instances, we can recommend a set of RI purchases that cover the needed quantity of that size. Over time if you change architectures and run an m4.large or m4.2xlarge, we can modify your RI portfolio to better fit your compute. The new instance size flexible RI benefit does this behind the scenes in a way that’s transparent to you. You simply buy an RI in that family (m4 in this case) and regardless of running large, xlarge or 2xlarge there will be a level of discount applied. (See below for some exceptions to this rule.)
Traditionally, the RI to buy was based on a type of compute instance and its size. Where running in a specific AZ is not a priority, you should look at compute usage by compute family, not by size. Under the hood, AWS will normalize all compute hours and apply RIs to cover those units. Here’s a quick picture from Cloudability of compute by family-type (irrespective of size):
As you can see, this shows a lot of i2 EC2 instance spend, year-to-date. This kind of view of compute — by overall family spend — is one new way to look at RI optimization possibilities. We will be updating our application soon to show compute units. (More on that below.)
Going forward, AWS will assign your compute usage a normalization factor:
The good thing is that normalization will be handled under-the-hood by AWS and will likely result in more RI usage. Here’s a quick example to illustrate this concept: say you own one m4.xlarge RI and for a given hour, you run one m4.large. Previously there would be no size match and the discount wouldn’t apply:
That’s frustrating because even though you have RI inventory, you can’t use it. Cloudability has helped this problem in the past (and still does) by automatically modifying RI sizes to better match what you actually run. Going forward, AWS views RIs via their compute units, which changes the equation. Back to the example — now the RI inventory you own can be put to use for the hour running an m4.large:
Here you can see the RI amounted to eight units and you used four to run the large instance. 50% RI waste for an hour is better than 100% RI waste.
Potential Pitfalls to Consider
Overall, we see a lot of upside to the new RI benefit. There are, however, a few things to keep in mind:
- This doesn’t apply to all compute instances — right now this RI benefit applies to EC2 instances running Linux (note, not RedHat Linux), with Regional Benefit, and which have shared tenancy on.
- Consider when you need capacity — as noted above, there are good reasons to want to reserve capacity and to do that you’ll need to buy RIs in a specific AZ. Instance size flexibility only applies to non-AZ specific RIs with Linux OS and shared tenancy.
- This doesn’t work outside of a compute family — you need to understand your compute usage inside a family and purchase RI coverage that way. A set of m4 RIs won’t apply to c4s for example. For that, consider Convertible RIs.
See This In Action with Cloudability
Our RI recommendation engine supports the new RI benefit today — just search for recommendations based on Regional Benefit, Linux and Shared Tenancy (the default settings). In the coming weeks, we’ll add more support for it and show your usage over time based on compute units.
Remember that this benefit only applies in a specific set of circumstances (EC2, Regional, Linux, Shared Tenancy). There are many other ways to use RIs, including across other services like RDS, Redshift, and others. Cloudability can help you drive a comprehensive cost optimization plan using various RIs, Rightsizing and automation. If you’re interested in learning more, contact us to see these techniques in action.