Introduction
In this project I configured multiple billing alarms in AWS using CloudWatch and SNS notifications.
The objective was to create a simple cost-monitoring mechanism capable of sending alerts whenever estimated AWS charges exceeded a predefined threshold.
This type of monitoring is especially useful in:
- personal AWS accounts
- sandbox environments
- learning projects
- small production workloads
Services Used
The project uses the following AWS services:
- Amazon CloudWatch
- Amazon SNS
- AWS Billing Dashboard
Architecture
The billing metrics are generated automatically by AWS and stored in:
US East (N. Virginia)
CloudWatch monitors the estimated charges and triggers an SNS notification whenever the configured threshold is exceeded.
Alarm Configuration
Three different billing alarms were created with different thresholds.
Each alarm included:
- billing metric monitoring
- threshold configuration
- evaluation period
- SNS notification trigger
SNS Notifications
The alarms were connected to an SNS topic in order to send email notifications automatically.
The workflow was:
CloudWatch Alarm
↓
SNS Topic
↓
Email Notification
After creating the SNS topic, the email subscription had to be confirmed manually.
Important Considerations
One important aspect of AWS billing alarms is that billing metrics are only available in:
us-east-1
Even if the rest of the infrastructure is deployed in another region.
Lessons Learned
This project helped reinforce several AWS fundamentals:
- CloudWatch metric monitoring
- SNS integrations
- cost monitoring best practices
- AWS billing metrics behavior
- alerting workflows
References
Final Result
Below is the final alarm configuration inside CloudWatch.
Project Code
You can find the Terraform code used in this project in the following GitHub directory.

Comments