The Pattern
Almost every mid-market AWS bill we audit has 20-35% pure waste - not architectural debt, not 'we should refactor', just money leaking through under-tuned defaults. The wins below are the five we ship in the first 90 days of every engagement, before any architectural work starts.
None of them require new code or downtime. All of them ship in days, not weeks.
1. Right-Size EC2 and RDS
Most mid-market EC2 fleets are sized for the worst day of 2022 and never resized. AWS Compute Optimizer scans your existing utilization and recommends instance type and size downgrades with high confidence.
- Pull the Compute Optimizer report for every account.
- Filter for 'over-provisioned' recommendations with high confidence.
- Schedule a maintenance window per instance, swap the type, validate the workload.
- Typical mid-market savings: 18-25% of EC2 spend in 30 days.
RDS works the same way - Performance Insights and CloudWatch metrics tell you whether your RDS instances are CPU- or memory-bound and what to downgrade to.
2. Switch to Savings Plans
If you are still on On-Demand pricing for compute that runs 24/7, you are leaving 30-40% on the table. Compute Savings Plans commit you to a dollar amount of compute per hour for 1 or 3 years - covering EC2, Fargate, and Lambda automatically.
- Pull Cost Explorer Savings Plan recommendations - AWS calculates the optimal commit based on your last 30 days of usage.
- Buy 70-80% of the recommended commit (leaving room for growth and elasticity).
- Choose 1-year for flexibility, 3-year for maximum discount if your workload is stable.
Most mid-market teams who have not yet adopted Savings Plans see 30%+ compute cost reduction within 24 hours of commit.
3. Delete or Lifecycle S3 Cold Data
S3 standard storage adds up. Most buckets we audit have 40-60% data that has not been accessed in 90+ days but is still on the standard tier.
- Enable S3 Storage Lens - shows you cold data by bucket, prefix, and tag.
- Create lifecycle policies that move objects from Standard to Standard-IA at 30 days, Glacier Instant at 90 days, Glacier Deep Archive at 180 days.
- For genuinely deletable data (old logs, transient build artifacts, archived snapshots), schedule a delete policy.
Typical S3 cost reduction: 35-50% on buckets with cold data.
4. Kill Idle Resources
Every AWS account has stuff nobody remembers spinning up - test environments, dev VPCs, unattached EBS volumes, orphaned snapshots, unused Elastic IPs. Trusted Advisor surfaces most of this automatically.
- Trusted Advisor checks: idle load balancers, idle RDS instances, unattached EBS volumes, unassociated Elastic IPs.
- Audit dev and staging accounts for environments that have not been deployed to in 60+ days.
- Schedule auto-shutdown on dev EC2 instances during evenings and weekends.
This is the lowest-architectural-risk win. Just deletion of stuff nobody is using. Typical savings: 5-10% of total bill.
5. Fix Data Transfer Costs
Data transfer charges are the most opaque line on most AWS bills. The biggest savings come from three patterns:
- Cross-AZ traffic for chatty services - move them to the same AZ or use VPC endpoints for AWS services.
- S3 egress to the public internet - put CloudFront in front of S3 to reduce per-GB cost.
- NAT Gateway charges on outbound traffic - use VPC endpoints (gateway and interface) to bypass NAT for AWS service traffic.
Mid-market teams routinely save 15-25% on data transfer with these three moves.
What This Adds Up To
Ship all five wins in 90 days and a typical mid-market team sees 22-35% total AWS bill reduction. None of it requires application rewrites. None of it requires downtime longer than a maintenance window. None of it touches the application layer.
This is what every FinOps engagement should ship before anyone talks about architectural change.
Want to see how this applies to your business?
Book a free 30-minute call. We will walk through your specific use case and show you what's possible.
Book Free Discovery Call