Cloud bills rarely jump overnight. They creep up: a test server nobody switched off, snapshots that pile up every day, a bigger instance chosen "just to be safe". A year later, nobody remembers what half of it is for.
If you want to reduce AWS costs, these are the seven overspends we see most often in small and mid-sized businesses. Most apply to Azure and Google Cloud too.
1. Servers that are bigger than they need to be
Many servers are sized for a launch-day guess and never revisited. Check CPU and memory use over the last month in CloudWatch. If a server rarely goes above 20 to 30 percent, it can usually move to a smaller size.
Newer instance families are often cheaper for the same work, and AWS's Graviton (ARM-based) instances can lower costs further for software that supports them, which includes most Linux web stacks.
2. Resources nobody uses any more
Look for:
- Stopped instances with storage still attached (you pay for the storage)
- Unattached EBS volumes left behind after a server was deleted
- Old load balancers, test environments and forgotten regions
- Elastic IP addresses not attached to anything
A simple rule helps: every resource gets a tag saying who owns it and what it's for. Anything without a tag gets questioned.
3. Snapshots and backups that never expire
Backups are essential, but keeping every daily snapshot forever isn't. Set lifecycle rules so old snapshots are deleted automatically, for example daily backups for 14 days, weekly for 3 months and monthly for a year. Move older files in S3 to cheaper storage classes with S3 lifecycle policies.
Just make sure someone tests a restore regularly. Our guide on what a server care plan should include explains why.
4. Older, more expensive disk types
If your servers still use gp2 EBS volumes, switching to gp3 usually costs less for the same or better performance, and the change can be made without downtime. It's one of the easiest savings on most accounts.
5. Data transfer and NAT gateway charges
Data going out to the internet, between regions or through a NAT gateway is charged separately, and it's easy to miss. Common fixes include putting a CDN such as CloudFront in front of websites, keeping services that talk to each other in the same region, and using VPC endpoints so traffic to S3 doesn't pass through a NAT gateway.
6. Paying full price for servers that run all the time
On-demand pricing is flexible but expensive for servers that run 24 hours a day. AWS Savings Plans and Reserved Instances offer large discounts, which AWS says can reach up to 72 percent, in exchange for a one- or three-year commitment. Commit only for the steady base load you're confident about, after you've right-sized your servers.
7. Small charges that add up
Since 2024, AWS charges for every public IPv4 address, whether or not it's in use. Add idle IPs, detailed monitoring you never look at, log groups that keep data forever, and unused licences, and small charges can add up to a noticeable share of the bill.
Set up guard rails
Once the bill is under control, keep it there:
- AWS Budgets: set a monthly budget and get an email alert at 80 percent.
- Cost Anomaly Detection: get alerted when spending suddenly changes.
- Monthly review: spend 30 minutes each month on Cost Explorer, looking at the top five services and anything new.
Cost and reliability go together
The goal isn't the cheapest possible bill. It's paying only for what keeps your systems fast, secure and backed up. A well-run cloud account is usually both cheaper and more reliable.
Our server and cloud management plans include monitoring, patching, backups and a regular cost review across AWS, Azure and Google Cloud. If you'd like an independent look at your bill first, our IT advisory service covers cost optimisation, or start with a free IT health check.