Cloud bills have a way of growing faster than the applications they support. When finance asked for a 30% reduction, we had to find savings without compromising reliability.
The Problem
The bill had grown organically. Resources provisioned for load tests never deleted. Development environments running 24/7 despite 9-5 usage. Reserved instances purchased for services that no longer existed. Right-sizing recommendations ignored because “we might need that capacity.”
Nobody owned cost accountability. Each team optimised for performance and availability—admirable goals, but expensive when unchecked. The monthly bill was a surprise to everyone.
Cutting costs risked cutting corners. Previous optimisation attempts had caused outages. Teams were understandably cautious about changing what worked.
Our Solution
Visibility first. We implemented cost allocation tags across all resources and built dashboards showing spend by team, environment, and service. You can’t optimise what you can’t see. Suddenly teams could see their contribution to the bill.
Low-hanging fruit. Unattached EBS volumes, idle load balancers, forgotten EC2 instances—cleanup scripts identified resources with zero traffic. Deleting these required no architectural changes and no risk.
Environment scheduling. Development and staging environments now stop outside business hours. A Lambda function handles start/stop schedules. This alone reduced non-production compute by 60%.
Right-sizing with data. CloudWatch metrics showed actual utilisation over 30 days. Many instances were running at 10% CPU. We downsized conservatively, validating in staging before production.
Reserved Instances and Savings Plans for stable workloads. After establishing baseline usage, we committed to 1-year reservations for predictable capacity. Spot instances for fault-tolerant batch processing.
Architecture improvements for the biggest wins. Moving to Graviton instances provided 20% better price-performance. Converting to serverless for appropriate workloads eliminated idle capacity entirely.
The Benefits
We achieved the 30% reduction and identified another 15% for the next quarter. More importantly, we established sustainable practices rather than one-time cuts.
Teams now consider cost in architectural decisions. “How much will this cost to run?” is a standard design review question.
Waste gets caught early. Automated alerts flag resources without proper tags, unusually high spend, or forgotten provisioning.
The relationship with finance improved. Monthly reviews show trends and explanations rather than surprises. Cost conversations are now collaborative rather than adversarial.
Cloud cost optimization isn’t about being cheap. It’s about spending intentionally on what matters.