Ravindra BagaleCourses & study guides Track your progress

Guides

How to Set Up an AWS Billing Alarm and Budget (Free Tier Safety)

To protect a free tier AWS account from surprise bills, open Billing and Cost Management → Budgets and create a Zero spend budget and a Monthly cost budget with your email, then turn on CloudWatch billing alerts in Billing preferences and create a CloudWatch alarm on EstimatedCharges in the US East (N. Virginia) region with an SNS email. Confirm the SNS email, or no alert arrives. Alerts only warn you; you must still stop or delete unused resources yourself.

Come on, friends! When you start learning AWS, the first fear is always: "Sir, I won't get a bill, right?" You forget to stop a server, an Elastic IP stays behind, and at the end of the month an email arrives. Don't worry. Today we put an alarm on the account – like the smoke alarm in a house. So the very first job is to create a budget, then the CloudWatch alarm. It is ten minutes of work.

Quick answer

Do these once, as the root user or an IAM user with billing access:

1. Billing and Cost Management → Billing preferences → Alert preferences → Edit
   ✔ Receive AWS Free Tier alerts   ✔ Receive CloudWatch billing alerts → Update (Save preferences)
2. Budgets → Create budget → Use a template → Zero spend budget → your email → Create budget
3. Budgets → Create budget → Use a template → Monthly cost budget → 5 (USD) → your email → Create budget
4. Region: US East (N. Virginia) → CloudWatch → Alarms → Billing → Create alarm
   → EstimatedCharges (USD) → Greater than 5 → new SNS topic + your email → Create alarm
5. Open the "AWS Notification - Subscription Confirmation" email → Confirm subscription

What do I need before setting up billing alerts?

  • Access to the root user, or an IAM user after root has activated IAM user and role access to Billing information (Account page). See How to Create an IAM User with MFA.
  • An email address you really read.
  • About 10 minutes. Nothing here costs money for a beginner account; check the AWS Budgets and CloudWatch pricing pages for current details.

How does an AWS billing alarm warn me?

A CloudWatch billing alarm sending an email The estimated charges bar grows during the month. When it crosses the 5 USD threshold, the CloudWatch alarm changes from OK to ALARM, the bell of Amazon SNS rings, and an email alert arrives in your inbox. The alarm does not stop any resource. Estimated charges this month (USD) threshold 5 USD CloudWatch alarm EstimatedCharges > 5 OK ALARM Amazon SNS Inbox you@example.com email alert

Your estimated charges grow during the month. When they cross the threshold you set, the CloudWatch alarm goes to ALARM and Amazon SNS sends you an email. The alarm only warns you; it does not stop any resource.

How do I set up an AWS budget and billing alarm?

Step 1 — Turn on billing alerts

Search Billing and Cost Management in the console → Billing preferences → Alert preferences → Edit. Tick Receive AWS Free Tier alerts (add your email) and Receive CloudWatch billing alerts, then Update (some consoles say Save preferences). The second option lets CloudWatch see the billing metric; it cannot be turned off again later, which is fine.

Step 2 — Create a zero spend budget

Billing and Cost Management → Budgets → Create budget → Use a template (simplified) → Zero spend budget. Give it a name such as zero-spend, enter your email and click Create budget. You get an email as soon as your spending goes above 0.01 USD — perfect while you only use free tier services.

Step 3 — Create a monthly cost budget

Create budget → Use a template → Monthly cost budget. Enter a small amount you are comfortable with, for example 5 USD, add your email and create it. The template alerts you when actual spend reaches 85 % and 100 % and when the forecast says you will cross 100 %, so you get a warning before the month ends.

Ravindra Bagale's Tip

Many students create a budget and think AWS will now stop the servers by itself. No! Budgets and alarms only send emails – a smoke alarm does not put out the fire, it only shouts. As soon as the email arrives, open Bills and Cost Explorer in Billing, see which service is spending, and stop or delete it. Keep this in mind!

Step 4 — Switch to US East (N. Virginia)

Billing metrics are published only in US East (N. Virginia) us-east-1, whatever region your servers are in. Choose it in the region menu (top right) before opening CloudWatch. After Step 1 it takes about 15 minutes (sometimes longer) before the billing metric appears.

Step 5 — Create the CloudWatch billing alarm

CloudWatch → Alarms → Billing (or All alarms) → Create alarm → Select metric → Billing → Total Estimated Charge → tick EstimatedCharges (USD) → Select metric. Then:

