How we keep our AWS bill from quietly creeping up
An AWS bill rarely jumps in one go. It creeps, a little each month, until someone finally looks. Here are the habits that keep ours honest.

An AWS bill almost never surprises you with one big jump. It creeps. A test environment nobody turned off, a log group keeping data forever, an instance that was sized for a launch that happened two years ago. Each one is small. Together they are a bill that makes everyone wince, and by then no one remembers what half of it is for.
I have cleaned up a lot of these, our own and clients'. The fixes are almost never clever. They are just habits. Here are the ones that matter.
Put a name on everything
The single most useful thing we do is tag every resource with what it is and which project it belongs to. It sounds like paperwork. It is the difference between "the bill is 4,000 dollars" and "this project is 4,000 dollars and 1,200 of that is one database nobody uses anymore."
You cannot cut a cost you cannot see. Tagging is how you see it. Do it from day one, because doing it later, across hundreds of untagged resources, is miserable.
Most things are bigger than they need to be
When you set something up, you guess at the size, and people guess high to be safe. Then it runs at that size forever, using a fraction of what you are paying for.
Every few months we look at what things are actually using, not what we guessed. A server sitting at five percent load does not need to be that big. A database provisioned for a traffic spike that never comes can come down a size or two. This one review usually pays for itself many times over, and nothing breaks, because you are matching the size to the real work.
Turn off what nobody is using
Development and test environments do not need to run at 3am on a Sunday. Setting them to shut down outside working hours is a small change that quietly removes a big chunk of waste, because those environments often cost as much as production while being used a fraction of the time.
The same goes for the leftovers: old snapshots, unattached disks, load balancers pointing at nothing. They each cost a little, every hour, forever. A cleanup every quarter keeps them from piling up.
Do not keep every log forever
Logs are cheap to make and easy to forget. By default a lot of them are kept forever, and "forever" gets expensive. Decide how long you actually need each kind, set that, and let the old ones age out on their own. You almost never need last year's debug logs, and if you do, you can keep the important ones somewhere cheaper.
Set an alarm before it matters
The last piece is a budget alert. Pick a number that would worry you, and have AWS email you when the month is heading past it. It will not stop a runaway cost, but it means you find out on the second day, not when the invoice lands.
None of this is advanced. There is no secret discount. Keeping a cloud bill sensible is just paying attention on a schedule: tag things, right-size them, switch off what is idle, and let old data expire. Do that and the creep never gets a chance to start.
Bill quietly getting away from you? Get in touch and we will take a look and tell you where the easy wins are.