Photo: Unsplash — Free to use
AWS Bills Balloon — Here's How to Cut Them in Half
The average AWS customer overpays by 30–40% on their monthly bill due to over-provisioned instances, orphaned resources, and missing discount programs. A systematic optimization effort typically achieves 40–60% cost reduction without any performance degradation. This guide tells you exactly where to look and what to do.
Step 1: Enable Cost Visibility First
You can't optimize what you can't see. Set up:
- AWS Cost Explorer: Free, shows daily/monthly costs by service, region, and tag
- AWS Budgets: Set alerts at 50%, 80%, and 100% of monthly budget — stop surprises
- Resource tagging: Tag every resource with Environment, Project, Team — enables cost attribution
- Cost allocation tags: Activate tags in Billing console to see costs by tag in Cost Explorer
After 1 week of visibility, you'll see exactly which services and resources are driving spend. Most teams are shocked by what they find.
EC2: The Largest Cost Driver
Right-Sizing: The Biggest Quick Win
Most EC2 instances run at 10–30% average CPU utilization. AWS Compute Optimizer analyzes CloudWatch metrics and recommends right-sized instances. Typical saving: 20–40% of EC2 costs.
How to right-size:
- Enable AWS Compute Optimizer (free for up to 100 instances)
- Review recommendations in Compute Optimizer dashboard
- Downsize over-provisioned instances during maintenance windows
- Rule of thumb: if 2-week average CPU utilization is under 20%, the instance is over-provisioned
Savings Plans and Reserved Instances: 30–72% Discount
On-demand pricing is the most expensive option. For stable, predictable workloads:
- Compute Savings Plans: 1 or 3-year commitment for 24–42% savings. Flexible across instance types, regions, and OS.
- EC2 Instance Savings Plans: 1 or 3-year commitment for a specific instance family. 40–60% savings. Less flexible.
- Reserved Instances: 1 or 3-year commitment for 30–72% savings. Least flexible but highest discount.
Rule: if a workload has run for 3 months and you expect it to continue, buy Savings Plans for it. The 1-year commitment pays off in under 8 months.
Spot Instances: 70–90% Discount
AWS Spot Instances use spare capacity at massive discounts. They can be interrupted with 2-minute notice. Best for:
- Batch processing jobs
- CI/CD build agents
- Non-critical background workers
- Dev/test environments
Using Spot for CI/CD alone (GitHub Actions self-hosted runners on Spot) saves ₹30,000–80,000/month for medium engineering teams.
RDS: Database Cost Optimization
- Reserved DB instances: 1-year All Upfront saves 40%, 3-year saves 60% vs on-demand
- Right-size RDS: Use CloudWatch to check average database connections and CPU — most databases are over-provisioned
- Stop dev/staging RDS: RDS instances can be stopped (up to 7 days). Automate stopping dev databases at 7 PM and starting at 9 AM — saves 60% of dev DB costs
- Aurora Serverless v2: For variable workloads, Aurora Serverless scales to zero when idle
S3: Storage Cost Optimization
S3 costs grow silently as data accumulates. Implement lifecycle policies:
{
"Rules": [{
"Status": "Enabled",
"Transitions": [
{"Days": 30, "StorageClass": "STANDARD_IA"},
{"Days": 90, "StorageClass": "GLACIER"},
{"Days": 365, "StorageClass": "DEEP_ARCHIVE"}
],
"Expiration": {"Days": 2555} // Delete after 7 years
}]
}
Cost comparison: S3 Standard ($0.023/GB) → S3 Standard-IA ($0.0125/GB) → Glacier ($0.004/GB) → Deep Archive ($0.00099/GB). Moving 1TB from Standard to Deep Archive: $23/month → $1/month.
Data Transfer: The Silent Bill Inflator
AWS charges for data leaving AWS (egress). Common optimizations:
- CloudFront CDN: Serve static assets through CloudFront — CloudFront-to-internet egress is cheaper than S3/EC2 direct egress
- Same-region communication: Ensure services communicate within the same region/AZ — cross-AZ traffic costs $0.01/GB
- VPC endpoints: S3 and DynamoDB VPC endpoints eliminate NAT Gateway costs for these services
- S3 Transfer Acceleration: Only enable when needed — it adds cost
NAT Gateway: The Most Surprising Cost Item
NAT Gateway charges $0.045/hour (~₹3,300/month) plus $0.045/GB of data processed. Many teams don't realize their NAT Gateway processes hundreds of GB per month.
Optimization: Use VPC endpoints for AWS services (S3, DynamoDB, SQS, SNS) to route traffic privately without going through NAT Gateway. Implementing VPC endpoints can save 30–60% of NAT Gateway costs.
Monthly Cost Optimization Checklist
- Review Compute Optimizer recommendations — implement instance right-sizing
- Check for idle/unused resources: stopped EC2 with EBS, unattached EBS volumes, orphaned snapshots
- Review Savings Plans coverage in Cost Explorer — buy where coverage is low
- Check S3 lifecycle policies — implement if not present
- Review NAT Gateway usage — add VPC endpoints
- Stop dev/test RDS on weekends (Lambda scheduled event)
- Review and delete old EBS snapshots (typically 50+ snapshots accumulate)
- Check for unused Elastic IPs — $0.005/hour when not attached = ₹350/month/EIP
Tools for Automated Cost Optimization
- AWS Cost Explorer: Built-in, free cost analysis
- Infracost: Cost estimation in CI/CD pipelines — see cost impact before merge
- cloud-custodian: Open-source rules engine for AWS governance and cost control
- Spot.io (Spot by NetApp): Automates Spot Instance management with intelligent fallback
Frequently Asked Questions
How can I reduce my AWS bill?
The top 5 AWS cost reduction strategies: right-size over-provisioned EC2 instances (20-40% savings), purchase Savings Plans for stable workloads (30-42% savings), implement S3 lifecycle policies (up to 95% storage cost reduction), add VPC endpoints to reduce NAT Gateway costs, and stop development databases on weekends.
What are AWS Savings Plans?
AWS Savings Plans are commitment-based discount programs. Commit to a specific dollar amount of compute usage per hour (1 or 3 years) and receive 24-42% discount. Compute Savings Plans are flexible across instance types, regions, and even Lambda/Fargate. They replace Reserved Instances for most use cases.
Are AWS Spot Instances reliable?
Spot Instances are reliable for fault-tolerant, interruption-friendly workloads. They can be reclaimed with 2-minute notice when AWS needs capacity. Best for: CI/CD agents, batch processing, ML training, and dev environments. Not suitable for user-facing production without Spot interruption handling.
Why is my AWS bill so high?
Common unexpected cost drivers: over-provisioned EC2 instances running at low utilization, NAT Gateway data processing charges, forgotten dev/test resources left running, no S3 lifecycle policies (data accumulating in Standard tier), cross-AZ data transfer, and no Savings Plans (paying on-demand premium).
How much can I save by optimizing AWS?
Teams systematically optimizing AWS typically save 30-60% of their bill. Quick wins: right-sizing instances (20-40% of EC2 costs), S3 lifecycle policies (60-90% of cold storage costs), Savings Plans purchase (30-42% of on-demand compute). A ₹5 lakh/month AWS bill often reduces to ₹2-3 lakh with optimization.
Reduce Your Cloud Bill
Get a free AWS cost audit. We analyze your AWS bill, identify waste, and implement optimizations that typically save 30-50%. No commitment required for the audit.