The math behind AWS Reserved Instance modifications
Reservations are one of the most effective cost-saving tools available to AWS users— but only when they can be applied to relevant instances. As your infrastructure changes and grows, you may need to change your reservation size to align with bigger or smaller instances with AWS Reserved Instance modifications. Making those changes comes down to understanding something that Amazon calls “normalization factor,” and, yes— there’s math involved.
What’s a “size footprint”?
AWS lets you modify the sizes of reservations within the same instance family, so long as the reservations are on a Linux OS and the “size footprint” of your reservations remains the same. As stated on their website, “A modification request is not processed if the footprint of the target configuration doesn’t match the size of the original configuration”— in other words, maintaining your size footprint is important.
So, how do you make sure your size footprint stays static? Each one of your reservations has something called a “normalization factor,” which is a numeric value that differs according to its size. The size footprint is the combined total of your reservations’ normalization factors.
The normalization factor
The normalization factor is a number assigned to an instance, used to compare instances’ value relative to each other. The larger the instance size, the higher the normalization factor; the smaller, the lower. The point breakdown looks like this:
Putting numbers to work
In order to determine the total size footprint of a group of reservations, simply add up all of the “normalized instance units”— the normalization factor values— into one big number. For example, to calculate the size footprint of two m1.mediums (each with a normalization factor of 2) and one m1.large (with a normalization factor of 4) you would add 2 + 2 + 4, and get a size footprint of 8.
In the example above, you could modify those three reservations into any number of differently sized instances within the m1 family, so long as their total size footprint remain equal to 8. This could range from anything to eight m1.small reservations (each with a normalization factor of 1) to a single m1.xlarge (with a normalization factor of 8).
Catching on? It’s pretty simple once you know the rules. Just make sure that the size footprint of the reservations that you want to modify is the same as the size footprint of the reservations that you want to end up with; the rest is up to you.
What about cost?
So long as your size footprint remains the same, AWS Reserved Instance modifications won’t impact your bill. This is because reservations are priced proportionally to each other, just like normalization factor. An m1.small reservation, with a normalization factor of 1, costs exactly half as much as an m1.medium reservation, with a normalization factor of 2.
The fine print
It’s important to remember that you can only modify the size of reservations that are running on Linux, and only within the same instance family; you can’t modify reservations on an OS other than Linux, and you can’t modify reservations from the m1 family into reservations to the t2 family, for example.
It’s also worth noting that the “new” reservations resultant from your modification have the same end date as the reservations that you modified— you don’t get to refresh your reservation duration. If your original reservation had six months left, your modified reservation will also have six months left.
There are a few reservation types which may not be resized because they are the only available size in a family. A list of these instances is available on Amazon’s website.
More information about AWS Reserved Instance modifications
For more information about modifying your reservation size and about other types of AWS Reserved Instance modifications, watch the recording of our latest webinar, Modifying Your AWS Reserved Instances— then try out our AWS Reserved Instance Planner, to see where your infrastructure could benefit from modifications.