Your AWS bill keeps climbing and you're not sure what's driving it. You suspect there's waste but don't have time to dig in. Maybe you've looked at Cost Explorer and it raised more questions than it answered.
Most environments I review have 20-40% waste hiding in plain sight: oversized instances, idle resources, suboptimal pricing models. The challenge isn't finding savings. It's knowing which changes are worth the trade-offs for your specific workloads.
Where the money actually goes
Dev/test environments running 24/7
A simple Lambda that stops non-production resources at 6pm and starts them at 8am cuts those costs by 60%. Most teams just never set it up.
Over-provisioned RDS and EC2
That db.r5.2xlarge running at 15% CPU is costing $500/month more than necessary. Most instances I see are 3-4x larger than they need to be.
NAT Gateway data transfer
At $0.045/GB, NAT Gateway costs add up fast. Gateway VPC endpoints for S3 and DynamoDB are free, but they're not the default.
Wrong storage classes everywhere
S3 Standard costs 3x more than Infrequent Access for data you rarely touch. Logs and backups accumulate in the default tier because nobody changed it.
CloudWatch Logs on "never delete"
The default retention is forever. Most teams don't need 5 years of Lambda logs, but nobody changed the setting.
Common cost traps — how many apply?
Uncheck the ones you've already addressed.
Key optimization levers
Different levers for different situations:
Right-sizing
Match EC2, RDS, and Lambda resources to actual utilization. Most instances run at 10-30% CPU.
Pricing models
Reserved Instances and Savings Plans cut compute costs 30-70% for predictable workloads. Spot for fault-tolerant batch jobs.
Waste elimination
Orphaned EBS volumes, unused Elastic IPs, old snapshots, idle load balancers. They accumulate quietly.
Architecture changes
Sometimes the biggest savings come from rethinking how services communicate, or replacing expensive managed services with more cost-effective alternatives.
How an engagement works
Visibility first
Cost allocation tags, billing analysis, and custom dashboards. You can't optimize what you can't measure.
Quick wins
Idle resources, obvious right-sizing, scheduling non-production environments. Usually 10-15% savings within weeks.
Structural changes
Reserved Instances, architecture improvements, capacity mode decisions. The bigger savings that compound over time.
Sustainable cost culture
Tagging standards, budget alerts, and architecture review checkpoints. The goal is ongoing cost awareness, not a one-time cleanup that drifts back.
Frequently Asked Questions
How much can I realistically save on my AWS bill?
Most AWS environments have 20-40% waste. For a company spending $50K/month on AWS, that's $10K-20K in potential monthly savings. Quick wins like right-sizing and eliminating unused resources typically deliver 10-15% savings within weeks. Larger savings from Reserved Instances and architectural changes take longer but compound over time.
What's the difference between Reserved Instances and Savings Plans?
Reserved Instances lock you into specific instance types in specific regions for 1-3 years at 30-60% discounts. Savings Plans are more flexible: you commit to a dollar amount of compute usage per hour, and AWS applies discounts automatically across instance types and regions. For most teams, Compute Savings Plans offer the best balance of savings and flexibility.
How long does an AWS cost audit take?
A focused cost audit typically takes 1-2 weeks. The first few days involve analyzing your AWS Cost Explorer data, billing reports, and architecture. The remaining time is spent identifying specific optimization opportunities and building a prioritized roadmap. You'll have actionable recommendations within the first week.
Should I use Spot Instances to save money?
Spot Instances offer 60-90% discounts but can be terminated with 2 minutes notice. They work well for batch processing, CI/CD builds, and stateless workloads that can handle interruptions. For production APIs or databases, stick with On-Demand or Reserved capacity. Many teams use a mix: Reserved for baseline, On-Demand for peaks, Spot for batch jobs.
Why is my serverless bill so high?
Common serverless cost traps include: over-provisioned Lambda memory (you pay for memory even if you don't use it), DynamoDB in provisioned mode when on-demand would be cheaper (or vice versa), excessive CloudWatch Logs retention, and API Gateway costs at high volume. Lambda is cost-effective for sporadic workloads but can be expensive for sustained high-throughput. Sometimes ECS or EC2 is actually cheaper.
📖 Complete Guide to AWS Cost Optimization for SaaS
A 25-minute read covering Reserved Instances vs. Savings Plans, serverless cost patterns, database optimization, network costs, and multi-tenant considerations.
Read the Full Guide →