All posts
Cost Optimization

Cutting CloudWatch Costs in 2026: Log Classes, Intelligent Tiering, Lambda's Tiered Pricing and Metrics

By

October 25, 2026

7 min read

CloudWatch is a top-five line on many AWS bills, and most of it is log ingestion nobody reads. What changed (Lambda logs moved to tiered vended pricing, logs gained intelligent storage tiering in July 2026) and the levers that cut the bill without losing what you need in an incident.

CloudWatch
CloudWatch Logs
AWS Lambda
Observability
Cost Optimization

CloudWatch bills mostly by volume: $0.50 per GB ingested into a Standard log group, $0.03 per GB-month stored, $0.005 per GB scanned by Logs Insights, $0.30 per custom metric per month for the first 10,000, and $0.10 per standard alarm. A busy service logging at debug level can cost more in logs than in compute.

What changed since 2025

  • Lambda logs became vended logs in May 2025, with tiered ingestion pricing: $0.50/GB for the first 10 TB a month, then $0.25, $0.10 and $0.05 above 50 TB. Lambda can also send logs straight to S3 or Firehose instead of CloudWatch.

  • The Infrequent Access log class ingests at half the Standard price ($0.25/GB for the first tier) with fewer features: no metric filters, subscription filters or Live Tail, but Logs Insights works.

  • Intelligent tiering for log storage (July 2026): data untouched for 30 days moves to Infrequent Access storage, after 90 days to Archive Instant Access, and is promoted back to Standard for 30 days when queried. Queries work the same on every tier. It is enabled per account.

Want a second opinion on this for your system?

Book a free 30-minute call. You'll leave knowing what we'd do first and roughly what it costs, whether or not you hire us.

The levers, in order of savings

  1. Set retention on every log group. The default is never expire. Fourteen or thirty days covers most application logs; keep audit logs longer, in a cheaper class or in S3.

  2. Lower log levels in production. Debug logging left on is the most common cause of a large bill. Lambda's JSON log format can filter by level without a code change.

  3. Move audit, access and compliance logs that are read rarely to the Infrequent Access class, or send them to S3 and query with Athena.

  4. Turn on intelligent tiering for storage, so old logs you keep cost less without moving them yourself.

  5. Check custom metrics for cardinality. A dimension such as user ID or request ID turns one metric into thousands, each billed monthly. Embedded Metric Format pays for both the log line and the metric.

  6. Delete alarms and dashboards for services that no longer exist. Small individually, they add up across accounts.

Find where it goes first

In Cost Explorer, group CloudWatch by usage type: DataProcessing-Bytes is ingestion, TimedStorage-ByteHrs is storage, DataScanned-Bytes is queries, MetricMonitorUsage is metrics. Then sort log groups by stored bytes and ingestion. In our experience three or four log groups account for most of the bill.

hoolco Monthly Review

Once a month: what changed in tech that month and what it means for you, from cloud and AI to security and the tools you build with. Every item links to its source. No sales pitch, unsubscribe in one click.

As of October 25, 2026. Provided as is, for general information, and accurate to the best of our knowledge on the date shown. Not legal, compliance, tax, financial or other professional advice. Prices, limits and vendor services change; check current vendor documentation before relying on anything here. Terms of use.