Practices, not a tool list
AWS cost optimisation best practices
A cleanup is a one-off. These are the practices that decide whether the bill stays down afterwards, which is a different and harder problem.
The practices that hold up are: give the bill an owner, tag well enough to attribute spend, always rightsize before committing, schedule everything non-production, set retention and lifecycle policies at creation time, show cost in the pull request, review monthly rather than annually, and measure cost per unit of business value rather than in absolute pounds. Most cost programmes fail not because the team ran out of savings but because nobody owned the number afterwards.
The practices
- →Give the bill one owner. Not a committee. One named person who reports the number monthly and has authority to delete things. The single strongest predictor of whether an account stays clean is whether this person exists.
- →Tag enough to attribute, not everything. Three tags applied consistently beat twelve applied sometimes. Environment, Owner, Service. Enforce at creation with a service control policy or Terraform, because retrospective tagging never happens.
- →Rightsize before you commit. A Savings Plan is a promise to spend. Making that promise before a cleanup means paying for capacity you are about to delete, for one to three years. Clean up, let the baseline settle for two weeks, then commit to roughly 70% to 80% of what remains.
- →Schedule everything non-production. Dev, staging, QA and demo used 45 hours a week and paid for 168. Scheduling is the highest saving-to-risk ratio change on AWS and it needs no architecture work.
- →Set retention and lifecycle at creation. A log group without retention and an S3 bucket without a lifecycle rule are both charges that grow forever with nobody watching. Bake both into whatever creates them.
- →Put cost in the pull request. Infracost against a Terraform plan shows the monthly delta of a change before it merges. Preventing a $400 a month resource is worth more than finding it a year later, and it moves the conversation to where the decision is actually made.
- →Prefer flexible commitments early. Compute Savings Plans cover any family, size, region and architecture. EC2 Instance plans and standard RIs give a slightly deeper discount for a much narrower promise. For any company that might change its mind, the flexibility is worth the couple of percentage points.
- →Review monthly, in half an hour. Cost Explorer, six months, grouped by service. Look at what moved and why. This catches the slow drift that annual reviews turn into an emergency.
- →Alert on anomalies, budget on totals. Cost Anomaly Detection catches the shape of a problem; a budget alert catches the size of it. Both are free and both take minutes.
- →Measure cost per unit, not cost. Cost per customer, per tenant or per thousand requests. Absolute spend rising while cost per customer falls is a company growing correctly, and a team judged on absolute spend will eventually make a bad decision to hit the number.
- →Delete rather than downsize where you can. A rightsized instance still costs money and still needs patching. The cheapest resource is the one that no longer exists, and cleanup beats optimisation whenever both are available.
- →Write down what you deliberately will not do. Multi-AZ on production, backup retention, encryption. Naming these as off-limits stops a future cost push from quietly eating them, and it makes the savings you do report trustworthy.
What to ignore
Reserved Instance marketplace arbitrage, unless commitments are large enough that a person can be paid to manage them. The complexity outlives the enthusiasm.
Chasing the last 5% through architectural change while a third of your non-production estate still runs at the weekend. Do the boring things first; they are larger and they are reversible.
Multi-cloud as a cost strategy. It doubles the number of billing models your team has to understand, and the waste patterns are organisational, so they follow you.
Spot for anything that cannot tolerate interruption. The discount is real and so is the interruption, and a production outage costs more than a year of the saving.
The test for whether any of this stuck
Six months after a cost cleanup, is the bill lower than it was, adjusted for growth? If it went back up, the cleanup worked and the practices did not. That is the normal outcome, and it is why the list above is about ownership and defaults rather than about specific savings.
Put numbers on it
Is my AWS bill too high?
Benchmark your spend against typical ranges for your team size in 30 seconds.
Open calculator →
EC2 idle cost estimator
What your under-5%-CPU instances cost, and what rightsizing the quiet ones saves.
Open calculator →
Savings Plans calculator
On demand against one and three year commitments, and why rightsizing has to come first.
Open calculator →
Frequently asked questions
What is the single highest-impact practice?
Giving the bill one named owner. Every technical practice on this list is well known and freely documented; the accounts that stay clean are the ones where somebody is accountable for the number each month. It is an organisational fix to what looks like a technical problem.
How often should we review AWS costs?
Half an hour monthly, plus anomaly alerts for anything urgent. Quarterly is too slow to catch drift and weekly is more attention than the data justifies for most accounts.
Should engineers see the AWS bill?
Yes, filtered to what they control. An engineer who can see that their service costs $2,000 a month will make different design choices, and cost in the pull request is a better feedback loop than a monthly report. Showing an unfiltered account bill to everyone produces anxiety rather than action.
Is FinOps just cost cutting with a new name?
The useful distinction is that cost cutting is a project with an end and FinOps is a practice with an owner. In a company under about a hundred people, the whole of FinOps is usually one person spending half a day a month, plus sensible defaults in the infrastructure code. The framework matters less than the fact that it is somebody’s job.
Keep reading
Prices checked against AWS list rates on 2 August 2026. AWS changes prices; treat every figure here as a close approximation rather than a quote.
£499 fixed. Free scan first. 20%+ found or it’s free.
The scan is read-only — a role you create and delete, no keys shared — and shows your estimated monthly saving before anyone talks about money.