Setting Value
Statistic / period Maximum, 6 hours (the default)
Threshold type Static
Condition Greater than 5 (USD)
Notification In alarm → Create new topic, name billing-alerts, your email → Create topic
Name billing-​over-​5-​usd

Click Create alarm. The same with the AWS CLI (after installing and configuring it):

aws sns create-topic --name billing-alerts --region us-east-1
aws sns subscribe --topic-arn arn:aws:sns:us-east-1:<ACCOUNT_ID>:billing-alerts \
  --protocol email --notification-endpoint you@example.com --region us-east-1
aws cloudwatch put-metric-alarm --alarm-name billing-over-5-usd --region us-east-1 \
  --namespace AWS/Billing --metric-name EstimatedCharges --dimensions Name=Currency,Value=USD \
  --statistic Maximum --period 21600 --evaluation-periods 1 \
  --threshold 5 --comparison-operator GreaterThanThreshold \
  --alarm-actions arn:aws:sns:us-east-1:<ACCOUNT_ID>:billing-alerts

Step 6 — Confirm the email subscription

Open the email AWS Notification - Subscription Confirmation and click Confirm subscription. In SNS → Subscriptions the status must change from Pending confirmation to Confirmed. Check the spam folder if it does not come. Your account now has a safety net. 🔔

Ravindra Bagale's Tip

The alarm was created but no email came – because the SNS confirmation link was never clicked. Pay attention: while the subscription is Pending confirmation, AWS will not send you a single email. And the billing metric appears only in the N. Virginia region – don't sit searching for it in Mumbai.

Step 7 — Clean up after every lab

Alerts are only half of the safety. After every practice session, check these in the console and delete what you do not need:

  • EC2 instances that are still running (a stopped instance still pays for its EBS volume).
  • Elastic IPs and other public IPv4 addresses, including idle ones.
  • EBS volumes and snapshots left behind by terminated instances.
  • Load balancers, NAT gateways and RDS databases — these cost money every hour.

Newer AWS accounts may be on a free plan with credits; the Billing console shows your remaining credits and free tier usage. Offers change, so always check the official AWS Free Tier page.

How do I fix common billing alert problems?

Ghabru naka 😅 — these are the usual ones:

Symptom Likely cause Fix
No Billing metrics in CloudWatch Wrong region, or billing alerts not turned on Switch to US East (N. Virginia); Step 1; wait at least 15 minutes
Alarm is ALARM but no email SNS subscription not confirmed Confirm the email; check SNS → Subscriptions and spam
Alarm stays Insufficient data No billing data yet (new account or just enabled) Wait; it updates a few times a day
IAM user sees Access denied in Billing Billing access not activated for IAM As root: Account → IAM user and role access to Billing information → Activate
Bill keeps growing after the alert Alerts do not stop resources Find the service in Bills / Cost Explorer and stop or delete it
Charge for an IP with no instance running Idle Elastic IP or public IPv4 Release it: Elastic IP guide

Learn it properly

This guide is the short path. These free lessons help you avoid the costs in the first place:

Samajla ka? Got it? A zero spend budget, a monthly budget, a CloudWatch alarm in N. Virginia, and the SNS email confirmed – that is your smoke alarm. But the alarm only tells you; deleting resources after the lab is your job. Now practise without fear.

Frequently asked questions

How do I get an alert before AWS charges me?

Create a zero spend budget (it emails you as soon as spending goes above 0.01 USD) and a monthly cost budget in AWS Budgets, and add a CloudWatch billing alarm on EstimatedCharges with an email notification.

Why can I not find billing metrics in CloudWatch?

Billing metrics exist only in the US East (N. Virginia) region, and only after you turn on CloudWatch billing alerts in Billing preferences. The first data can take some hours to appear.

Does a billing alarm or budget stop my resources?

No. Alarms and budgets only send alerts. You must stop or terminate the resources yourself. (Budget actions can apply policies, but a beginner should simply clean up.)

What is the difference between AWS Budgets and a CloudWatch billing alarm?

Budgets compare actual and forecasted cost with an amount you set and can alert on the forecast. A CloudWatch billing alarm watches the total estimated charges metric and alarms when it crosses a threshold. Using both is a good safety net.

Why did I not get the alarm email?

The SNS subscription is still Pending confirmation. Open the email from AWS Notifications and click Confirm subscription, and check the spam folder.

Which resources cause surprise bills most often?

Instances left running, EBS volumes and snapshots of terminated instances, public IPv4 addresses including idle Elastic IPs, NAT gateways, load balancers and RDS databases. Delete what you do not use after every lab.