This article was researched using primary sources including AWS, Azure, and GCP documentation, FinOps Foundation publications, and hands-on testing. Savings estimates are based on published cloud provider data and industry benchmarks. Full methodology →
Quick Wins vs Long-Term Plays
| Category | Effort | Time to Savings | Typical Impact |
|---|---|---|---|
| Delete idle resources | Low | Days | 5–15% of bill |
| Schedule dev/test instances | Low | Days | 3–8% of bill |
| Right-size over-provisioned instances | Medium | Weeks | 8–20% of bill |
| Reserved Instances / Savings Plans | Medium | Immediate on purchase | 15–35% of bill |
| Spot for batch/CI workloads | Medium-High | Weeks | 10–25% of bill |
| Graviton migration | High | Months | 10–20% on migrated workloads |
| Storage tiering + lifecycle | Low-Medium | Weeks | 5–15% of storage costs |
| NAT Gateway optimization | Medium | Weeks | 10–40% of network costs |
Compute Optimization
1. Right-Sizing EC2 Instances
Savings potential: 10–30% of compute spend · Difficulty: Medium
The most common finding in any AWS cost audit: instances running at 5–15% CPU utilization while paying for 100%. AWS Compute Optimizer analyzes 14 days of CloudWatch metrics and recommends the optimal instance type. A move from m5.2xlarge to m5.large (if utilization supports it) cuts compute cost by 75% for that instance.
2. Reserved Instances (RIs)
Savings potential: 30–40% vs on-demand · Difficulty: Low
For any EC2 instance running more than 60% of the time, 1-year Standard Reserved Instances save 30–40% with no upfront payment required. 3-year terms save up to 60%. The commitment risk is real — model your utilization carefully before purchasing. See our Reserved Instances vs Savings Plans guide for the full breakdown.
3. Compute Savings Plans
Savings potential: 40–66% vs on-demand · Difficulty: Low
More flexible than RIs: you commit to a dollar amount per hour (e.g., $10/hr) rather than specific instance types. AWS automatically applies the discount across EC2, Lambda, and Fargate in any region. Best for organizations with consistent but flexible compute needs.
4. Spot Instances
Savings potential: 60–90% vs on-demand · Difficulty: Medium-High
Spot instances use spare AWS capacity at steep discounts. The risk: AWS can reclaim them with 2-minute notice. Suitable workloads: CI/CD pipelines, batch data processing, ML training jobs, stateless web tier with auto-scaling groups. Not suitable for single-instance databases or stateful production services.
See our full AWS Spot Instances guide for architecture patterns.
5. Graviton (ARM) Migration
Savings potential: 20–40% better price/performance · Difficulty: High
AWS Graviton3 (m7g, c7g, r7g families) delivers 20–40% better price/performance than equivalent x86 Intel/AMD instances for most Linux workloads. Migration requires recompiling any native code, but most Java, Python, Go, and Node.js applications work without changes. Test on staging first; production rollout typically takes 2–6 weeks per service.
Storage Optimization
6. S3 Lifecycle Policies
Savings potential: 40–80% on cold data · Difficulty: Low
Most S3 data is accessed infrequently after 30 days. S3 Intelligent-Tiering automatically moves objects based on access patterns (no retrieval fee for frequent/infrequent tiers). For known access patterns, explicit lifecycle rules are cheaper: transition to S3-IA at 30 days, Glacier Instant Retrieval at 90 days, Glacier Deep Archive at 180 days. Deep Archive costs $0.00099/GB/month vs $0.023 for Standard — a 96% reduction.
7. EBS Volume Cleanup
Savings potential: $200–$5,000/month for most orgs · Difficulty: Low
Unattached EBS volumes (status: "available") bill at full price indefinitely. gp3 volumes cost $0.08/GB/month — a 500GB unattached volume costs $40/month doing nothing. Run a quarterly audit:
Also audit EBS snapshots — old snapshots from terminated instances accumulate at $0.05/GB/month and are rarely cleaned up automatically.
8. Snapshot Management
Savings potential: $100–$2,000/month · Difficulty: Low
Automated backup policies often create daily snapshots retained for 30+ days. For most workloads, a rolling 7-day snapshot policy is sufficient. AWS Backup and Data Lifecycle Manager both support automated snapshot cleanup. Delete snapshots from terminated instances immediately — they serve no purpose.
Network Optimization
9. Data Transfer Cost Reduction
Savings potential: 20–60% of transfer costs · Difficulty: Medium
AWS charges $0.09/GB for data transfer out. Three high-impact strategies: (1) Use CloudFront for any public-facing content — CloudFront pricing is lower than direct transfer out, and you get a CDN for free. (2) Co-locate services in the same AZ — cross-AZ transfer costs $0.01/GB each way, which adds up at scale. (3) Use VPC endpoints for S3 and DynamoDB — eliminates NAT Gateway costs for these services.
See our detailed guide on reducing AWS data transfer costs for architecture diagrams.
10. NAT Gateway Optimization
Savings potential: 30–70% of NAT costs · Difficulty: Medium
NAT Gateway costs $0.045/hour plus $0.045/GB processed. For high-throughput environments, this can reach tens of thousands per month. Key strategies: use VPC endpoints for AWS services (S3, DynamoDB, SQS, etc.) to bypass NAT entirely; consolidate NAT Gateways where possible; for dev environments, use a NAT instance on a t3.small instead ($6/month vs $32+ for NAT Gateway).
11. CloudFront Caching
Savings potential: 20–50% on content delivery · Difficulty: Low-Medium
CloudFront cache hit rates below 80% indicate misconfigured cache behaviors. Every cache miss costs transfer-out pricing. Tune TTLs, ensure proper Cache-Control headers, and use Origin Shield for high-traffic origins. A well-tuned CloudFront distribution can reduce origin traffic by 90%.
Database Optimization
12. RDS Right-Sizing and Reserved Instances
Savings potential: 30–65% on database costs · Difficulty: Medium
RDS Reserved Instances offer 30–65% discounts vs on-demand. Unlike EC2, RDS RIs apply per engine and instance class — check your current utilization first. RDS instances with CPU below 20% for 14+ days are strong right-sizing candidates. Multi-AZ doubles cost — use single-AZ for dev/staging databases.
13. Aurora Serverless for Variable Workloads
Savings potential: 40–80% for variable workloads · Difficulty: Medium
Aurora Serverless v2 scales from 0.5 ACUs to 128 ACUs in seconds. For databases with significant idle time (dev environments, internal tools, overnight batch), it dramatically reduces costs vs provisioned RDS. Minimum cost is ~$43/month at 0.5 ACU; compare to $140+/month for a db.t3.medium provisioned.
Licensing Optimization
14. BYOL and License-Included Analysis
Savings potential: 20–40% on licensed workloads · Difficulty: High
Windows Server and SQL Server licensing can represent 40–60% of instance cost on AWS. If your organization has existing Microsoft licenses with Software Assurance, BYOL (Bring Your Own License) via the Dedicated Hosts model can significantly reduce costs. Run the AWS License Manager license comparison before purchasing new license-included instances.
15. AWS Marketplace vs Subscription Alternatives
Savings potential: Varies widely · Difficulty: Medium
Software purchased through AWS Marketplace is billed on your AWS invoice but priced independently. Review Marketplace subscriptions annually — some vendors offer better pricing through direct contracts or open-source alternatives exist.
Governance and Tagging
16. Mandatory Resource Tagging
Savings potential: Enables all other savings · Difficulty: Medium
Without tags, you can't do chargeback, showback, or team-level optimization. Enforce tagging at resource creation using AWS Tag Policies and Service Control Policies (SCPs). Required minimum tags: Environment, Team, CostCenter, Project, Owner. Non-tagged resources should appear on a weekly report to engineering managers.
17. Anomaly Detection
Savings potential: Catch runaway costs before month-end · Difficulty: Low
AWS Cost Anomaly Detection uses ML to identify unusual spend spikes. Set up monitors by service, account, or cost category. A missed auto-scaling event or forgotten load test can generate thousands in unexpected charges — anomaly detection catches these within hours, not at month-end billing review.
18. Savings Plans Utilization Monitoring
Savings potential: Maximize committed spend ROI · Difficulty: Low
Savings Plans utilization below 100% means you're paying for commitment you're not using. Monitor weekly in Cost Explorer → Savings Plans → Utilization. If consistently below 85%, you over-committed. Use the coverage report to identify on-demand spend that could be covered by additional Savings Plans commitments.