Early-stage founders rarely think about cloud cost until the monthly invoice crosses the threshold where it stops being a rounding error and starts being a serious line item on the burn plan. By that point, the team is already locked into architectural decisions that are expensive to undo. We have been pulled into a dozen of these situations over the past year, and the patterns repeat with uncanny consistency.
The 80% of waste lives in five places
Before you reach for reserved instances or savings plans, audit the cheap stuff. In every engagement we have run, the same five categories account for the bulk of avoidable spend. Idle resources that nobody owns. Data egress between availability zones because somebody picked the wrong subnet. Storage growing forever because there is no lifecycle policy. Dev and staging environments running full-size on weekends. And finally, the noisiest one of all, observability tooling that ingests every log line at full fidelity for ninety days.
// One-shot script we run on every advisory engagement.
const checks = [
() => findIdleEc2(maxCpuPct=2, days=14),
() => findUnattachedEbs(days=7),
() => findCrossAzTraffic(threshold="100GB/month"),
() => findS3WithoutLifecycle(),
() => findRdsBelow10PctUtil(days=30),
];
for (const check of checks) {
const findings = await check();
report.add(findings);
}Reserved capacity, but only after you stabilize
The textbook answer to cloud cost is to buy reservations or savings plans. The textbook answer is wrong for most pre-Series-A startups. If your architecture is still evolving weekly, a three-year commitment on a specific instance family is a bet against your own product roadmap. We tell clients to wait until their compute footprint has been stable for at least sixty days before they buy anything beyond a small, low-risk baseline. The on-demand premium during that stabilization window is cheaper than a stranded commitment.
“Cloud is not expensive. Cloud is a meter. The bill is the same conversation as the architecture review, just held one month later.”
The cultural piece
- Make the bill visible. We require a weekly five-minute review with engineering, finance, and product in the same room.
- Tag everything from day one. Untagged resources are unowned resources, and unowned resources are how waste compounds.
- Set spend alerts at the team level, not just the account level. A 30% jump in one service should page the team that owns it.
- Reward optimization, even when it is small. A junior engineer who saves $400 a month deserves recognition equal to shipping a feature.
Most of our advisory engagements end with the client cutting between thirty and sixty percent of their monthly spend within the first quarter. None of it requires heroic engineering. It requires sustained attention from someone whose job description explicitly includes cost. If you do not have that person, you do not have a cloud strategy. You have a cloud bill.
