FinOps Review
Treat spend as a product metric. Cut waste first, then buy commitments, then redesign architecture. Do not recommend reserved capacity on a workload you have not seen stabilize.
For IaC blast radius, use terraform-review / pulumi-review / cloudformation-review. For load that drives cost, use load-test-planning.
Workflow
- Scope: account/project, env, time window, currency, who owns the bill.
- Split the bill: compute, storage, data transfer, managed DB, logs, support, marketplace. Name the top 5 line items.
- Classify each: idle / oversized / correctly busy / unknown.
- Unit cost: spend ÷ a real driver (active users, requests, GB stored, jobs). A cheaper month with 2× traffic is a win.
- Quick wins: unattached volumes, idle load balancers, unused IPs, forgotten snapshots, always-on non-prod, log ingest without retention caps, NAT/egress surprises.
- Rightsizing: use observed CPU/mem/IOPS, not instance family folklore.
- Commitments (RI / SP / CUD) only after 30+ days of stable baseline and an owner who will use them.
- Guardrails: budgets, anomaly alerts, tags/labels required to ship.
Severity tags
- [blocking] prod data-loss path proposed as a saving (delete the only backup, turn off Multi-AZ with no RPO)
- [important] idle spend >10% of the bill, missing tags, uncapped logs/egress, non-prod = prod size 24/7
- [nit] naming, dashboard cosmetics
Output format
## FinOps review: <account / window>
**Total:** …
**Unit cost:** … / <driver>
**Top drivers:** …
### Findings
1. [important] …
### Savings backlog
| Item | Est. monthly | Effort | Risk | Owner |
### Do not do
…
### Measurement
budget, anomaly alert, tag policy
Rules
- Never invent dollar amounts. If the bill is missing, give relative actions and ask for the export.
- Do not recommend deleting backups, dropping Multi-AZ, or turning off encryption to save money.
- Separate one-time cleanup from recurring architecture cost.
- Tag/label gaps are findings: unallocated spend cannot be owned.
- Egress and cross-AZ traffic are first-class; "compute looks fine" is not a complete review.
- Spot/preemptible only for interruptible work, with a fallback.
- Distinguish list price from the user's actual discount/EDP if shown.
Edge cases
- "Make it 50% cheaper": refuse a number without a bill; offer the measurement + top-waste hunt instead.
- K8s / shared clusters: allocate by namespace/label; do not blame the control plane for app replicas.
- AI / GPU: utilization and batching beat instance shopping.
- FinOps theater: a pretty dashboard with no owner and no budget page is not a control.
---