Tracking AWS spend is complex, baffling, and can sometimes look like mission impossible. At Agari, we know you can only improve something once you can measure it. We’ve discovered CloudHealth as a meaningful partner in tracking both AWS usage and costs. Specifically, we’ve found it helpful in analyzing cost trends. It’s advantageous in examining cost drivers and being alerted of unexpected cost spikes before our monthly bill spirals out of control. Our first month, however, presented us with a costly shock:
Our AWS spend seemed to almost increase by 200% at the beginning of every month! The bill for these spikes were recorded as “EC – Unused RI”, meaning we may have been throwing away money on unutilized Reserved Instances (RIs).
In order to uncover the cause for this anomaly, it’s essential to first consider EC2 Reserved Instances’ uses and how they work. Relative to RIs, On-Demand pricing seems much more uneconomical than the three RI categories: No Upfront, Partial Upfront and All Upfront. Although the discounts change over the period of time, types of instances and regions, they can still yield 20% to 45% of savings when compared to the On-Demand rate. There is a catch: purchasing an RI term commits you to that spend, even if the instance hours go unused. Accordingly, we spend a lot of time analyzing our “consolidated payer AWS” account (which i what we use to handle RIs), auditing usage with their Billing > Reports > EC2 Reserved Instance Utilization Report:
Looking at the chart, anyone can discern that our usage is fudging amazing, so we thought, “What’s going on?!” Why does CloudHealth attribute half our costs as “Unused RI”?
The story is the charges stem from CloudHealth pulling data straight from the daily AWS billing data for us. This isn’t a technical issue, it’s just an unclear label from AWS: a better one might be “Not Yet Used, but Reserved RI”. AWS accrues the full cost of all instance reservations at the beginning of each month and shows it in one single charge. As the month progresses and you utilize instance hours covered by your reservation term, the charges are processed as “EC2 – Compute” and are taken away (at a monthly rate) from the “EC2 – Unused RI” line item on Day 1. If you actually use 100% of your reservations, your monthly bill will never show the “Unused RI” charges.
We very much advocate analyzing AWS daily costs with CloudHealth – we only advise you to be ready for some unexpected findings!