Amazon CloudWatch provides monitoring for AWS cloud resources and the applications customers run on AWS. Developers and system administrators can use it to collect and track metrics, gain insight, and react immediately to keep their applications and businesses running smoothly. Amazon CloudWatch monitors AWS resources such as Amazon EC2 and Amazon RDS DB instances, and can also monitor custom metrics generated by a customer’s applications and services. With Amazon CloudWatch, you gain system-wide visibility into resource utilization, application performance, and operational health.
Amazon CloudWatch provides a reliable, scalable, and flexible monitoring solution that you can start using within minutes. You no longer need to set up, manage, or scale your own monitoring systems and infrastructure. Using Amazon CloudWatch, you can easily monitor as much or as little metric data as you need. Amazon CloudWatch lets you programmatically retrieve your monitoring data, view graphs, and set alarms to help you troubleshoot, spot trends, and take automated action based on the state of your cloud environment.
Amazon CloudWatch enables you to monitor your AWS resources in real-time, including Amazon EC2 instances, Amazon EBS volumes, Elastic Load Balancers, and Amazon RDS DB instances. Metrics such as CPU utilization, latency, and request counts are provided automatically for these AWS resources. You can also supply your own custom application and system metrics, such as memory usage, transaction volumes, or error rates, and Amazon CloudWatch will monitor these too. With Amazon CloudWatch, you can access up-to-the-minute statistics, view graphs, and set alarms for your metric data. Amazon CloudWatch functionality is accessible via API, command-line tools, the AWS SDK, and the AWS Management Console.
Monitor AWS resources automatically, without installing additional software:
Basic Monitoring for Amazon EC2 instances: ten pre-selected metrics at five-minute frequency, free of charge.
Detailed Monitoring for Amazon EC2 instances: seven pre-selected metrics at one-minute frequency, for an additional charge.
Amazon EBS volumes: eight pre-selected metrics at five-minute frequency, free of charge.
Elastic Load Balancers: thirteen pre-selected metrics at one-minute frequency, free of charge.
Amazon RDS DB instances: thirteen pre-selected metrics at one-minute frequency, free of charge.
Amazon SQS queues: eight pre-selected metrics at five-minute frequency, free of charge.
Amazon SNS topics: four pre-selected metrics at five-minute frequency, free of charge.
Amazon ElastiCache nodes: twenty-nine pre-selected metrics at one-minute frequency, free of charge.
Amazon DynamoDB tables: seven pre-selected metrics at five-minute frequency, free of charge.
AWS Storage Gateways: eleven pre-selected gateway metrics and five pre-selected storage volume metrics at five-minute frequency, free of charge.
Amazon Elastic MapReduce job flows: twenty-three pre-selected metrics at five-minute frequency, free of charge.
Auto Scaling groups: seven pre-selected metrics at one-minute frequency, optional and charged at standard pricing.
Estimated charges on your AWS bill: you can also choose to enable metrics to monitor your AWS charges. The number of metrics depends on the AWS products and services that you use, and these metrics are free of charge. Learn more about this option.
Submit Custom Metrics generated by your own applications (or by AWS resources not mentioned above) and have them monitored by Amazon CloudWatch. You can submit these metrics to Amazon CloudWatch via a simple Put API request.
Set alarms on any of your metrics to receive notifications or take other automated actions when your metric crosses your specified threshold. You can also use alarms to detect and shut down Amazon EC2 instances that are unused or underutilized.
View graphs and statistics for any of your metrics, and get a quick overview of all your alarms and monitored AWS resources in one location on the Amazon CloudWatch dashboard.
Use Auto Scaling to add or remove Amazon EC2 instances dynamically based on your Amazon CloudWatch metrics.
Getting started with Amazon CloudWatch is easy. If you are signed up for Amazon EC2, you are automatically registered for Amazon CloudWatch. All Amazon EC2 instances are automatically enabled for Basic Monitoring (at no charge). Amazon CloudWatch also automatically collects metrics for Amazon EBS volumes, Elastic Load Balancers, and RDS DB instances at no charge.
Using Amazon CloudWatch to Monitor Amazon EC2 Instances
For Amazon EC2 instances, Amazon CloudWatch Basic Monitoring collects and reports metrics for CPU utilization, data transfer, and disk usage activity from each Amazon EC2 instance at a five-minute frequency. Amazon CloudWatch Detailed Monitoring provides these same metrics at one-minute intervals, and also enables data aggregation by Amazon EC2 AMI ID and instance type. If you use Auto Scaling or Elastic Load Balancing, Amazon CloudWatch will also provide Amazon EC2 instance metrics aggregated by Auto Scaling group and by Elastic Load Balancer, regardless of whether you have chosen Basic or Detailed Monitoring. Monitoring data is retained for two weeks, even if your AWS resources have been terminated. This enables you to quickly look back at the metrics preceding an event of interest to you. Basic Monitoring is already enabled automatically for all Amazon EC2 instances, and you can access these metrics immediately in either the Amazon EC2 tab or the Amazon CloudWatch tab of the AWS Management Console.
On the Amazon EC2 tab, click the Launch Instances button.
Select an AMI to launch an instance, select the key pair and configure the firewall.
On the last step, click the “Enable CloudWatch Detailed Monitoring for this instance” checkbox.
Click the Launch button.
Within minutes, the instance you just launched will show as running.
You can also enable Detailed Monitoring for an existing running instance by right-clicking the instance in the Amazon EC2 tab and selecting “Enable Detailed Monitoring.”
Using Amazon CloudWatch to Monitor other AWS Resources
Amazon CloudWatch automatically monitors Elastic Load Balancers for metrics such as request count and latency; Amazon EBS volumes for metrics such as read/write latency; Amazon RDS DB instances for metrics such as freeable memory and available storage space; Amazon SQS queues for metrics such as number of messages sent and received; and Amazon SNS topics for metrics such as number of messages published and delivered. For more details about AWS resource metrics, please see the Amazon CloudWatch Developer Guide.
Using Amazon CloudWatch to Monitor Your Own Custom Metrics
Amazon CloudWatch can also monitor metrics that are generated by the applications you run on AWS resources. Using a simple Put API call, you can immediately send and store any metrics that are important to your business performance or your application’s operational performance. You can submit as much or as little custom metric data as you need. All the same Amazon CloudWatch functionality will be available at up to one-minute frequency for your own custom metric data, including statistics, graphs, and alarms. For more details about supplying your own custom metrics, please see the Amazon CloudWatch Developer Guide.
Accessing your Amazon CloudWatch metrics
You are now ready to access your metrics in Amazon CloudWatch:
On the Amazon CloudWatch tab of the AWS Management Console, click the Metrics link. All your AWS resource metrics and your own custom metrics will be listed. Find and select a metric of interest.
An interactive graph for that metric will be displayed. Select a time range and choose to display values for Average, Minimum, Maximum, Sum, or number of Samples.
Select additional metrics to add them to the graph in order to correlate behavior or discover patterns.
Click the Create Alarm button to initiate automatic notifications or Auto Scaling actions when the metric reaches a level you set.
Click the Dashboard link to view status overviews for all your alarms and AWS resource metrics.
Amazon CloudWatch charges apply; see pricing information below.
You can get started with Amazon CloudWatch for free. Many applications should be able to operate within these free tier limits.
Basic Monitoring metrics (at five-minute frequency) for Amazon EC2 instances are free of charge, as are all metrics for Amazon EBS volumes, Elastic Load Balancers, and Amazon RDS DB instances.
New and existing customers also receive 10 metrics (applicable to Detailed Monitoring for Amazon EC2 instances or Custom Metrics), 10 alarms, and 1 million API requests each month at no additional charge.
Pay only for what you use. There is no minimum fee. You will be charged at the end of the month for your usage. Estimate your monthly bill using the AWS Simple Monthly Calculator.
For Amazon CloudWatch metrics and alarms, each partial month is billed on a pro rata basis, hourly.
AWS GovCloud Region
AWS GovCloud is an AWS Region designed to allow U.S. government agencies and contractors to move more sensitive workloads into the cloud by addressing their specific regulatory and compliance requirements. For pricing and more information on the new AWS GovCloud Region, please visit the AWS GovCloud Web Page.
* Your free usage is calculated each month across all regions and automatically applied to your bill — free usage does not accumulate.
Note: This new pricing for Detailed Monitoring (representing a 65% decrease from the current price) takes effect starting June 1, 2011. Prior to that, the price remains $0.015 per instance-hour or partial hour. Pricing for Amazon CloudWatch Custom Metrics takes effect starting June 1, 2011. Custom metrics (that you send and Amazon CloudWatch monitors) before that time are free of charge. Pricing for API requests begins July 1, 2011. API requests before that time are free of charge.
Amazon CloudWatch is charged by the number of Amazon CloudWatch metrics that you monitor, at a rate of $0.50 per month for each metric, plus the number of alarms you use, at a rate of $0.10 per month for each alarm. You will not be charged for the AWS resource metrics that are provided free of charge as described above. You will be charged at the end of each month for your Amazon CloudWatch usage.
Projecting Costs for Amazon EC2 Detailed Monitoring
As an example, a developer may want Detailed Monitoring for 10 Amazon EC2 instances 24×7 for one month. Each Amazon EC2 instance with Detailed Monitoring generates seven metrics: CPU Utilization, Network In, Network Out, Disk Read Bytes, Disk Write Bytes, Disk Read Ops, and Disk Write Ops. The monthly Amazon CloudWatch charges would be $35 (or $0.50 per metric x 7 metrics per instance x 10 instances). In this case, there are no API request charges since API requests used by the Amazon EC2 service to store your metrics are free of charge.
Projecting Costs for Your Custom Metrics
In addition, the same developer may wish to monitor performance metrics for an application that runs on a group of 10 Amazon EC2 instances, 24x7 for one 30-day month. For example, she may provide the following five web server metrics to Amazon CloudWatch in a Put API request every minute from each instance: completed requests, failed requests, request latency, errors, and bytes per request. For this case, the Amazon CloudWatch charges would be $25 (or $0.50 per metric x 5 metrics per instance x 10 instances). In this case, there are no API request charges since the total number of Put API requests is 432,000 (10 instances x 1 Put per minute x 43,200 minutes per month), which falls within the Free Tier quantity of 1 million API requests per month.