A cloud migration done "by the book" can still produce a bill 40% larger than necessary. Not because of the provider, but because of five habits that install themselves quietly.
1. Sizing against the historical peak
Many teams choose resource sizes based on the physical server they are replacing rather than on measured real usage. The result: instances running permanently at 8% utilisation.
2. Test environments that never stop
A staging environment identical to production, running 24 hours a day, costs as much as production. In most companies it is used eight hours a day, five days a week.
3. Cross-zone traffic
The cost of data transfer between availability zones is small per gigabyte and enormous at scale. We have seen systems where 30% of the bill came from internal traffic avoidable through a simple reorganisation of services.
4. Backups without an expiry policy
Backups accumulate indefinitely because nobody defined how long they should be kept. After three years, they cost more than the running system.
5. Managed services chosen out of inertia
A managed service is excellent when it saves you operational time. It becomes expensive when you use it for a workload that ran perfectly well on a €40-a-month virtual machine.
How we approach optimisation
We start with measurement rather than assumptions: consistent resource tagging, cost attribution per team and per service, then a list of actions ordered by saving against risk. The first three actions usually deliver 80% of the saving.