Search Close
Email Security Blog

Managing Your AWS Costs? Get Ready for a Surprise!

Chris Haag October 6th, 2016 Engineering
Fallback Featured Image

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:

aws-cost

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:

aws-costs-2

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!

Leave a Reply

Your email will not be published. All fields are required.

April 8, 2016 Chris Haag

Lessons Learned Hiring Software Engineers During a Bubble – Part 3

For nearly two decades Christopher Haag has had roles in software engineering, product management, operations,…

March 23, 2016 Chris Haag

Lessons Learned Hiring Software Engineers During a Bubble - Part 2

For nearly two decades Christopher Haag has had roles in software engineering, product management, operations,…

March 11, 2016 Chris Haag

Lessons learned hiring software engineers during a bubble

For nearly two decades Christopher Haag has had roles in software engineering, product management, operations,…

November 30, 2015 Gabriel Ortiz

Ansible and Terraform at Agari: An Automation Journey

For nearly two decades Christopher Haag has had roles in software engineering, product management, operations,…

mobile image