I have run workloads on all three hyperscalers over my career — seriously on AWS and GCP, reluctantly on Azure — and I have watched enough UK and EU companies pick one that I can tell you, approximately, how the picking usually goes wrong. The pricing page is never the story. The cost of being on a particular cloud is dominated by what you can't see.

Everything below is framed in pounds and with UK data-residency considerations in mind. If you're comparing these clouds from Dublin, Frankfurt or London, the analysis is roughly the same. If you're in North America it's a different story.

The headline pricing is misleading

On-demand compute, storage, and network prices, if you squint, are within about 10% of each other across the three clouds for most instance families. AWS is typically a shade cheaper for committed compute; GCP's sustained-use discounts benefit irregular workloads without requiring a commitment; Azure is competitive only if you have an enterprise agreement with Microsoft, which lots of UK enterprises do.

The 10% band is too narrow to base a decision on, because the variance introduced by the rest of the bill is much larger.

The five costs that actually dominate

1. Egress

All three clouds charge painfully for traffic leaving them. Within a region, free. To another region, expensive. To the public internet, brutal. For a consumer product serving the UK from eu-west-2, a rough rule of thumb is that egress can be 15-25% of the monthly cloud bill. I have seen it higher.

GCP has historically been marginally cheaper on egress, but the difference is now within a few percent. The bigger lever is architectural — caching at the edge, compressing aggressively, and using private interconnects for any cross-cloud or cross-region traffic you really can't avoid.

2. Data transfer between availability zones

A line item that appears on your first month's bill and confuses everyone. Your application is a couple of microservices in the same region; it should be cheap. It is not, because the services are in different AZs for HA, and every cross-AZ call costs pennies that add up to thousands.

The architectural fix is affinity: keep traffic within an AZ where you can, with cross-AZ as the failover path, not the default. AWS, GCP and Azure all charge this, but the pricing is not identical and the defaults of their managed services (databases, load balancers) differ. Read the small print or don't be surprised.

3. Managed service markup

Running Postgres on a VM costs you about £X a month. Running the equivalent on RDS costs you about 2.5X. On CloudSQL roughly the same. On Azure Database for PostgreSQL similar. The managed markup is enormous and, for most teams most of the time, entirely worth it because the alternative is running your own database, which is a full-time job.

The worst decision is the middle: half-managed, where you've got RDS but you also have a custom backup script, a custom HA failover process and a bespoke monitoring pipeline. You've paid the markup and kept the ops work. Either go all-in on the managed service or self-host deliberately.

4. The cost of your people

A mid-level cloud engineer in London costs roughly £85-120k all-in. If your cloud choice means you need two of them instead of one, that's the entire infrastructure bill of a small Series A company. The biggest cost multiplier of picking a cloud is how long it takes your team to be productive on it.

UK hiring, at the time of writing: AWS is the easiest to hire for, by a margin. GCP is feasible if you're in London; harder elsewhere. Azure skills are plentiful in UK enterprise but rarer in the start-up world. Plan for this.

5. The lock-in tax

Every cloud has proprietary services that are genuinely excellent and that you cannot reproduce anywhere else. BigQuery. DynamoDB. Cognitive Services. Once your product depends on them, leaving becomes a multi-year project. That's not fraud; it's fair exchange for a great service. But the ongoing negotiating position you have with the vendor gets worse the more you use them.

A pragmatic rule: use managed services freely for stateless layers, reluctantly for stateful layers, and only after a deliberate decision for your data warehouse. Your data warehouse is the thing that will lock you in the most expensively, and it's almost always worth making that choice consciously.

My rough recommendations

Pick the cloud your team can be productive on fastest. Everything else is a rounding error compared to the cost of a year of slow progress.

Nivaan