A SaaS company came to us after seeing their AWS bill grow month by month, and asked us to help them get things under control.
Within a short space of time, we implemented a series of optimisations that reduced their ongoing AWS spend from hundreds of dollars (or pounds, rather) per month to just a fraction of that, all while maintaining performance and reliability for their production systems.
Here’s how we did it.
Database Optimisations
The client was running on Aurora MySQL, which was no longer needed for their workload. We migrated them to a single-AZ RDS MySQL instance, which met their performance needs at a fraction of the cost.
We chose version 8.0 which will be supported by AWS for another 12 months because, whilst we couldn’t be certain it would be fully compatible with their existing codebase, it offered a much higher likelihood of working smoothly without code changes compared to jumping straight to the newer major release. The next version up (8.4.42) has support until 2029, but being a more recent release, it carried a higher risk of requiring compatibility fixes.
When we questioned exploring upgrading to 8.4.42 sooner rather than later, and creating a test database on 8.4.42 to test functionality, the cliented opted for just going to 8.0. This gives them minimal development / testing spend now, and gives them 12 months to see how their product may evolve – rather than spend thousands now testing functionality which they may be on the verge of rewriting.
The big win here was moving to a supported database, as AWS pile on monthly fees when you keep an unsupported database running. If you’ve seen a sudden hike in your costs, and haven’t upgraded anything for a while, this could well be the culprit.
Key database changes included:
- Removed extended support fees (~$175.58/month) by upgrading to a fully supported version.
- Eliminated Aurora I/O charges (~$138.23/month) by moving to provisioned storage billing.
- Provisioned 20GB storage instead of paying per I/O.
💡 Result: Their database costs dropped from $349.26/month → ~$22.14/month, delivering an annual saving of nearly $4,000.
Webserver Optimisations
We looked at how their staging and production environments were being used and found easy wins:
- Staging server: Shut down when not in use, saving ~$27.72/month.
- Production storage: Switched from gp2 to gp3, reducing EBS storage costs with no impact on performance.
AWS Backup & Resource Optimisations
Backups are essential, but they can quietly rack up unnecessary costs if left unchecked. We rebalanced retention policies to keep coverage sensible without overpaying:
- Reduced daily backup retention from 14 to 4 days.
- Reduced monthly backup retention from 12 to 4 months.
- Released unused Elastic IPs and deleted stopped instances to eliminate idle charges.
The Bigger Picture
These changes alone represent a dramatic reduction in costs while keeping production performance intact. But AWS cost management is never “done” – usage patterns evolve, workloads shift, and costs can creep back up. That’s why we always recommend monitoring bills closely over time.
For further savings, Reserved Instances (RIs) can be an excellent option. By committing to certain resources for 1–3 years, you can save 30–70% compared to on-demand pricing. For workloads like production databases or always-on web servers, they’re often a smart long-term move.
The Outcome
By tackling databases, servers, backups, and idle resources, we helped this client cut their AWS bill by more than 85% without sacrificing reliability. What was once a major monthly expense is now a much more manageable, predictable cost, freeing them up to invest elsewhere in their business.
If your AWS bill is climbing faster than you’d like, there are almost always opportunities to optimise. The key is knowing where to look. Please contact us if you’d like a review of your current AWS infrastructure and spend.