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.
CloudFormation:
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/
CloudFront:
It’s just a content delivery network for low latency distribution of contents with high data transfer speeds. https://aws.amazon.com/cloudfront/
Have fun clouding ;)!
Also in medium on our blog: https://medium.com/just2girlsintech/monitoring-in-aws-lets-cloud-2c122979cf2d
Top comments (0)