CloudWatch Pricing: A Primer
Cloudwatch pricing can seem complex, but if you keep in mind what you're monitoring and how much data is produced, it is worth it.
Cloudwatch pricing can seem complex, but if you keep in mind what you're monitoring and how much data is produced, it is worth it.
Amazon Cloudwatch is AWS' observability and monitoring service. It's a flexible and scalable monitoring solution that you can have up and running in minutes.
Cloudwatch has a wide variety of features and many moving parts. Even though it's relatively easy to configure, it can be complicated to figure out how AWS charges you for its services. Let's take a look at Cloudwatch and its billing model.
Cloudwatch collects operational and monitoring information, including events, metrics, and logs. With Cloudwatch, you get a unified view of and complete visibility of your AWS resources, and with the use of a proprietary agent, your on-premises systems, too.
Cloudwatch is a full-feature monitoring system with support for alarms, visualized and instrumented logs, and metrics. Cloudwatch even has the ability to provide you with insights about how your services are doing. You can also configure it for automated actions.
You can use it to:
Cloudwatch integrates with more than 70 AWS services, including Aurora Serverless, EKS, Fargate, Lambda, and EBS.
Cloudwatch integrates with more than 70 AWS services, including Aurora Serverless, EKS, Fargate, Lambda, and EBS.
Let's look at Cloudwatch pricing and how it works. Costs cover ten areas. Each contributes to your monthly cost. The specific costs depend on the region where you run Cloudwatch.
A metric is information about the performance of one of your systems or applications. Cloudwatch ingests these metrics for display, charting, and analysis.
Cloudwatch has two types of monitoring: basic and detailed. Basic monitoring is always free, while detailed monitoring has an extra cost and is only available for some services.
You can also publish custom metrics to Cloudwatch. These metrics incur an additional cost.
Cloudwatch bills for dashboards at a flat cost per month.
Alarms watch one or more metrics. When one of them breaches a threshold, they perform a configured action. You can create two types of alarms: metric or composite. Alarms are billed per metric.
Cloudwatch ingests and processes logs to create metrics. In some cases, like Container Insights, AWS configures the instrumentation for you. But you can set up custom log ingestion and instrumentation, too.
Collecting, storing, and analyzing logs are three discrete operations, and AWS bills each one individually. All three are billed by the gigabyte.
AWS resources, like EC2 instances and AWS applications, generate events when their states change. You set up rules that respond to these events. Depending on the nature of the event, Cloudwatch can take action to respond to the state change.
Cloudwatch bills events at a flat rate per million.
Contributor insights are a way to write rules for analyzing log messages as applications send them to Cloudwatch logs. Cloudwatch bills for each active rule and every million events that match a rule.
Canaries are scripts that follow the same paths through your infrastructure as clients. They're a powerful tool for monitoring how your customers see your systems and an effective way to discover issues before they become problems. You're billed each time a canary runs.
Evidently is a powerful A/B testing tool. You use it to test new features and monitor their results. Each test generates one or more events, and you write rules to analyze the test results.
Evidently generates events for both test selection and test results. These events are billed per million. Evidently also generates analysis units from your rules. AWS charges a different rate for these units.
Cloudwatch has tools for real user monitoring. They collect client-side information about your web application and how it performs. You can see page load times, user behaviors, and client-side errors. RUM is billed per 100k events.
Metric Insights is a SQL interface for querying your Cloudwatch data. You can query insights via the Cloudwatch console or an API connection. Insights are free via the Cloudwatch console but billed per 1000 metrics analyzed.
Costs cover ten areas. Each contributes to your monthly cost. The specific costs depend on the region where you run Cloudwatch.
Like most AWS service offerings, Cloudwatch has a free tier.
Here's a breakdown of Cloudwatch's free tier:
Metrics
Dashboards
Three Dashboards with up to 50 metrics per month.
Alarms
10 Alarm metrics, standard resolution alarms only.
Logs
5GB of Log Data. The free tier includes ingestion, storage, and data scanned for the first 5GB.
Events
All standard events are included. The free tier doesn't include any custom events.
Contributor Insights
1 Contributor Insights rule per month, and the first 1 million log events that match the rule per month
Canary
100 canary runs per month
Evidently
Three million Evidently events and 10 million Evidently analysis units.
Real-User Monitoring
1 million RUM events.
Many AWS applications can operate with the free tier, but Cloudwatch pricing gets more complicated as you add more resources.
Like all AWS services, Cloudwatch billing is structured to only pay for what you use. So it's hard to say that Cloudwatch is expensive.
The problem with Cloudwatch billing is it's complicated. Nearly every feature is billed separately, so bills quickly get long and hard to follow. Let's look at how you can manage Cloudwatch costs and keep your bills as simple and straightforward as possible.
Most Cloudwatch users take advantage of its ability to analyze logs. AWS bills you for each gigabyte it ingests, stores, and scans, and these costs can add up quickly. Let's look at an example.
We'll use the following costs based on the current pricing for the US East region:
If our application generates 2 GB of logs a day, we're looking at $30 a month or $360 a year for log analysis. Storage will increase by $1.80 a month. Remember, you pay for the logs you store, so your storage costs will increase each month if you never remove any of them. So by the end of the year, storage will cost you more than $20 a month. Meanwhile, your analysis costs won't even break $1 a month.
These costs seem reasonable, but what happens when one of your applications experiences an issue and logs ten or more GB within a few hours? Suddenly your monthly costs have doubled or tripled. Be mindful of what your applications are logging and which logs you send to Cloudwatch. Also, only archive the logs you need since storage costs will steadily rise each month.
Cloudwatch log costs are reasonable, but it's worth keeping an eye on how much data your logs produce from month to month.
It’s also worth checking out ListMetrics - if this works for your use case, these calls can be made through the console for free.
Cloudwatch charges for the number of metrics associated with an alarm. So, if you set up an alarm based on three metrics, you're charged the cost per metric times three for that alarm.
Like logs, alarm costs can add up. Inventory your alarms and remove the ones that you don't need. Also, don't set up high-resolution alarms unless you genuinely need to poll a metric more than once per minute.
When it comes to both dashboards and canaries, you can save by simply deleting unnecessary dashboards and canaries.
In this post, we discussed Cloudwatch pricing. Its pricing model can be complicated, but it's not difficult to manage your costs if you're mindful of what systems you're monitoring and how much data they produce.
Remember to keep an eye on your costs each month, especially with regard to how much log data your systems and applications are producing. Also perform periodic audits of your alarms and remove metrics that you no longer need.
Cloudthread can help you manage your costs. Schedule a demo today and see how we can help you with cloud cost transparency.