Managing AWS costs is confusing, difficult and sometimes can seem downright hopeless. At Agari, we’ve found Cloudhealth
to be a useful partner in measuring both AWS usage and spend. As the saying goes: “what you measure, improves!”.
In particular, we’ve found it useful to track daily AWS spend. It's helpful both in terms of understanding what drives costs, as well as heading off unexpected increases before they can clobber our monthly bill. The first month we did this, though, brought an expensive surprise:
Our costs appeared to nearly double on the first day of every month! And the charges were classified as “EC - Unused RI”, which suggested we were wasting money on unused Reserve Instances.
To make sense of this situation, it is useful to first review what EC2 Reserve Instances are
and how they work. OnDemand pricing is considerably more expensive than the three Reserve Instance tiers: No Upfront, Partial Upfront and All Upfront. Savings vary over time, instance type and region, but they range from a discount of 20% to 45% relative to the On Demand rate. Here's the catch: once you’ve paid for the reservation, you are committed to that spend - even if you don’t actually use the instance hours. As a result, we spend a lot of time in our "consolidated payer AWS” account (which is only used to handle Reserved Instances), monitoring usage with their Billing > Reports > EC2 Reserved Instance Utilization Report:
As you can see, our usage is darn near perfect so we wondered, "What gives?!". Why is Cloudhealth claiming half our spend is “Unused RI”?
It turns out that charge comes directly from the daily AWS billing data that Cloudheath processes on our behalf. Basically, this is an issue of a confusing label - a better label might be “Not Yet Used, but Reserved RI”. At the start of each month, AWS accrues the full charge of all instance reservations and shows it in a single charge. Over the course of the month, as you use instance hours covered by your reservations, the charges show up as “EC2 - Compute” and are subtracted (from the monthly perspective) from the “EC2 - Unused RI” line item on Day 1. Assuming you are using 100% of your reservations, you won't see any “Unused RI” charges in your actual monthly bill.
We certainly recommend tracking AWS spend daily with Cloudhealth - just be ready for a few surprises!