Cloud cost reviews are among the most common engagements we run, and the story behind the numbers repeats at every scale. Nothing dramatic happened to the bill. It grew a few percent a month while everyone was busy shipping, and compounding did the rest.

We have reviewed environments spending two thousand a month and environments spending far more. The waste concentrates in the same places almost every time. Here is where we look first.

Compute that outlived its purpose

Instances get sized for the worst day anyone can imagine, then never revisited. The launch spike passed eighteen months ago, and the autoscaling group still holds capacity for it. Right-sizing is unglamorous work, and it routinely returns 10 to 20 percent of the compute line on its own.

Storage with no expiration date

S3 buckets, EBS snapshots, and CloudWatch logs share a dangerous property: they grow forever unless someone tells them to stop. We find snapshot chains going back years, attached to machine images nobody can name. A lifecycle policy takes an hour to write. Most accounts never get one.

Data transfer, the quiet line item

NAT gateways charge per gigabyte processed. Cross-zone traffic charges in both directions. Services chatter with each other constantly, and none of it stands out until you read the Cost and Usage Report closely. It is common to find NAT processing fees rivaling the cost of the compute behind them.

Paying list price for predictable workloads

Savings plans and reserved capacity exist for exactly one reason. A database that has run every hour for three years qualifies as predictable, and if your commitment coverage sits near zero, you are paying full price for capacity you were always going to use.

Environments nobody remembers

Staging clusters, proof-of-concept projects, the load test rig from a vendor evaluation two years back. They idle at low utilization, so they escape attention, and they bill every hour regardless. Tag resources with an owner and a purpose, then remove whatever fails to claim either one.

The workload in the wrong place

Some systems gain nothing from a hyperscaler. A steady internal application with no burst pattern can run on flat-rate hosting for a fraction of the price. We operate our own hosting infrastructure for exactly these cases, and we move workloads there when the numbers support it.

Where to start

Pull the last three invoices and sort by service. Take the top five lines and ask one question of each: what would happen if this were cut in half? Any line without a confident answer deserves a review.

Our reviews are read-only and fixed-fee, and clients typically finish 20 to 50 percent lower. The following invoice shows whether it worked.