HeadCount0

Guides / DevOps / 8 min read / Updated 1 August 2026

How to cut a cloud bill without breaking anything

The order is the whole trick. Buying a savings plan first locks you into a year of the waste you were about to remove.

The short version

  • Delete → rightsize → schedule → commit. Commitments last, because they price the usage you have after you have finished reducing it.
  • The largest single line is rarely compute. It is usually storage nobody deleted, data transfer nobody measured, or a managed database provisioned for a launch that never came.
  • Every change needs a way to notice it broke something. Cost work without monitoring is how a saving becomes an outage.

First, find out what you are actually paying for

Not the total. The breakdown, by service and then by resource, for the last three months so you can see the trend rather than one month's accident.

Two things to establish before touching anything: which line items are growing, and which resources have no owner. Untagged resources are where the money hides, because nobody feels responsible for deleting something they cannot identify. If tagging is a mess, fixing it is not a detour — it is the prerequisite for every conversation after this one.

The order of operations

  1. Delete what is not used. Free, instant, no performance risk.
  2. Rightsize what is over-provisioned. Cheap, small risk, needs a look at real utilisation.
  3. Schedule what does not need to run at night. Large savings on non-production, some engineering.
  4. Commit to a discount on what is left. Big savings, and a contract, which is why it goes last.

Doing step four first is the classic mistake. A one-year commitment sized against your current waste guarantees you keep paying for it, and it feels like progress because the invoice went down.

The usual suspects, roughly in order of how often they are found

Rightsizing without causing an incident

Look at utilisation over at least two weeks, and use the maximum as well as the average. An instance averaging 8% CPU that hits 90% every night during a batch job is not over-provisioned, it is correctly sized for the thing it exists to do.

Then move one size at a time, in production last, with a rollback plan and somebody watching. Memory is the usual trap: memory-bound workloads fail differently and more suddenly than CPU-bound ones, and the graph that would have warned you is often not being collected.

Commitments, last and deliberately

Once the bill has stopped shrinking, commit to a discount on the baseline that remains — the floor of your usage, not the peak. Cover a portion, not everything, so growth and change do not leave you paying for capacity you no longer use.

Shorter terms with no upfront payment are usually the right trade for a business whose architecture is still moving. The extra discount for three years paid upfront is real, and so is the risk of buying three years of a design you are going to replace.

Stopping it coming back

Cloud bills regrow, because the same conditions that produced the waste are still there. Three things hold the saving:

Common questions

Will cutting costs slow the application down?
Deleting unused resources cannot. Rightsizing can, if it is done against averages instead of peaks and without monitoring. That is the argument for doing them in that order and for having a way to notice when something changes.
Are savings plans and reserved instances worth it?
Usually, on stable baseline usage, and only after the waste is out. A commitment sized against an unoptimised bill locks in the waste for the length of the term.
What is the fastest single win?
Storage lifecycle rules and log retention, in most accounts. They are configuration rather than architecture, they carry almost no risk, and the amounts involved surprise people.

If you would rather not do this yourself

The listings this guide is about. Every one prints its price and names the company that sells it, and the status is what it says it is.

Nothing above is a promise of a result. Read the disclaimer for what this site refuses to claim.