Launch: Instance Family Coverage Budgets
AWS’s dizzyingly fast launch cadence (across 165+ services) can make it difficult for anyone to stay up to date on recent releases. In that vein, I was recently reading through the AWS Cost Management Release Notes, and I was reminded of a recent feature release that’s a quick win if you want to keep a closer eye on your Amazon EC2 Size-Flexible reservations.
This post provides a quick overview of Amazon EC2 Size-Flexible reservations, as well as step-by-step guidance on how you can use AWS Budgets to set a custom reservation coverage budget.
An overview of Size-Flexible reservations
Before we dive in, let’s quickly talk about Size-Flexible reservations and why they can be a powerful tool for optimizing costs.
AWS has a long history of price drops and broadening the application of discount models to help customers save more money. In 2016, Amazon EC2 expanded Reserved Instances to allow the hourly reservation discount to apply not just to a single Availability Zone, but also to an entire Region. From there, Amazon EC2 expanded the applicability of these Regional discounts to include all instances in the reservation’s instance family. These changes increased customer savings by applying the reservation-related hourly discount to qualifying usage that is incurred by instances in the same instance family and region. To learn more about Size-Flexible reservations, see the Amazon EC2 technical documentation.
Using AWS Budgets to manage your Reservations
AWS Budgets allows you to set custom budgets based on your reservation coverage and utilization, and to receive alerts when you fall below the target that you define. Prior to this launch, you could create custom budgets only across all instance families. Now you can use AWS Budgets to create Reservation Coverage budgets to monitor your Amazon EC2 reservations for a specified instance family.
Reservation coverage lets you track the number of running instance hours that are covered by your reservations. Tracking can be based on a daily, monthly, quarterly, or yearly cadence. Each Reservation Coverage budget supports one percentage-based coverage target<link to https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/ce-default-reports.html#ce-coverage-views>. You can configure the budget so an alert is sent to up to ten email subscribers and/or broadcast to an Amazon SNS topic of your choice when your reservation coverage percentage drops below this target.
Setting an instance family Reservation Coverage budget
This example demonstrates how to use AWS Cost Management to do the following:
- Displaying information about your current reservation coverage
- Dive deeper to analyze your current coverage trends
- Set a custom coverage budget
- Configure alerts based on your overall instance family coverage
To get started, navigate to AWS Budgets. This can be done from the AWS Management Console or from the AWS Billing Console. Here’s the view in the AWS Management Console:
Choose AWS Budgets, then choose the Create Budget button. This starts the budget creation wizard.
Analyzing your current coverage
Choose the type of budget that you want to create, and the wizard prompts you to specify settings for that type of budget. If you aren’t sure what value you ought to use for your budgeted amount, or if you want to explore your utilization before taking action, I recommend scrolling down to the filtering portion of the budget creation workflow. Based on the following chart, my current levels of reservation coverage appear fairly steady, so it may make sense to dive deeper into individual reservation families. You can do so by clicking the View in AWS Cost Explorer link in the top right corner.
Analyzing your reservation coverage trends
Using AWS Cost Explorer, you can adjust the Service and Instance Family filters to arrive at the combination of reservations that you want to monitor. In the example below, I refined the filters to display my Amazon EC2 reservations that belong to the t2 instance family.
Setting a Budget
Now that I have a sense of my historical coverage patterns, I can return to AWS Budgets and set my budget accordingly. Start by giving your budget a name and setting the budget period. In general, I recommend setting the budget period to Daily for reservation budgets so that you can be alerted quickly when your usage patterns change. Reservation budgets can also be set at the Monthly, Quarterly, and Yearly level of detail.
From there, all you need to do is set your email alerts, confirm your budget details, and, voila!, your budget is ready to go!
Once your budget has been created, you can simply flip over to the Reservations tab within the AWS Budgets dashboard to keep an eye on your budget portfolio, and you’ll automatically receive email alerts if you fall below your target coverage amount.
Please note that AWS Budgets has a Free Tier offering of two active budgets (62 budget days) per month.
Using AWS Budgets, you can quickly set custom Reservation Coverage budgets that can alert you to changes in your coverage patterns. From there, you can dive deeper into your reservation coverage using AWS Cost Explorer and use that information to better understand your reservation coverage and to set more granular budgets. To learn more about setting Reservation Coverage budgets, please refer to the AWS Budgets webpage or the Managing your Costs with Budgets user guide. You can also proceed directly to the AWS Budgets dashboard.