Amazon Web Services (AWS) offers three different ways to pay for EC2 Instances: On-Demand, Reserved Instances, and Spot Instances. This article will focus on effective strategies for purchasing Reserved Instances. While most of the major cloud platforms offer pre-pay and reservation discounts on compute instances, I’ll be using the AWS terminology and context. Whether you are using Amazon, Azure, or Google Cloud Platform, these recommended strategies have proven effective for purchasing Reserved Instances.
This article assumes you know at least a little about Reserved Instances and the pricing options for EC2 that Amazon offers. If not, be sure to check out the AWS documentation and the summary in this excellent blog post.
Amazon makes several services eligible for Reserved Instance purchases: EC2, RDS, Elasticsearch, Elasticache, DynamoDB, and Redshift. I’ll focus on EC2 Instances, but most of the information is universal. Since these strategies are in a loose order of execution, they are adjustable given your context.
To effectively purchase Reserved Instances, there can be a lot to consider (and to do) before putting together your final order. But it’s worth it given the dollar investment involved and the potential savings for your organization. Here are some best practices for purchasing Reserved Instances.
- Engage the key players deploying workloads in the cloud
- Engage the stakeholders who will approve your purchase
- Run resource utilization reports and right-size analysis
- Update instance families where possible
- Choose payment options
- Decide which accounts to make the purchase under
- Start conservatively
- Give visibility and educate
- Actively manage as a process
- Engage your AWS Technical Account Manager
Engage the Key Players
Get to know the key folks in your organization who are deploying workloads in the cloud. These could be cloud ops or DevOps team members. Be sure to also identify the technical leads or architects for the products. They are usually the closest to the product architectures and can help inform you on related technology roadmap decisions. Take your Reserved Instance plans to them for validation — you don’t want to find out they’re going serverless next month after you’ve bought a bunch of Reserved Instances for them. The team is the best source for learning scaling (or de-scaling) plans, instance family changes, and other key data points. You definitely want the warm fuzzies from them before pulling the trigger on any purchases on their behalf.
Engage the Stakeholders
Now that you know the technology decision makers, make sure to identify and engage the stakeholders who will approve your purchase: finance, CTO/CIO, your boss, and other key partners. It’s easy to get lost in the technical details of an Reserved Instance purchase, make sure to keep your presentations at the appropriate level and context. In the end, you’re proposing a strategy to save money and control costs that provide some easy ROI data points: don’t over complicate it.
Run Utilization Reports and Right-Size Analysis
Run your resource utilization reports and identify EC2 Instances that can be downsized, terminated, modernized, or put on automated start-stop schedules. Your organization, as a matter of best practice, should be performing right-sizing analysis and adjustments on a regular basis. This will yield cost savings even with On-Demand pricing, and you’ll want to make sure you are caught up with your right sizing so you aren’t overspending on underutilized resources or buying unnecessary reservations. An Amazon Trusted Advisor can help with this to a certain degree, and there’s a healthy market of effective third-party tools that can automate and streamline your right-sizing process. Some established examples are CloudHealth, Cloudability, and CloudCheckr — and there are dozens more to choose from. The best approach is to identify and define your organization’s needs and evaluate a couple with the features you are looking for. Any of them will save you lots of time by helping you avoid very tedious and complicated analysis.
Update Instance Families Where Possible
Check the instance families your product teams are using. It’s important to look for previous generation families in use and determine if it’s possible to replace them with more updated versions. In addition to performance gains and feature availability, the newer families are usually slightly cheaper. Also, it can help to do some analysis to make sure the right instance types are being used for the workload — with considerations for favoring compute, memory, I/O, etc. Detailed utilization analysis can help determine any necessary instance type changes and make your reservation purchases more effective. If you’re experiencing or anticipating a lot of change in instance types, the convertible option might be best. You’ll sacrifice a few discount points, in exchange for reducing the risk of being stuck with unused Reserved Instances.
Choose Payment Options
Decide on payment options for your reserved instances. AWS offers three approaches to paying for Reserved Instances: all upfront, partial upfront, and no upfront. The all upfront option provides the steepest discount, but it’s usually only 1% or 2% better than the partial upfront. No upfront (essentially just reserving an instance for 1 to 3 years) offers the smallest discount, usually about a 5% difference from the other two options. Between payment options, term length, and reservation type, you can range anywhere from 30% to 60% in savings. Use the AWS Cost Explorer Reserved Instance Recommendation tool in your account console to easily tinker with the options and see their impact on discounts.
Decide Which Accounts to Make the Purchase Under
For consolidated accounts (a group of accounts linked to a master payer account), you’ll want to decide which accounts to purchase the reservations. Consolidated accounts offer a great feature: reservations can float between accounts. This means if the account the reservation was purchased in can’t use the reservation, it can float to another account so the reservation won’t go unused! Given this, some organizations like the simplicity of purchasing all the Reserved Instances in the payer account and letting them float where needed. As a personal preference, I like purchasing within the individual linked accounts, so the reservations will get used first where intended (although that can be a cumbersome purchase). This can help with budget reporting and other detailed cost analysis within the accounts. Note: If you make your purchases in the payer account, you can turn off Reserved Instance discount sharing for specific linked accounts.
Don’t go for 100% coverage right out of the gate. It might be more comfortable for all involved to make a solid purchase initially — say, 50-70% coverage, depending on your situation. You can also reduce risk by choosing the convertible option for your reservations. And then you can (and should) setup a regular cadence for updating your analysis, buying more, and modifying or converting existing Reserved Instances.
Give Visibility and Educate
Give attention to visibility and education. Success making technology decisions depends on an informed organization. Providing visibility into your cloud performance and cost metrics can help get teams invested in making the right choices. An important part of any cloud optimization strategy also includes evangelism and education. Folks at all levels will be less likely to “buy-in” to complicated decisions that don’t have obvious connections to an organization’s goals. Sure, the information is all over the internet, but it’s a lot more effective to give it structure and shepherd it along in your organization. That’s also a great way to build partnerships invested in the success of your cloud strategies. A solid training platform (like the one hosting this blog) is also super effective for providing curated information to all organizational role types.
Actively Manage Your Reserved Instances as a Process
The Reserved Instance purchase is not the end. Once you’ve got your Reserved Instances in place, remember to build reviewing and modifying them into your process to reduce the risk of them going unused. Over time, you’ll also need to track, prepare and react to Reserved Instances whose terms are expiring.
Leverage AWS Resources
Engage your AWS Technical Account Manager(s). Have your AWS support team provide you with recommendations independent of your own. They’ve got team members dedicated to this craft and can help with all aspects of the analysis and purchase. This is a great sanity check against your own analysis and can help you avoid missing opportunities or making costly mistakes.
In summary, purchasing Reserved Instances can be complicated no matter the size of your organization’s cloud footprint. Start simple, take the time to understand the foundational concepts, and partner with the key stakeholders in your organization. Working with your teams on right-sizing and modernizing activities as an integrated, routine process will make coming up with effective recommendations for Reserved Instance purchases much easier and less stressful.