Quick Wins (Implement This Week)
1. Delete unattached EBS volumes
Unattached EBS volumes are billed at full price indefinitely. Run this AWS CLI command to find them:
Average finding: $800โ$4,000/month in wasted storage for mid-size companies.
2. Stop idle EC2 instances
Dev and staging environments running 24/7 are the single biggest source of waste. Schedule them to stop outside business hours with AWS Instance Scheduler. An m5.xlarge running 168h/week costs $140/month; running 60h/week costs $50/month โ a 64% cut.
3. Delete unused Elastic IPs
Unattached Elastic IPs cost $0.005/hour โ ~$43/month each. They accumulate invisibly. Run a monthly audit and release any not attached to a running instance.
Compute Optimization
4. Spot Instances for fault-tolerant workloads
Spot instances offer 60โ90% discounts vs. on-demand. Best for: batch processing, CI/CD pipelines, stateless web tiers, data analysis. Not suitable for databases or single-instance critical workloads without careful architecture.
5. Graviton (ARM) instances
AWS Graviton3 instances (m7g, c7g, r7g) deliver 20โ40% better price/performance than equivalent x86 instances for most workloads. Migration is straightforward for most Linux applications. A move from m5.2xlarge to m7g.2xlarge saves ~25% with better performance.
Storage & Data Transfer
6. S3 Intelligent-Tiering
Enable S3 Intelligent-Tiering on buckets with unpredictable access patterns. Objects not accessed for 30 days move to infrequent access tier (40% cheaper); after 90 days, to archive tiers (68% cheaper). Zero retrieval fees for frequent/infrequent tier moves.
7. Reduce data transfer costs
Data transfer out costs $0.09/GB โ invisible until your bill arrives. Key strategies: use CloudFront for public content (cheaper transfer rates), co-locate services in the same AZ where possible, use VPC endpoints for S3/DynamoDB instead of NAT gateway.
Reserved Capacity Strategy
For stable workloads, Reserved Instances (RIs) and Savings Plans offer 30โ72% discounts vs. on-demand. The decision framework:
| Workload Type | Recommendation | Savings |
|---|---|---|
| Stable, known instance type | Convertible RIs (1-yr) | 40% |
| Variable compute, consistent spend | Compute Savings Plans | 66% |
| Lambda-heavy workloads | Compute Savings Plans | 17% |
| SageMaker training jobs | SageMaker Savings Plans | 64% |
| Unknown/variable | On-demand + spot mix | varies |
Right-Sizing
AWS Cost Explorer's right-sizing recommendations identify EC2 instances running at low utilization. The typical finding: 20โ30% of instances are overprovisioned by at least one size. Use aws ce get-rightsizing-recommendation or enable it in the console. Target: CPU utilization below 10% for 14+ days = over-provisioned.
Automation & Scheduling
AWS Instance Scheduler is free and can stop/start EC2 and RDS instances on a schedule. For a team working 9โ6, MโF: an instance running 45h/week vs 168h saves 73% on compute. At $200/month on-demand, that's $146 saved per instance per month.
Governance & Tagging
Without tags, you can't do chargeback, showback, or team-level optimization. Enforce tagging at resource creation with AWS Tag Policies and Service Control Policies (SCPs). Required tags at minimum: Environment, Team, CostCenter, Project.