The Problem: An Exploding AWS Bill
Many companies discover their AWS bill with surprise at the end of each month. Lambda running idle, DynamoDB in provisioned mode for no reason, S3 buckets full of logs nobody reads.
Here are the techniques I systematically use to cut costs by 20-40%.
1. Lambda Function Audit
The most common quick win: Lambdas configured with 1024 MB memory when 256 MB is plenty. Each memory doubling doubles the cost.
- Use AWS Lambda Power Tuning to find the optimal ratio
- Check timeouts: a 15-minute timeout on a 2-second function is pure waste
- Identify "ghost" Lambdas that are no longer used but still deployed
2. DynamoDB: On-Demand vs Provisioned
Provisioned mode is cheaper only if your traffic is predictable. If you have spikes, on-demand is often more economical because you don't pay for unused capacity.
- Enable auto-scaling if staying in provisioned mode
- Analyze throttling metrics in CloudWatch
- Consider DynamoDB Reserved Capacity for stable tables
3. S3 and Lifecycle Management
Data accumulates. Without lifecycle policies, your S3 costs climb silently.
- Set up Lifecycle Policies to archive to S3 Glacier
- Enable S3 Intelligent-Tiering for unpredictable access patterns
- Delete old versions and incomplete multipart uploads
4. CloudWatch Logs: The Silent Trap
CloudWatch logs are often the 3rd highest AWS expense, and nobody reads them.
- Set retention policies (7 days for dev, 30 days for prod)
- Filter unnecessary logs before sending
- Consider export to S3 + Athena for cheaper analysis
5. Set Up a FinOps Dashboard
No visibility = no control. A simple FinOps dashboard with AWS Cost Explorer and Budgets alerts changes everything.
- Alerts by service and by tag
- Automated weekly reports
- Month-over-month comparison to catch drift
Typical Results
On my recent engagements:
- -30% average on monthly AWS bill
- Full visibility on costs by service and team
- Zero impact on performance or availability
Worried about your AWS bill? Let's talk.