Sitemap

The Budgets Setup That Puts Your AWS Bill Under Control

7 min readAug 2, 2026

--

Press enter or click to view image in full size

Introduction

In the cloud, the most expensive lesson is the one you learn from the invoice that arrives at the end of the month. I learned it that way. A single service I forgot to shut down quietly ran up a $60 bill without me noticing. I’m writing this so it doesn’t happen to you.

The “pay as you go” logic of the cloud is genuinely fair. But the model has an invisible side: when you forget to shut a resource down, the meter keeps running. For hours, sometimes for days. And the bill grows silently.

This is more or less everyone’s story when they first step into the cloud. You spin up a resource, lulled into confidence by the Free Tier, forget to turn it off, and meet an unexpected number at the end of the month.

The problem isn’t that AWS is expensive. The problem is the lack of visibility. If you can’t see what a resource is costing you right now, you can’t manage what you spend.

The good news: AWS doesn’t ask you to buy an extra tool for this. With the Budgets service inside the Billing Dashboard, you can set up a system in a few minutes that automatically emails you when you approach the limit you defined.

In this post we’ll walk through the setup that makes AWS billing easy to track and manage, step by step:

  • What’s in the Billing Dashboard and what it’s good for
  • Budget types and ready-made templates
  • Setting up a Zero Spend Budget and a monthly Cost Budget
  • Threshold logic: the difference between actual and forecasted
Press enter or click to view image in full size

Why Budgets Instead of a CloudWatch Alarm?

You can set an alarm on the EstimatedCharges metric in CloudWatch. That approach still works, but it's limited:

  • It only works in the us-east-1 region, because that's where the billing metric lives
  • It only looks at the total amount; flexibility per service or per tag is weak
  • It triggers on what has actually been spent, not on a forecast

AWS Budgets covers all three gaps:

  • You can build budgets around cost, usage, Savings Plans, and Reservations
  • It produces alerts on both actual and forecasted spend
  • A single budget can carry 5 different notifications, each with up to 10 email addresses
  • It doesn’t just warn you — it can take action on your behalf

💡 Cost note: The first 2 budgets are free. After that, each budget is charged roughly $0.02 per day. So the setup in this post is completely free for most people.

An Overview of the Billing Dashboard

From the account menu in the top right of the AWS Console, we open the Billing and Cost Management screen. This page is where all of your account’s spending comes together. Last month’s cost, this month’s forecast, and the per-service breakdown all show up here.

Press enter or click to view image in full size
Billing and Cost Management overvie

In the left-hand menu of the Billing and Cost Management page, we need to create a new budget from the Budgets section under the Budgets and Planning heading.

Creating a Budget

On the Billing screen, follow Budgets and Planning → Budgets and click Create a budget in the top right. The budget creation screen appears.

Press enter or click to view image in full size
The budget creation page

We’ll set up two budgets in this post: a monthly cost budget, and a zero spend budget that aims to keep spending at zero.

Step 1: Choose the setup method

Two options greet you:

Use a template (simplified) — Uses a ready-made template. Thresholds and notification rules come pre-configured. More than enough for personal accounts and simple cost tracking.

Customize (advanced) — Period, start month, account and service filters are defined manually. Suitable for enterprise and multi-account scenarios.

To get started, we’ll take the template route.

Step 2: Pick the template

Four ready-made templates are offered:

Get Özcan Kara’s stories in your inbox

Join Medium for free to get updates from this writer.

Zero spend budget — Sends a notification the moment your spend exceeds $0.01. The most useful option for anyone trying to stay inside Free Tier limits. You hear about a forgotten resource before it reaches your bill.

Monthly cost budget — You set a monthly amount. You get a warning when your spend exceeds it, or when it’s forecast to exceed it by month’s end. This is the most commonly used template for real projects.

Daily Savings Plans coverage budget — Tracks the utilization of the Savings Plans you’ve purchased. Alerts you when the coverage rate drops below the target you set.

Daily reservation utilization budget — Monitors the utilization rate of your Reserved Instance reservations. Sends a notification when the rate falls below target.

Press enter or click to view image in full size
The four budget templates — we’ll create two, starting with the monthly one

Step 3: The monthly cost budget form

Budget name — Give the budget a descriptive name. A pattern like platform-prod-total-monthly — environment plus scope plus period — lets you tell from the name alone what each budget is watching once you have several. The name must be between 1 and 100 characters.

Enter your budgeted amount ($) — Your monthly spending limit. Right above it, AWS shows last month’s cost, so you can set a realistic figure. In our example we set it so a notification goes out when $10 is exceeded.

Email recipients — The addresses the notifications go to. You can define up to 10. For team accounts, a distribution list is healthier than a personal address, because the alert isn’t orphaned when someone leaves.

Scope — In template mode the scope is fixed: all AWS services are included in the budget. If you want to watch a specific service or tag, you need to switch to the Customize (advanced) path.

Notification rules — The template sets up three alerts for you automatically:

  • When actual spend reaches 85% of the budget
  • When actual spend reaches 100%
  • When spend is forecast to reach 100%

The third one is the most valuable. AWS looks at the rate you’re spending and projects forward — so you’re warned before you hit the limit, not after.

Press enter or click to view image in full size
The completed monthly cost budget form

Template settings — This tells you the settings are defaults and can be changed later. The Custom link switches you to advanced mode, and the JSON link lets you download the template and reuse it on the Terraform or CloudFormation side.

Press enter or click to view image in full size
Monthly cost budget created successfully

Creating the Zero Spend Budget

From the platform-prod-total-monthly budget we just created, we can move on to the Budgets page. The Create budget button at the top lets us create another budget.

Press enter or click to view image in full size
Budgets list with the create button
Press enter or click to view image in full size
Selecting the zero spend template
Press enter or click to view image in full size
Zero spend budget form

The budgets list

Both budgets were created successfully and appear in the list.

Budget Amount platform-prod-total-monthly $10.00 My Zero-Spend Budget $1.00

Press enter or click to view image in full size
Zero spend budget created successfully

Threshold Logic: Actual vs. Forecasted

Two different alert types work side by side in the budget you’ve set up. Knowing the difference tells you when each alert will actually be useful.

Actual: spend that has already happened

This is the cost that has genuinely been incurred so far. On a $5 budget, the 85% threshold fires when your spend reaches $4.25. It’s precise and unambiguous — but it’s late news. The money is already gone.

Forecasted: projected spend

AWS looks at your current usage rate and estimates where you’ll land at the end of the month. You might have spent $1 by the 5th, but if that pace puts you at $6 by month’s end, you get the warning while you’re still at $1.

Your real shield is the forecasted alert. What prevents bill shock isn’t watching what has happened — it’s watching the trajectory.

⏱️ Latency warning: AWS billing data is not real time. It refreshes a few times a day, and an 8 to 12 hour delay is normal. So Budgets is an early warning system, not an emergency circuit breaker. For critical workloads you’ll want to back it up with Budget Actions

Summary

With this setup you can bring your AWS billing under control and track your spending without waiting for the end of the month. Two budgets, a few minutes of setup, and a single email address are more than enough to head off unexpected invoices.

Do it today — because the gap between the moment you notice a forgotten resource and the moment the bill is issued is usually just one alert wide.

--

--

Software Development Engineer

See more from me