Just like all its cloud products and services, Amazon offers a really simplified pricing scheme for CloudWatch. Meaning you can easily use the service for EC2 monitoring, no matter your instance size or cloud infrastructure scale.
Of course, larger implementations will incur a higher bill.
But AWS also offers a free tier that should be more than enough for your basic needs. It is not as rich in features as the paid options, but it gets the job done and then some. We’ll take a look at the CloudWatch limits and costs below.
CloudWatch, by default, monitors all your instances, volumes and Elastic Load Balancers (ELB) for absolutely no charge at all, at a regular five-minute interval. On top of that, it also provides 10 metrics, 10 alarms, a thousand email notifications using the Simple Notification Service (SNS), as well as up to a million API requests each month absolutely free!
CloudWatch also provides you with 5GB free of incoming data and 5GB of data archiving free of cost, along with three dashboards with up to 50 metrics each per month.
But if you want a more detailed and granular level of monitoring, then you can change the default CloudWatch behavior to monitor things at a one-minute interval. Doing so will cost you about $3.50 an instance per month.
Amazon also charges for additional metrics and alarms at approximately $0.50 and $0.10 on a monthly basis, though these and all other figures depend upon the Region you are using the service in. The differences are nothing major, however.
All that said, a cloud service is still defined by its limits. Before you get started with CloudWatch, it is a good idea to go through the Amazon CloudWatch Developer Guide to familiarize yourself with the limits that are in place for the monitoring service. And there are only a few big points you need to keep in mind when implementing CloudWatch for your EC2 instances.
First is that the monitoring service preserves metric data for up to two weeks, after which it is deleted. If you want to keep the data longer, then you will have to move the logs to a persistent store like Amazon S3 or Amazon Glacier.
Secondly, the maximum period value that you can specify is set at 86,400 second, or 1 day.
And finally, Amazon allows you to create up to 5,000 alarms per AWS account, with each alarm being able to support up to five actions. These should be more than enough for even the most elaborate of cloud implementations. But if, for some epic reason, your needs are higher, then you will simply have to work within these limits.