Cutting a cloud bill ~40% without giving up capacity
An audit found the waste. Governance is what stopped it coming back — including a centralized cost application reporting across 100+ projects, so spend became someone's visible responsibility instead of a monthly surprise.
Built and operated in-house, as the engineer accountable for the platform — not as an external consulting engagement. Client and absolute spend are under NDA, so figures here are percentages.
The situation
The cloud bill had been climbing for months with no FinOps owner. Engineering was being asked to cut spend without slowing delivery — the request that usually produces a round of panicked downsizing, followed by an incident, followed by everything being sized back up again.
The estate spanned 100+ projects. Nobody could answer "what is this costing us, and who owns it" for any given workload without a half-day of clicking.
Audit before action
A full account audit came first, because cutting before measuring is how you take an outage. What it surfaced was ordinary and substantial: resources nobody owned, environments provisioned for a launch that had since passed, instances sized for a load profile that no longer matched reality, and reserved-capacity coverage well below what a steady baseline justified.
Untagged resources were the root difficulty. Without ownership metadata, "is this safe to delete" has no answer, so nothing gets deleted and waste compounds.
What I changed
- Rightsizing across the estate, driven by observed utilization rather than the size someone picked at provisioning time.
- A commitment strategy — modelling the right mix of reserved capacity for predictable baseline load and spot capacity for interruption-tolerant work, instead of paying on-demand rates for everything.
- A tagging and governance policy that made ownership a provisioning requirement, so future resources arrive attributable.
- Scheduled cleanup automation for the categories that reliably accumulate — non-production environments running outside working hours, orphaned disks and addresses, stale snapshots.
- A centralized cost application with reporting across 100+ projects, exporting to the spreadsheet format the finance and delivery teams already worked in. Adoption beats elegance.
- Lifecycle under Terraform, so resource creation and destruction became reviewable rather than ad hoc.
The outcome
A ~40% reduction, with no capacity removed and no measurable hit to delivery velocity. The number that matters more: spend is still ~33% below the original baseline, after platform workload has grown considerably since.
That gap between the two figures is the whole point. A one-time cut decays — teams provision, nobody notices, and within a year you are back where you started. The governance layer, the automation and the reporting are what convert a cut into a sustained position.
What I'd do differently
I would put the cost reporting in front of engineers earlier. It was built for finance and delivery visibility first, and it worked — but the fastest behavioural change came once the teams provisioning resources could see the cost of their own decisions. Feedback loops beat policy documents.
I would also set an explicit budget alert threshold per project at the same time as the tagging policy rather than after it. Tagging makes attribution possible; alerts make it someone's problem this week instead of at the next review.