Cutting a production AWS bill by 26.6% without touching application code
A UK business running a production environment on AWS (anonymised). This study is anonymised: the work and numbers are real, the client is not named.
The situation
The client’s AWS environment had grown organically over about three years. The bill grew month on month, the team assumed that was the cost of scaling, and nobody had time to review the account holistically.
The constraint
No application code changes and no architecture rewrites were on the table. The engagement had to pay for itself at the infrastructure layer alone, without any performance regression.
What was built
- A full account audit: every running resource, storage bucket, data-transfer pattern and service in use, mapped before anything was changed
- Compute rightsizing from real CloudWatch utilisation data. Instances sized for an 18-month-old peak were running at 15 to 20% CPU
- S3 lifecycle policies moving cold data to cheaper tiers and deleting expired data; orphaned EBS volumes removed and snapshot lifecycle policies added
- Reserved Instances for the always-on baseline and Savings Plans for the remainder, replacing on-demand rates for 24/7 workloads
- A tagging strategy so every resource attributes to a team and purpose
- The infrastructure moved under Terraform so future changes are tracked, reviewed and reproducible
The stack
AWS (EC2, EBS, S3, CloudWatch), Reserved Instances and Savings Plans, Terraform
The outcome
Monthly AWS spend down 26.6%, with no performance impact and no application changes. On a £5,000/month bill that is roughly £1,300 a month, or £15,600 a year. The full method is written up in our insights post, and the same review is productised as the £1,500 cloud cost and reliability audit.