This audit analyzed AWS infrastructure spending $10,400/month across 3 production environments. We identified 27 optimization opportunities across EC2, RDS, S3, and Lambda services. Implementing the 12 high-priority recommendations alone would reduce monthly costs by $3,200 (31%), with no performance degradation.
Analysis of CloudWatch metrics (CPU, memory, network) over 30 days shows 8 EC2 instances running at <15% average utilization. These instances are 2-3 sizes larger than needed.
Current: 8× m5.2xlarge ($0.384/hr) = $2,217/mo
Recommended: 8× m5.large ($0.096/hr) = $554/mo
Savings: $1,663/mo + Reserved Instance discount ($177/mo) = $1,840/mo
5 development EC2 instances run 24/7 but are only used during business hours (9am-6pm EST, Mon-Fri). Implementing auto-start/stop schedules would save 76% of runtime costs.
Current runtime: 730 hrs/mo
Recommended runtime: 180 hrs/mo (business hours only)
Savings: $620/mo
Production RDS instance (db.r5.xlarge Multi-AZ) has 99.7% uptime requirement but is paying for Multi-AZ high availability (99.95% SLA). Analysis shows no failover events in 18 months. Single-AZ with automated backups meets availability target.
Current: db.r5.xlarge Multi-AZ = $1,094/mo
Recommended: db.r5.xlarge Single-AZ = $547/mo + $50/mo backups = $597/mo
Savings: $497/mo + Reserved Instance upgrade ($393/mo savings) = $890/mo
4.2 TB of S3 data (83% of total storage) hasn't been accessed in 90+ days but remains in Standard tier ($0.023/GB). Implementing lifecycle policies to transition to Glacier Flexible Retrieval after 90 days reduces storage costs by 87%.
Data breakdown:
• 0-30 days: 580 GB → keep in Standard
• 31-90 days: 340 GB → move to Intelligent-Tiering
• 90+ days: 4,200 GB → move to Glacier Flexible Retrieval
Savings: $340/mo
| Optimization | Impact | Effort | Savings |
|---|---|---|---|
| Delete unused EBS snapshots (120 orphaned) | Medium | Low (1 hour) | $180/mo |
| Enable S3 Intelligent-Tiering for logs bucket | Medium | Low (30 min) | $120/mo |
| Consolidate NAT Gateways (3→1 per AZ) | Low | Medium (4 hours) | $90/mo |
| Switch CloudWatch Logs retention (indefinite→90 days) | Low | Low (1 hour) | $65/mo |
| Enable Lambda tiered compilation for Java functions | Low | Low (2 hours) | $35/mo |
Delete orphaned snapshots, enable S3 lifecycle policies, adjust CloudWatch retention. Savings: $545/mo
Test m5.large in dev, then stage, then production. Implement dev instance schedules. Savings: $2,460/mo
Migrate Multi-AZ to Single-AZ during maintenance window. Purchase 1-year Reserved Instances. Savings: $890/mo
Validate savings, purchase EC2 Reserved Instances, set up cost alerts. Total realized: $3,895/mo (37% reduction)
To prevent cost drift, we recommend implementing:
Data Sources:
Tools Used: