← All writing
18 December 2025 · 5 min read

AWS Without the Surprise Bill

I've cut cloud bills by meaningful percentages more than once, and never by a heroic month-end scramble. Predictable cost comes from treating spend as an architecture property, designed in, not audited after.

The bill is a design output

Every architectural choice has a cost shape. A Lambda that scales to zero, a always-on instance, a chatty cross-AZ data flow, a logging setup that ingests everything forever — each writes a different line on the invoice. Knowing the cost shape of a decision at the time you make it is most of cost control. The surprise bill is just decisions you made without seeing their shape.

Tag everything, or fly blind

You can't optimise what you can't attribute. Consistent tagging — by service, environment, team — turns an opaque total into a list of line items you can actually reason about. Untagged spend is where waste hides indefinitely.

Right-size before you reserve

Teams reach for reserved instances and savings plans to cut cost, but locking in the wrong size just makes you efficiently wrong. Measure real usage first, right-size to it, *then* commit. Reserving an over-provisioned baseline is paying less for waste.

The cheapest resource is the one that isn't running

Scale-to-zero where the workload allows it, kill the staging environments nobody's using overnight, and put a lifecycle on the data you're storing forever for no reason. Most cloud waste isn't expensive mistakes — it's cheap things left running, multiplied by time.

← Back to Nathaniel Wilson