Reserved Instances 2018 Update: What Changed Over the Past Year
It’s almost the 9th anniversary of AWS Reserved Instances and each year there continue to be updates to the model to make them more flexible. 2017 in particular was a big year for changes: not only did AWS introduce entirely new RI types (e.g., one year convertibles) and billing models (e.g., per-second billing) but Microsoft also launched their first version of the appropriately named Azure Reserved Virtual Machine Instances.
At last year’s AWS re:Invent, I gave a talk with one of the world’s experts on cost optimization, Mike Fuller from Atlassian. While we covered the whole gamut of both reducing usage and reducing rates, the majority of questions we received were on the topic of Reserved Instances. This blog aims to cover the common questions and also the significant recent changes to RIs we covered.
What Stayed the Same in 2017 with AWS Reserved Instances
Before we get into the fun stuff, let’s talk about the fundamentals that still hold true as of January 2018:
RIs offer a choice of cost savings only or a combination of cost savings and a capacity benefit. The cost savings only option gives you more flexibility. The capacity benefit doesn’t guarantee you’ll get the instance you need, but it does give you priority above on-demand and spot customers.
In general, Reserved Instances that are owned by a linked account are applied first to usage in that account before being made available to other linked accounts in a consolidated billing account.
What has Changed with AWS Reserved Instances?
A lot changed in 2017 that can affect your strategy. Here are the things you should be aware of:
Instance Size Flexibility (ISF) for EC2 and RDS: When you buy Regional RIs for Linux (or a non-licensed RDS RI), units apply across the entire family, not just the size you choose. (For example: units apply to both c4.2xlarge and c4.large). This isn’t entirely new functionality. For a few years AWS has allowed you to “modify” Linux RIs to change their size within the same family. However, this was an action that you previously needed to take (or automate) whereas now it happens automagically. Modifications are still relevant for moving AZ-scoped RIs between AZs within a region as ISF only applies to sizing within a regionally scoped RI.
New One-Year Convertible RIs: We’ve seen a massive uptick in purchases of this new type. This new option is perfect for those who want lots of flexibility, don’t want to commit to a long term and also want to get a discount on on-demand. The no-upfront option is a no-brainer for any EC2 usage you expect to keep going for at least four-six months (remember cash flow breakeven points are usually much shorter than the actual length of the reservation). Convertibles are a great bet if you know you’re going to be using EC2 but you want the flexibility to go to different families or containers.
Splitting and Merging Convertible RIs: This change made convertible RIs easier to exchange by allowing you to merge combinations of purchases made at different dates and the ability to (finally) split large RIs into smaller units (hence you can chip away only the part which isn’t being utilized and keep the rest). Exchanges can be done via the AWS Console which includes a calculating tool but does not retain history. One catch to watch out for: if you combine a one-year CRI with a three-year CRI the resulting CRI will be three years.
Controls over RI sharing by account: You can now exclude accounts from sharing their Reserved Instances with other linked accounts in a consolidated billing structure. Previously the only control you had was to purchase at the linked account level to give first dibs to that account for the RI. We’re still watching for AWS to release more fine grain controls over which account, tags or organizations specific RIs can apply to. More info.
AWS went to per-second billing from per-hour billing: This was perhaps the largest change of the year. One of the cool things this enables is stacking of ISF normalization units in highly elastic environments. For example, if you have three EC2 hosts running for 20 minutes at different times in a single hour you could use a single RI to cover all three. Cloudability’s RI Planner factors in this ability and in the stated example would recommend an RI whereas simpler systems not factoring in ISF at the per-second level (or looking at individual machines vs instance seconds) would make no recommendation for an RI in that hour. Beyond RIs, those with elastic environments may see significant cost savings due with per-second billing simply because they aren’t charged for a full hour if an instance only runs for a number of seconds. At AWS re:Invent, one customer shared that they saved tens of thousands of dollars overnight with this change. The downside here is tracking RIs gets more complex as you now have 2m+ RI coupons that can be applied to different instances per RI each month.
Cloudability’s RI Planner lets you compare the various Reserved Instance options, their savings and cashflow breakeven points so you can generate the plan that’s right for you.
Azure Launches Reserved Virtual Machine Instances
Long rumored and widely expected, Microsoft finally joined the Reserved Instance party. The offering is surprisingly flexible that is aimed at matching many of the 2017 AWS RI improvements, with some caveats. Here are the basics on how Azure RIs function:
Azure RIs are purchased for an Azure region, virtual machine type and term (one year or three years). That’s it. You don’t specify OS or AZ like in AWS.
Exchange Azure RIs across any region and any series as your workload or application needs change. However, these changes are not yet programmatic and must be requested via a support form in the console. You will receive a refund prorated based on remaining hours to be applied to the new RIs that are part of your exchange. Unlike AWS there is no requirement to top-up. Plus your “exchange” can simply be a cancellation of the entire RI purchase with a fee.
Cancel your Azure RIs for an adjusted refund if you no longer need the capacity you purchased. It’s important to note the fine print that says cancellations have a 12% early termination fee and cancellations max out at $50,000 per year. It’s unclear if this is a hard limit or if it can be raised for large spenders.
Like AWS, there is a capacity prioritization but no guarantee.
Azure RIs can be assigned at the enrollment or subscription level, so you can manage RI usage at an organizational or individual department level. This gives you more control over how to apply them and who should benefit from them. This control can help avoid the “RI float” dilemma in AWS. For example, to simply buy reservations to save money for your organization, you can assign all reservations to the account level. If a particular business unit, such as Finance, wants to buy the reservation for its use only, it can be assigned to a subscription where only that group can take advantage of the savings. This is an improvement over AWS’s current RI-affinity controls and I expect AWS to counter with a similar offering. The downside to this feature is that unused RIs do not become available to be used by machines not in a subscription which could result in more waste than with AWS’s scheme where RIs automatically cascade to other linked accounts if the purchasing account doesn’t use them.
RI benefit starts immediately after purchase. This is similar to AWS but note that Azure bills at the minute level, rather than the per-second level. Their clever answer to AWS’s per-second billing is to round down to the previous minute to offering what they call “better than per-second billing” without actually offering that level of granularity.
By default, RIs are Linux based but you can add Windows either via Azure Hybrid Use Benefit (which lets you assign your on-premise licenses to the instance) or you can pay an hourly fee to add Windows (similar to AWS’s model) based on the number of cores running.
Azure RIs are available for all VM families other than A-series, A_v2 series, or G-series but not offered in all regions for the VM families. Check MS documentation to verify the RIs you wish to purchase are available for your VMs.
Unlike AWS, Azure RIs are only “All Upfront” requiring you to pay for the entire term at the beginning. There is no option to do a “Partial Upfront” or “No Upfront” like there is in AWS which allow you to take advantage of savings with less cash outlay.
Given These Changes, What Reserved Instances Should I Buy?
The answer is that it depends. In Azure choices are still limited so the main decision point is about how long you expect to run compute resources. Complicating the decision is whether you plan to use HUB which enables you to apply available on-premise Windows licenses to Azure VMs. Azure VMs by default run Linux. To add Windows you can either pay an hourly fee (similar to AWS’s model) or take advantage of HUB to use Microsoft licenses you already own.
In AWS, the answer is there are more factors to consider.
If you are committed to EC2 long term but want flexibility to change machine types (or are planning to make a major change to your infrastructure like moving to containers) the three-year convertible RIs offer significant savings (40%+) and future-proofing. The downside is the longer commitment but keep in mind that breakeven point for a three-year RI may be closer to 12-16 months, and three-six months for a one-year RI.
Cloudability’s Cash Flow Comparison chart in the RI Planner lets you see just how quickly a three-year RI could breakeven.
Conversely, if you need to preserve cash and fear a longer term commitment to EC2 then the no-upfront one-year convertible RIs are the obvious choice. For sophisticated and scaled AWS customers, the right answer is a diversified portfolio of RIs based on the business needs of various applications. A company may opt to have the majority of their coverage in three-year all upfront convertibles because they know they will be using the same amount or more of EC2 in the next one-two years. (I like to think of this type of RI as much like an enterprise commitment discount but with a savings rate north of 40%.) They may own a small collection of three-year standard RIs for parts of their infrastructure they expect to be around for longer than the one-two year breakeven point (i.e. infrastructure that won’t change EC2 family). Finally, they may choose to sprinkle in some one-year no-upfront convertible RIs to cover the balance of their usage where they are less confident about long term use but want to knock 30% off on-demand.
Want to Keep Talking?
If RIs will play a big role in your cloud strategy for this year, we’re here to help you make sure you make the best decisions for your situation. Reach out today to ask questions, keep the conversation going or get a demo to see your data in Cloudability.