Cloud

Designing cloud systems that don't surprise you on the invoice

Illustration of cloud infrastructure

There is a particular kind of dread that comes with opening a cloud bill that is much larger than expected. We have helped enough clients through that moment to know it is almost never caused by one dramatic mistake. It is the accumulation of small, reasonable decisions that nobody revisited. Cost-aware architecture is not about being cheap; it is about making sure the money you spend is buying something you actually need.

Right-size before you autoscale

The most common source of waste is infrastructure that is simply too big for its job. A server provisioned generously "to be safe" during launch keeps running at ten per cent utilisation for years. Before reaching for clever scaling, we measure what a system actually uses under real load and match the resources to it. This single, unglamorous exercise often cuts a bill substantially with no effect on performance.

Once things are right-sized, autoscaling earns its place — but as a response to genuine variation in load, not as a substitute for understanding it. A system that scales up gracefully under a busy period and quietly scales down again afterwards is using money in proportion to the value it is delivering.

Turn off what nobody is using

Non-production environments are a quiet drain. Development, staging, and testing systems often run twenty-four hours a day even though they are only touched during working hours. Scheduling them to switch off in the evenings and at weekends can remove well over half their cost, and it is one of the easiest wins available. The same applies to forgotten resources — the test database from a project that ended last year, the oversized cache nobody remembers configuring. A periodic sweep for these pays for itself.

The cheapest server is the one that isn't running when nobody needs it.

Match storage to how data is actually used

Storage costs creep up because data accumulates and nobody ever moves it. Most data is accessed heavily when it is new and then almost never again. Cloud providers offer storage tiers priced for exactly this pattern — fast and more expensive for hot data, cheaper and slower for archives. Setting up lifecycle rules to move older data to colder tiers automatically keeps the bill in line with how the data is really used. The same discipline applies to backups and logs, which have a way of growing without limit if nobody sets a retention policy.

Watch the cost of moving data

One of the most surprising lines on a cloud bill is data transfer. Moving data between regions, or out of the cloud to the internet, often costs more than people expect. We design systems so that chatty components live close to one another and so that large transfers are deliberate rather than accidental. A caching layer in the right place can dramatically cut both latency and transfer costs at the same time.

Managed services: convenience versus control

Managed services are wonderful for removing operational burden, but their pricing can be subtle. A managed database that costs a little more per month might save far more in the engineering time you would otherwise spend operating it yourself — or it might lock you into a pricing model that punishes growth. We weigh these honestly, case by case, and we are clear with clients about the trade-off between paying for convenience and retaining control.

Make cost visible

You cannot manage what you cannot see. We tag resources so that costs can be attributed to the systems and teams that incur them, and we set up budgets and alerts so that an unexpected jump triggers an email rather than a quarterly surprise. When the people building a system can see what it costs, they make better decisions almost automatically. Cost stops being a finance problem discovered after the fact and becomes a design consideration discussed up front.

Reliability and thrift are not opposites

It is tempting to assume that spending less means accepting more risk, but in our experience the two often align. The discipline of understanding your load, removing waste, and watching your usage is the same discipline that produces reliable, well-understood systems. A right-sized, well-monitored architecture is both cheaper to run and easier to operate. The goal is not the lowest possible bill; it is a bill you can explain, line by line, and a system that is worth every figure on it.


Written by the Arcwell engineering team. If you're wrestling with something similar, we're happy to compare notes.