The Ultimate Guide to AWS Reserved Instances, Part 3: Making the Reservation Purchase
When it comes time to actually step up to the plate and purchase your RIs, you will need to specify several key aspects of your reservations.
There was a time when purchasing an RI was a major commitment—the instance type, OS, and availability zone that you selected was the one you were stuck with. Nowadays, they’re more flexible than ever with Size Flexible, Regional, and Convertible RIs. With these options, you don’t need a crystal ball to enjoy the cost advantages of RIs. And with Convertible RIs, you can even benefit from Amazon’s frequent price reductions, and instance type upgrades.
When it comes time to actually step up to the plate and purchase your RIs, you will need to specify several key aspects of your reservations. Every Reservation actually has eight different features that require a decision point from you.
- Scope: The relatively recent addition of the RI scope feature is among the many strides AWS has taken to make RI purchasing more flexible. The scope of a reservation can be set to either a regional or availability zone (AZ) level. No need to overthink this decision—you can change the scope of a reservation at any time!
- Class: This is an important decision, whether to go with Convertible or Standard class RIs. Standard RIs are a little less expensive (typically by less than 5%), but are also less flexible. Convertible RIs will cost you a bit more, but are extremely flexible, allowing you to exchange across OS, family, and tenancy, as well as the splits, merges, and moves that standard RIs allow.
- Offering: This decision is purely financial. How much cash do you have on hand that you want to invest in this right now? While it’s true that All-Upfront RI purchases always yield the greatest savings, Partial Upfront RIs are typically only slightly less. No-Upfront RIs have the least amount of savings, but don’t require a big capital outlay at the beginning.
Once you’ve made decisions around scope, class, and offering (hint, these don’t need to be monolithic decisions!) you need to get specific on exactly how many RIs of each you will be purchasing. You do this by looking at the amount of On-Demand hours you’ve been running over a historical period. We typically recommend looking at the past 30 days, but you may choose to just look at the past week, or the past day. Whatever analysis period you pick, make sure it’s representative of a normal workload in your environment.
It’s not always so simple as just looking at the instance hours (or normalized units if you’re an advanced user) and assuming that it will tell you how many RIs you need. Here are a few things you need to pay attention to:
- Make sure you are only including running instances in your analysis. Some native tools, like AWS Cost Explorer, will show you both running and stopped instances in one report, which isn’t a good indicator of the RI purchase you should make.
- Account for existing RIs, even if they expired or were purchased during the analysis period. If I have a block of RIs that expired 2 weeks ago and I run the analysis based on the past 4 weeks, I should ‘backfill’ the On-Demand usage from any instances covered by the RIs in the first 2 weeks of the analysis to get the best estimate for which RIs I should buy. The same goes for a purchase made in the middle of the analysis period, if I don’t properly account for those, I could over-purchase.
- Include per-second billing in your analysis. Amazon announced in the Fall of 2017 that they would now be charging for EC2 on a per-second basis. However, RIs are still billed at the hourly threshold. This means that a single reservation now equals 3,600 seconds of coverage every hour. Those 3,600 seconds could be applied to a single running matching instance for the full hour, or they could potentially apply to 60 instances each running for one minute. Is your head hurting yet? This additional flexibility can mean greater RI coverage, depending on your workloads, so make sure you account for it in analysis!
The CloudHealth EC2 RI Optimizer takes all three of these nuances into account and can help you with modeling out the RI purchase you want to make. Once you’re happy with a quote, you can purchase the RIs right from within the CloudHealth console. Or, send the purchase through an approval workflow first before purchasing.
OK, now that you’ve made the RI purchase, let’s move on to phase 4, ongoing RI monitoring and modification. Stay tuned, I’ll be back next week to explain how to keep your RI’s tuned and optimized and saving you money.
To learn more about how you can cut down your AWS spend with Reserved Instances, check out The Ultimate Guide to Amazon EC2 Reserved Instances eBook!