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.
चला मित्रांनो! AWS शिकायला सुरू केलं की पहिली भीती हीच असते – "सर, बिल तर नाही येणार ना?" सर्व्हर बंद करायला विसरलो, Elastic IP तसाच राहिला, आणि महिन्याच्या शेवटी ईमेल येतो. घाबरू नका. आज आपण अकाउंटला एक अलार्म लावूया – घरात स्मोक अलार्म असतो तसा. तो सबसे पहला काम है बजेट बनवणं, मग CloudWatch अलार्म. दहा मिनिटांचं काम आहे.
चलो दोस्तों! AWS सीखना शुरू किया तो पहला डर यही होता है – "सर, बिल तो नहीं आएगा ना?" सर्वर बंद करना भूल गए, Elastic IP वैसा ही रह गया, और महीने के आख़िर में ईमेल आता है. घबराओ मत. आज हम अकाउंट पर एक अलार्म लगाएँगे – घर में स्मोक अलार्म होता है वैसा. तो सबसे पहला काम है बजट बनाना, फिर CloudWatch अलार्म. दस मिनट का काम है.
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?
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.
महिन्याभरात तुमचे estimated charges वाढत जातात. तुम्ही ठेवलेला threshold ओलांडला की CloudWatch अलार्म ALARM स्टेट मध्ये जातो आणि Amazon SNS तुम्हाला ईमेल पाठवतो. अलार्म फक्त सावध करतो; तो कोणताही रिसोर्स बंद करत नाही.
महीने भर में आपके estimated charges बढ़ते जाते हैं. आपका रखा हुआ threshold पार होते ही CloudWatch अलार्म ALARM स्टेट में जाता है और Amazon SNS आपको ईमेल भेजता है. अलार्म सिर्फ़ सावधान करता है; वह कोई भी रिसोर्स बंद नहीं करता.
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!
Ravindra Bagale's Tip – मराठी
खूप स्टुडंट्स बजेट बनवतात आणि समजतात की AWS आता आपोआप सर्व्हर्स बंद करेल. नाही! बजेट आणि अलार्म फक्त ईमेल पाठवतात – स्मोक अलार्म आग विझवत नाही, फक्त ओरडतो. ईमेल आला की लगेच Billing मध्ये Bills आणि Cost Explorer उघडा, कोणती सर्व्हिस खर्च करते ते बघा, आणि ती स्टॉप किंवा डिलीट करा. ध्यान रखो!
Ravindra Bagale's Tip – हिंदी
बहुत स्टूडेंट्स बजट बनाते हैं और समझते हैं कि AWS अब अपने आप सर्वर्स बंद कर देगा. नहीं! बजट और अलार्म सिर्फ़ ईमेल भेजते हैं – स्मोक अलार्म आग नहीं बुझाता, सिर्फ़ चिल्लाता है. ईमेल आते ही Billing में Bills और Cost Explorer खोलो, कौन सी सर्विस ख़र्च कर रही है देखो, और उसे स्टॉप या डिलीट करो. ध्यान रखो!
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.
Ravindra Bagale's Tip – मराठी
अलार्म बनवला पण ईमेल आलाच नाही – कारण SNS ची कन्फर्मेशन लिंक क्लिक केलीच नाही. लक्ष द्या: subscription Pending confirmation असेल तर AWS तुम्हाला एक पण ईमेल पाठवणार नाही. आणि billing मेट्रिक फक्त N. Virginia रिजन मध्ये दिसतो – Mumbai मध्ये शोधत बसू नका.
Ravindra Bagale's Tip – हिंदी
अलार्म बनाया पर ईमेल आया ही नहीं – क्योंकि SNS की कन्फ़र्मेशन लिंक क्लिक ही नहीं की. ध्यान दो: subscription Pending confirmation हो तो AWS आपको एक भी ईमेल नहीं भेजेगा. और billing मेट्रिक सिर्फ़ N. Virginia रीजन में दिखता है – 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.
समजलं का? Zero spend बजेट, monthly बजेट, N. Virginia मध्ये CloudWatch अलार्म, आणि SNS ईमेल कन्फर्म – हा तुमचा स्मोक अलार्म. पण अलार्म फक्त सांगतो; लॅब झाली की रिसोर्सेस डिलीट करणं हे तुमचं काम. आता बिनधास्त प्रॅक्टिस करा.
समझ आया? Zero spend बजट, monthly बजट, N. Virginia में CloudWatch अलार्म, और SNS ईमेल कन्फ़र्म – यह आपका स्मोक अलार्म है. पर अलार्म सिर्फ़ बताता है; लैब के बाद रिसोर्सेस डिलीट करना आपका काम है. अब बेफ़िक्र होकर प्रैक्टिस करो.
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.