Why Your Cloud Bill Keeps Growing — and How to Control It
Idle resources, right-sizing, tagging policies, and cloud cost optimisation. If you're on AWS, GCP, or Azure, you've probably encountered these problems.
It usually starts the same way. Your team spins up cloud infrastructure, things move fast, and for the first few months the bills look manageable. Then one month you open the invoice and wonder when it got this big. You dig in, but the breakdown doesn’t make sense. Resources you don’t recognise. Services you’re not sure anyone is using.
This is one of the most common conversations we have with growing companies. The good news is that a large proportion of cloud waste comes from a handful of predictable problems — and most of them have straightforward fixes.
The Most Common Sources of Cloud Waste
1. Orphaned and Idle Resources
Cloud environments accumulate forgotten resources over time. A test environment spun up for a project that ended six months ago. A storage volume left behind after a database migration. A load balancer still running long after the instances behind it were shut down.
These orphaned resources are easy to miss, especially as teams grow and cloud accounts multiply. Each one is a small charge — but together they add up, quietly, month after month.
2. Over-Provisioned Instances
“Let’s go with the bigger instance, just to be safe” is a perfectly reasonable instinct. In an on-premise world, over-provisioning is often the right call — hardware is hard to change. In the cloud, it’s expensive and unnecessary.
If your instances are running at 10–15% CPU utilisation on average, you’re paying for capacity that’s sitting idle. Rightsizing — moving to a smaller instance type — takes minutes and can reduce compute costs substantially. The question to ask is simple: what percentage of its capacity is this machine actually using?
3. No Tagging — No Visibility
Without a consistent tagging strategy, it’s nearly impossible to understand where your money is going. Knowing your total monthly bill is $8,000 tells you almost nothing. Which product feature is driving costs? Which environment? Which team?
Common gaps include resources with no project label, no distinction between production, staging, and development environments, and no cost centre attribution. Without this information, cost optimisation is guesswork. You can’t cut what you can’t see.
4. Dev and Test Environments Running 24/7
Production environments need to be available around the clock. Staging and development environments, used by engineers during working hours, do not.
Yet in most companies these environments run continuously, including nights and weekends when nobody is using them. A simple scheduled shutdown policy — off at 8pm, back on at 8am on weekdays — can reduce the cost of non-production environments by 60–70%. This is one of the easiest wins in cloud cost management.
5. Auto-Scaling Configured Poorly or Not at All
Auto-scaling done well means you pay for capacity when you need it and not when you don’t. Auto-scaling done badly means either your system can’t handle load spikes, or it scales up and never scales down again.
A common problem is setting minimum capacity too high. If your auto-scaling group always maintains 10 instances as a floor, the scaling policy is effectively irrelevant — you’re paying for 10 instances regardless of actual demand.
6. Data Transfer Costs — The Line Item Nobody Reads
Compute and storage costs get most of the attention, but data transfer charges are often the biggest surprise on a cloud bill. Traffic between availability zones within the same region carries a cost. Cross-region traffic is more expensive. Traffic leaving the cloud to the internet is more expensive still.
For systems that move large volumes of data — analytics pipelines, media processing, log aggregation — transfer costs can become a significant portion of the bill without anyone noticing until it’s already a problem.
Practical Steps to Get Control
Implement a Tagging Strategy Now
A minimal tagging set covers: project, environment (prod/staging/dev), team, and owner. These four labels alone will transform your cost visibility. AWS Cost Explorer, GCP Billing, and Azure Cost Management can all break down spending by tag, giving you the attribution you need to make decisions.
Make tagging mandatory for new resources and work through a prioritised backlog to tag existing ones.
Start With Rightsizing
AWS Compute Optimizer and similar tools analyse your historical usage and identify instances that could safely be downsized. Don’t apply these recommendations blindly — review them in context — but don’t ignore them either. On large instance types, rightsizing often delivers 20–40% cost reductions with no meaningful impact on performance.
Automate Dev Environment Shutdowns
A simple scheduled rule can shut down non-production environments outside working hours. In AWS this is a straightforward Lambda and EventBridge combination. The setup takes a few hours and the savings are immediate. This is one of the highest-return, lowest-effort actions available.
Set Up Budget Alerts
Define a budget, then set an alert when spending approaches or exceeds it. AWS Budgets, GCP Budget Alerts, and Azure Cost Alerts all support this. It takes fifteen minutes to configure and means you’ll never again discover a billing problem at the end of the month. Surprisingly, many companies haven’t done this.
Use Reserved Instances for Predictable Workloads
If you know a workload will run for the next one to three years, Reserved Instances or Savings Plans offer 30–60% discounts compared to on-demand pricing. This requires a commitment, so it shouldn’t be applied to uncertain or experimental workloads. But for stable production infrastructure, the financial case is clear.
When Not to Obsess Over Cloud Costs
Cost optimisation is not always the right priority. For an early-stage startup still searching for product-market fit, spending significant time on infrastructure costs is usually the wrong focus. Optimising an architecture before you know what you’re building is premature at best, wasteful at worst.
The right time to take this seriously is when you can’t explain what you’re spending, when bills are growing faster than usage, or when infrastructure costs are becoming a meaningful factor in your growth plans. Visibility is the prerequisite for control.
If your cloud spend has become difficult to explain or you suspect there’s significant waste in your infrastructure, we’d be happy to look at it together. A free discovery call is a good starting point — we can help you identify where the biggest opportunities are and what the right order of priorities should be.
Found this useful?
If you want to take concrete steps on your technology decisions, let's talk. First call is free.
Book a Free Discovery Call