THE CLOUD COST PLAYBOOK: CUTTING THE BILL WITHOUT CUTTING RELIABILITY
A sequenced FinOps playbook: visibility and allocation first, then the mechanical quick wins (rightsizing, scheduling, storage tiers, orphans), then commitments, then the architectural fixes - with the org habits that keep costs down.
Cloud bills fall in a reliable order: first make spend visible and attributable (tagging, showback); then take the mechanical wins - rightsizing, off-hours scheduling, storage tiering, orphan cleanup - which usually trim a material double-digit percentage; then buy commitments against the now-stable baseline; then fix the architectural drivers (chatty cross-AZ services, unbounded logging, NAT-gateway data taxes). Do it in that order: commitments before cleanup lock in waste; architecture before visibility optimizes blind.
Step 0: make the bill mean something
An unattributed bill is a weather report. Enforce tagging (owner, service, environment) at provision time via policy-as-code; route untagged spend to a visible 'unowned' bucket reviewed monthly - social pressure does the rest. Showback per team changes behavior before any chargeback politics; engineers fix what they can see attributed to them.
The mechanical layer: boring money
Rightsizing
Utilization data + one honest question: what breaks at half this size? Downsize where the answer is 'nothing', with a rollback path. Watch memory-vs-CPU shaped workloads - wrong instance family wastes more than wrong size.
Scheduling
Non-production running nights and weekends is paying rent on empty offices. Auto-stop dev/test out of hours with a self-serve wake button. Typical non-prod savings: the majority of its bill.
Storage tiers and lifecycle
Logs from 2022 on hot storage; snapshots of deleted machines; buckets nobody can name. Lifecycle policies to colder tiers + deletion with a review window. Storage is where cloud waste goes to hide because nothing pages when it grows.
Orphans
Unattached volumes, idle load balancers, unassociated IPs, forgotten NAT gateways - the debris of every experiment. Sweep monthly, automatically, with owner notification before reaping.
Commitments: buy the baseline, only the baseline
After cleanup stabilizes usage, cover the floor with reserved capacity/savings plans; leave the variable crown on demand. Committing before cleanup is how teams end up reserved into instance types they no longer run. Review quarterly; treat coverage like a portfolio, not a one-time purchase.
Architectural spend: where the curve bends
- →Data gravity taxes: cross-AZ/region chatter and NAT processing fees - colocate chatty services, endpoint the traffic
- →Log everything forever → log usefully with retention: observability bills quietly rival compute
- →Serverless at sustained load / servers at spiky load - both mismatches burn; fit the execution model to the shape
- →Lift-and-shift residue: monoliths on giant instances waiting for the re-architecture that step 4 finally funds
Keeping it down: FinOps as habit
One monthly hour: spend vs budget per team, anomalies explained, one optimization shipped, one architectural driver on the roadmap. Unit economics (cost per order/tenant/1k requests) beat absolute bills - growth should raise spend; only ratios reveal waste. That cadence, not any single tool, is the difference between a cost project and a cost culture. (Our Cloud pillar's FinOps service and Cloud Platform product exist to run exactly this loop.)