Developing a Reserved Instance purchasing strategy
The FinOps Journey:
(EDITORIAL NOTE - Annotated in 2019 to show this post's role on the path to the FinOps cloud operating model.)
Reserved Instances and Committed Use Discounts are powerful cloud cost optimization tools with the potential to drastically lower your cloud bill without decreasing your cloud usage. As cloud infrastructures have grown, it’s become more important to take full advantage of vendor discounts. Over time, it’s been found that the most effective way to do this is with a centralized RI buying process, which is why RI buying by a central team is a key part of the FinOps cloud operating model.
Find out more by reading FinOps: A New Approach to Cloud Financial Management.
Welcome back to the Five Stages of AWS Cost Efficiency series! In Stage IV, we’ll discuss how to integrate a powerful savings tool into your cloud infrastructure: AWS Reserved Instances.
Most companies tend to oversimplify their Reserved Instance purchasing strategy, which means they end up paying more than they need to and saving a lot less than they could. This post is a recipe for maximizing that savings, by approaching Reserved Instances with the complex, iterative process they require.
To brush up on your Reserved Instances savvy before we get started, remember these fundamentals:
- A reservation is bought for a combination of instance type, availability zone, and OS.
- Reservations are applied hourly to qualifying instances of a matching type, AZ, and OS.
- Reservations are not purchased for specific instances, but are rather applied to any qualifying instance running during a given hour.
- In addition to cost savings, a reservation also serves as a capacity reservation.
All set? Let’s get started.
A) Make sure you’re using what you already own
Before making any new Reserved Instance purchases, it’s always important to take a look at your existing reservations to determine how well you’re using them; it’s entirely possible that some of your existing reservations aren’t being fully utilized. You can address this by adjusting your infrastructure to match your reservation portfolio (e.g. moving instances to the availability zone where you have RIs), or by modifying your reservations to match your infrastructure (e.g. modifying a reservation to break an m3.xlarge us-east-1a reservation into two m3.large us-east-1b reservations).
If that sounds like a lot of work, don’t panic! The Cloudability Reserved Instance Planner will lay out an action list to modify or sell existing reservations for you, by evaluating your usage data and comparing it to your existing reservations.
B) Identify the worst on-demand offenders first
Once you’ve optimized your existing reservations, your first purchase should be small and non-controversial, to cover your most consistently used instances. Look for recommendations where the savings rate (i.e. the percentage of Reserved Instance savings compared to on-demand) is the highest, for instances types that you’re unlikely to change in the next 3 months.
While it’s likely that you can reduce the number of instances you really need (see Stage III: Optimizing EC2 usage) or that some of your instances could be resized or upgraded to newer instances types, don’t worry about that right now. We’ll come back to that work while we fine-tune your infrastructure in section D below. For now, focus on getting started based on what you have.
You’re looking do the most damage with the smallest possible purchase; as such, avoid the temptation to overbuy initially. This first purchase shouldn’t be focused on boiling the ocean, but about covering the basics. Buying too many reservations now means you may be stuck with the wrong ones when your engineering team invariably needs different resources a few months from now.
C) Act quickly on your first purchase
Why should the first purchase be small and non-controversial? Because you want to move quickly. Larger buys require deeper conversation with engineering/ops team to ensure that you’re buying the right types of instances, and with finance/exec teams to get approval on the high dollar value. It’s not uncommon for a full quarter to pass between identification of recommendations and execution of the actual purchase. If you see a reservation recommendation with a three-month break-even point— and an infrastructure change isn’t imminent— just buy it. If you end up running those instances more than three months, you will have paid for the reservation.
D) Do some clean-up
In the month following your first purchase, you’ll want to go back to ensure you’re using what you’ve purchased (see section A above) and that it’s been properly applied by AWS. Once that’s done, it’s time for some housekeeping.
Look at your existing instances and see if you’re using the best instance sizes/families for the workload. Reducing the number of total instance families you use can increase your economy of scale when it comes to modifying reservations— remember, you can only modify reservations within the same instance family— and making the most of the reservations you have.
Migrate m1 to m3, c3, or r3, etc. It’s okay if you bought some m1 reservations in the last step; the process of migrating your instances will likely take longer than the break-even point on those reservations! Also be sure to check if you can turn off some instances you don’t really need before you buy reservations for them.
The Cloudability Reserved Instance Planner lets you select any time frame upon which to base your recommendations. If you’ve been diligent about culling waste and resizing underutilized instances, be sure to set the analysis period to be post-cleanup!
E) Institutionalize iterative monthly (or quarterly) purchases
If there’s one constant in cloud infrastructure, it’s change. Regularly scheduled purchases—and modifications—will keep your reservation portfolio closely aligned with your infrastructure, even as you change directions. The most efficient companies go through process monthly, basing each month’s buy on the most current usage data that reflects future forecasts. We’ve seen companies drop their spending precipitously over a few quarters using this approach.
F) Make someone responsible for your Reserved Instance purchasing strategy
Make no mistake, this process takes a lot of effort. Assign an RI Tzar who is held accountable for your Reserved Instance purchasing strategy to get the purchases done on an agreed schedule.
Usually this person is tied to the finance team in some capacity, and is empowered to work across engineering, operations, and finance teams. There will need to be a proactive conversation between the various teams to align financial goals, technical plans, and operational SLAs. Companies that leave this dialogue to chance tend to only make one or two purchases a year, and as a result, make much bigger purchases than they should. If you’re spending six figures or more a month, you might even consider making this a full-time job. The savings can easily be multiples of the cost of an FTE.
Got a handle on your Reserved Instance purchasing strategy? Stay tuned for Stage V: Unit Cost and Business Metrics, which will move beyond focusing on total cost to look at the numbers that impact your margins.
For more information about the Five Stages of AWS Cost Efficiency, check out these blog posts: