Skip to content

Amazon CloudWatch: monitor your AWS infrastructure effectively

Practical guide to configuring Amazon CloudWatch: metrics, alarms, dashboards and logs to keep control of your cloud infrastructure.

Updated on 14 May 2025

Keep control of your cloud infrastructure

Amazon CloudWatch is the native monitoring service of AWS. It collects the metrics, logs and traces of all your AWS services and applications. Alarms alert you when something goes wrong. Dashboards visualize the state of your infrastructure in real time. For SMBs on AWS, CloudWatch is the first tool to configure after deployment.

Essential metrics to monitor

EC2

Monitor CPU usage, network traffic and instance status. CPU usage constantly above 80% indicates under-provisioning. Usage constantly below 20% indicates over-provisioning and wasted budget.

RDS

Monitor CPU usage, available memory, active connections and disk space. A database that runs out of memory or connections degrades your application’s performance.

Lambda

Monitor invocations, errors, execution duration and throttles. A rising error rate signals a problem in your code or in a dependent service. Throttles indicate that you are hitting concurrency limits.

S3

Monitor the number of requests, 4xx/5xx errors and bucket size. A spike in 4xx requests can indicate broken links or unauthorized access attempts.

Configure alarms

CloudWatch alarms monitor a metric and trigger an action when a threshold is crossed. Configure at least the following alarms for each production environment:

CPU usage on EC2 instances above 80% for 5 minutes triggers a warning. Above 95% for 5 minutes, it is a critical alert. RDS disk space below 20% triggers a warning. A Lambda error rate above 5% triggers an alert.

Notifications are sent through Amazon SNS. Configure an SNS topic with your team’s email addresses. For critical alerts, add SMS notifications or a Slack integration.

Create dashboards

CloudWatch dashboards group key metrics on a single screen. Create one dashboard per environment (production, staging) with the essential metrics: instance health, database performance, application error rate and costs in real time.

CloudWatch’s automatic dashboards generate an overview of your AWS services without configuration. This is a good starting point that you then customize to fit your needs.

Centralize logs

CloudWatch Logs centralizes the logs of your applications and AWS services. Lambda logs are sent automatically. EC2 logs require installing the CloudWatch agent. Application logs are sent through the AWS SDK.

CloudWatch Logs Insights lets you query your logs with a dedicated query language. You search for errors, filter by period and aggregate the results. This search capability is essential for diagnosing incidents.

LCMH configures CloudWatch monitoring for the AWS infrastructures of Alsatian SMBs.

For cost optimization, read our article on the 7 AWS cost optimization levers.


Sources

  1. AWS, Amazon CloudWatch. aws.amazon.com/cloudwatch
  2. AWS, CloudWatch Pricing. aws.amazon.com/cloudwatch/pricing
  3. AWS, CloudWatch Logs Insights. docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html

Frequently asked questions

Is CloudWatch free?
CloudWatch includes a generous free tier: 10 custom metrics, 10 alarms, 1 million API requests, 5 GB of ingested logs and 5 GB of archived logs per month. For most SMBs, the free tier covers basic needs.
What is the difference between CloudWatch and tools like Datadog?
CloudWatch is native to AWS, free for basic metrics and integrated with every AWS service. Datadog offers a richer interface, multi-cloud support and more third-party integrations, but costs from $15/host/month. For a 100% AWS infrastructure, CloudWatch is often enough.
How do I get alerted when there is a problem?
Create CloudWatch alarms on critical metrics (CPU, memory, errors, latency). Alarms send notifications through SNS (email, SMS, Slack). Configure warning (80%) and critical (95%) thresholds to anticipate problems.

Related Articles