Reserved Instances are a powerful tool for lowering AWS spend, but are not something that can be set once and forgotten. As utilization patterns change there may be already-paid-for reserved hours left on the table; regularly reviewing RI Utilization and what’s left for the month thus becomes a critical analysis. The following article will outline which Cloudability Dimensions and Metrics need to be queried to effectively optimize Reserved Instance Utilization.
Partial Upfront RIs are Cloudability’s best practice recommendation for several reasons (that can be reviewed in this Blog post), one of which is the inclusion of the Injected Line Item. No Upfront RIs will also leverage this line item and it is the key to understanding RI Utilization. Adding a “transaction type_equals_recurring charge” and “product name_equals_amazon elastic compute cloud” will surface the line item in a Cost Analytics report.
AWS will surface the full cost of the 720 (or 744) monthly reserved hours in the “Total Invoiced Cost” column, the count of unused RI hours in the “Usage Quantity” column, and the cost of unused RI hours in the “Unblended Cost” column. The Injected Line Item is a single line item in the DBRRT Detailed Billing Report with Resources and Tags (DBRRT) and is re-written each hour with new data. This means “Usage Quantity” and “Unblended Cost” are dynamic data points and will surface updated figures throughout the month. Subscribing to these reports these data, or creating a Widget, allows for real time analysis and optimization of RI Utilization.
Including “Instance Type” or “Account Name” in a Cloudability report will surface a mapping of used, and available, reservation hours.
Sharing these data throughout an organization can show how efficient each team has been with RI usage, as well as which instances are available for “free.” Dev and test environments, staging, and overnight batch processing jobs can be great candidates to move to the reserved instance types - and to lower AWS spend in the process.
Click on this report link for an example with your own data.