A couple of years ago I was developing a new high availability (HA) system for a past employer. The project used a Mongo database to capture a gargantuan amount of financial data from live streams. By luck, Amazon had just released DocumentDB, which is essentially a clone of the Mongo 3.x API—a perfect fit for our needs.
As a developer, working on the app was a breeze; none of the tools were foreign aside from this new Amazon service. However, the need for development, testing and production instances went from “soon” to “months overdue” as the project’s DevOps team spent each week digging out of problems. Working on the highest priority project did little to change the traffic jam – now more than a year old – for the team handling the Amazon provisioning.
I took matters into my own hands, building and testing my application on my personal AWS instance of DocumentDB. I created a virtual private cloud (VPC) and provisioned necessary Elastic Compute resources.
What happened next taught me a lesson I believe everyone should avoid.
An $1,800 mistake
Because I was so laser-focused on making the project a success, I hadn’t done any cost estimates. I got busy with other projects and forgot about the service, but my DocumentDB and associated resources remained active, racking up hundreds of dollars in fees.
Imagine my surprise when my AWS bill for more than $1,100 arrived a few weeks later – a bill that was typically no more than $20 each month. To add insult to injury, by the time I figured out what had happened, I’d already accrued an additional $700 in charges for the current month. Ouch.
Amazon Billing Alerts
It’s not hard to protect your bottom line when it comes to AWS charges. To save you from making the same costly mistake I did, here are five simple steps to set up Amazon’s Billing Alerts.
Step 1: Log into your AWS account. Search for “Billing” and navigate to that area of service.
Step 2: Choose “Create budget.”
Step 3: Complete the “Set Your Budget” page.
- Name: Use something logical, like “5_dollar_alert” or “max_spend_alert.” This will be passed into the messaging and will help you find and adjust alerts.
- Period: Monthly, unless there is a reason to deviate
- Effective Dates: Recurring Budget
- Start Month: Current month
- Budget Amount: Fixed
- Budgeted Amount: Enter how much money this alert represents (spend limit)
- Advanced Options:
- Aggregate costs by: Unblended costs
- Include costs related to: All but refunds and credits (recommended)
Step 4: Complete the “Configure Alerts” page.
- Send Alert Based On: Generally “actual costs” is a good start. For more complex infrastructures, I suggest using Forecasts Costs with the right Alert Threshold.
- Alert Threshold: Start with “100% of budgeted amount.” As your expected expenses increase ($1,000 or more), consider adding alerts for 25%, 50% and 75% to understand your cost relative to what the billing cycle currently represents.
- Email Contacts: Target email(s)
Step 5: On the “Confirm Budget” page, click “Review,” then “Create,” and you’re done!
Anyone can make mistakes like I described above, especially if your company is moving to the cloud or replatforming. Check back next month for more tips and recommendations from 27Global for effectively managing your AWS billing alerts.
Marc Weinberg is a Consultant in 27Global’s Denver office. Founded in 2008, 27Global is an AWS certified partner that designs, builds and operates custom software solutions for businesses of all sizes. The perfect pairing of a local leadership with offshore pricing, 27Global has the business acumen to understand your vision and the expertise to build your software solution. To learn more, visit 27Global.com or connect with us on LinkedIn and Twitter.