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.
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:
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.
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.
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.
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.
It is a stream of system events describing changes in your AWS resources.
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.
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! https://aws.amazon.com/cloudformation/
It’s just a content delivery network for low latency distribution of contents with high data transfer speeds. https://aws.amazon.com/cloudfront/
Also in medium on our blog: https://medium.com/just2girlsintech/monitoring-in-aws-lets-cloud-2c122979cf2d