DEV Community

Cover image for Monitoring in AWS — Let’s cloud!

Posted on

Monitoring in AWS — Let’s cloud!

Recently while debugging some performance related issues, I had to monitor the AWS resources that my application was using & a part of it involved checking out the cloudwatch alarms & metrics. While doing so I went deep into all the clouds — there’s cloudwatch, there’s cloudtrail, there’s config. What’s the purpose of these different clouds for monitoring ?
Whatever you build on AWS, you will have to monitor it and also do some sort of logging & auditing so that you can get an idea of how your systems are performing.

AWS CloudWatch:

It’s a monitoring service for AWS resources and applications. Its main job is to monitor the performance & resources. How is the performance affected based on certain actions of the user ? — Cloudwatch can tell you that. There are a bunch of things in cloudwatch:

1. Cloudwatch Metrics:

It provides metrics for every service in AWS. For example CPUUtilization, network etc. There are up to 10 dimensions per metric. Dimensions is basically an attribute of a metric (eg — environment, instanceId etc). Metrics also have timestamps. We can create cloudwatch dashboards of these metrics. You can also define & send your own Custom Metrics to cloudwatch using the putMetricData api call.

2. CloudWatch Dashboards:

It consists of a bunch of graphs from same or different regions. It gives you a good visual representation. You can also set automatic refresh of the dashboard. You can choose any timeframe you want eg — last 6hrs , last 30 mins etc.

3. CloudWatch Logs:

Cloudwatch can get logs from your application or various AWS resources eg: API Gateway, Route53, AWS lambda etc. Cloudwatch logs can also be sent to S3 or elastic search etc for further analytics.

4. CloudWatch Alarms:

They are used to trigger notifications for any metric. eg messages on your SQS queue exceeded a certain limit etc. These alarms have 3 states OK, INSUFFICIENT_DATA, ALARM.

5. CloudWatch Events:

It is a stream of system events describing changes in your AWS resources.

AWS CloudTrail:

It deals with API level monitoring. When user logs into AWS and performs any actions — all that can be monitored using cloudtrail. So it has all the info of who made what changes eg — I created new ec2 instance or I created a new queue etc all that info is monitored using cloudtrail. If you see that a resource is deleted in AWS — check your cloudtrail first. Cloudtrail is enabled by default.

AWS Config:

It records config level changes of your AWS resources. It also notifies if any changes are made to your account.

Ummm…there are actually two more clouds left — Cloudformation & Cloudfront !! But they have nothing to do with monitoring.


It is just a template that will spin up all the AWS resources you need effortlessly. You just define whatever you want in that template & AWS magically creates it for you!


It’s just a content delivery network for low latency distribution of contents with high data transfer speeds.

Have fun clouding ;)!

Also in medium on our blog:

Top comments (0)