By Michał Puchała · 2026-05-18 · 8 min read
The real cost of EU cloud vs hyperscalers
Most companies considering a move to European cloud frame it as a sovereignty decision. The cost side of the equation deserves a closer look - list prices put EU providers two to ten times below the hyperscalers on compute, storage, databases and egress.

A directly comparable Linux virtual machine - two vCPUs, four gigabytes of RAM - costs around €30 per month on AWS in Frankfurt. The same machine costs about €20 on Scaleway in Paris, or €8 on Hetzner in Falkenstein. Object storage at rest is roughly 30% cheaper on Scaleway than on Amazon S3 before any egress charge is applied. Once egress enters the comparison, the gap widens further.
This article puts six providers side by side - AWS, Azure, GCP, Scaleway, OVHcloud and Hetzner - across four services, with both per-unit pricing and a typical annual cost for a mid-market workload.
The comparison
Numbers below are list prices published on each provider's pricing page as of 19 May 2026. The reference workload for the "typical annual" rows is a 200-person company running two production virtual machines (4 vCPU, 16 GB), two development virtual machines (2 vCPU, 4 GB), a 20 TB object-storage bucket read at about 25% per month, and one production managed PostgreSQL instance with high availability plus one development managed PostgreSQL instance. Each cell links to the provider's pricing page it was sourced from.
| Service | Metric | AWS | Azure | GCP | Scaleway | OVHcloud | Hetzner |
|---|---|---|---|---|---|---|---|
| Virtual machine | 2 vCPU / 4 GB, /month | €30 | €24 | €27 | €20 | €37* | €8 |
| Virtual machine | Typical annual | €4,150 | €4,000 | €4,150 | €2,400 | €2,700 | €840 |
| Object storage | Per GB / month | €0.021 | €0.017 | €0.020 | €0.015 | €0.013 | €0.002** |
| Object storage | Typical annual (20 TB) | €5,000 | €4,100 | €4,700 | €3,500 | €3,100 | €490** |
| Managed Postgres | 2 vCPU / 8 GB HA, /month | €263 | €166 | €172 | €123 | €346 | — |
| Managed Postgres | Typical annual (prod HA + dev) | €3,800 | €2,600 | €2,200 | €2,200 | €6,000 | — |
| Egress | Per GB to internet | €0.077 | €0.07 | €0.072 | €0.010 | €0 | €0 |
| Egress | Typical annual (5 TB/mo) | €4,600 | €4,200 | €4,300 | €600 | €0 | €0 |
| Annual total | On-demand / pay-as-you-go | €17,500 | €14,900 | €15,400 | €8,700 | €11,800 | €1,300 |
| Annual total | With provider discount tier*** | €15,000 | €13,400 | €13,600 | €8,300 | €10,500 | €1,300 |
* OVHcloud b3-8 has 2 vCore and 8 GB RAM - more memory than the 4 GB benchmark, because the b3 series starts at 8 GB. Hourly billing assumed; OVHcloud's monthly billing option is roughly half this rate. ** Hetzner Storage Box is SFTP/SMB rather than S3-compatible; included for backup-target use cases but not a like-for-like S3 replacement. Hetzner does not offer a native managed Postgres product; the cells are left blank to flag the catalogue gap rather than imply zero cost. *** "Provider discount tier" applies each provider's most relevant 1-year commitment or equivalent published discount: AWS Savings Plans (compute and RDS, around 30% off on-demand); Azure 1-year Reserved / Savings Plans (around 24% off VMs, 20% off Postgres - shown directly on Azure's pricing pages); GCP 1-year Compute Flexible CUD (around 28% off, also shown directly on GCP's pricing); Scaleway reserved instances on compute (around 15% off, smaller catalogue than the hyperscalers); OVHcloud monthly billing on instances (around 50% off hourly - not a 1-year commitment but the standard alternative to pay-per-hour). Storage and egress are not discounted in any column. Hetzner has no commitment-based discount; on-demand and discounted are identical. The exact discount each customer realises depends on workload utilisation - reserved capacity that goes unused gives back none of the saving.
What the table shows
Three patterns stand out.
First, for general-purpose workloads the European providers are not "competitive on price after sovereignty is taken into account." They are simply cheaper. Scaleway runs the same workload at about half the AWS cost; OVHcloud at about two-thirds; Hetzner at under 10%, with the caveat that the team has to run Postgres themselves. The hyperscalers cluster within a 15% band of each other; the cost gap is between that cluster and the European providers, not within either.
Second, the egress row dominates the difference. AWS, Azure and GCP charge between €0.07 and €0.08 per gigabyte for traffic to the public internet. Scaleway charges €0.01. OVHcloud removed its egress fees on object storage in December 2025, before the EU Data Act required it. Hetzner Cloud bundles 20 TB per instance per month. For a workload that reads its data, serves it to users, or moves it between regions, this single line item can equal the cost of compute, storage and databases combined.
Third, the table is not uniformly "EU cheaper, hyperscaler dearer." OVHcloud's managed Postgres at production-HA tier is more expensive per cluster than AWS RDS Multi-AZ - €346 against €263 per month. The pattern flips on that one line. EU providers win cleanly on compute, storage and egress; managed databases have more variation. Buyers who pick a provider on totals without looking line-by-line will sometimes be surprised.
Reserved or committed pricing closes part of the gap but not most of it. AWS Savings Plans, Azure Reserved Instances and GCP Committed Use Discounts cut compute and database costs by 20-30% for a one-year commitment. The hyperscaler annual total drops from around €15-17k to around €13-15k. The European providers' total drops more modestly because their on-demand rates are already close to their committed rates. The relative gap stays roughly the same.
The mental model most buyers carry is from a period when AWS undercut on-premise hosting and European providers were small. Both sides moved. Hyperscalers added new charges - Microsoft formalised twice-yearly currency adjustments for Azure in 2023 (raising EUR prices by 11% from April 2023, then cutting by 7.4% in February 2026 as the dollar weakened); AWS introduced a public IPv4 address charge in February 2024 of around €40 per address per year, applied universally regardless of usage. European providers moved the other way. Hetzner launched cheaper entry tiers in June 2024 and October 2025; Scaleway held prices flat for three years before an itemised June 2026 adjustment.
What the table doesn't show
The numbers above are list prices for compute, storage, managed databases and egress. They do not capture two further categories of cost that often decide which option actually wins.
The first is support and operational tooling. AWS Business support runs about 10% of monthly spend with a minimum; AWS Enterprise support is higher again. Observability stacks, log retention, monitoring agents add line items that compound at scale. European providers tend to be lighter on bundled tooling and heavier on included support tiers - the lines move differently but they exist on both sides.
The second is the managed-service catalogue. AWS, Azure and Google Cloud offer a much wider set of off-the-shelf managed services: serverless functions, managed Kafka, managed graph databases, global content networks, machine-learning training platforms. If a workload genuinely depends on one of these and the target provider has no equivalent, the comparison is not apples-to-apples. European providers are closing this gap - Scaleway, OVHcloud and STACKIT have all expanded their managed-service ranges materially in the last two years - but for a workload built on a specific AWS-only service, the migration remains an engineering project rather than a like-for-like swap. The list of such services shrinks each quarter.
Egress and the EU Data Act
Egress is the biggest single line item separating hyperscalers from European providers in the table above. For the reference workload it accounts for around 26% of the AWS bill and zero on OVHcloud and Hetzner. The regulatory clock is running on part of this.
Article 25 of the EU Data Act bans switching fees for cloud services as of 12 January 2027. From that date, hyperscalers cannot charge egress as a condition of leaving - exit egress on migration goes to zero by law. The European Commission's Data Act explainer confirms the timing.
Some providers moved ahead of the regulation. OVHcloud removed egress fees on object storage in December 2025, more than a year before the deadline. This closes the exit-egress cost but leaves the day-to-day egress gap, which is metered on operational reads, not migration events.
A 2026 migration to a hyperscaler pays exit fees as a real one-off. A 2027 migration writes them off. A 2028 operating cost on a hyperscaler still includes regular egress at whatever the provider charges. For buyers thinking about timing, the Data Act is a useful but narrow consideration. Delaying a hyperscaler exit by a year to save the switching fee makes financial sense in some cases. Delaying indefinitely does not.
Methodology
Regions: Frankfurt (eu-central-1) for AWS and S3; Germany West Central for Azure VMs and Postgres, West Europe for Azure storage and bandwidth; europe-west3 (Frankfurt) for GCP; Paris for Scaleway; France (Gravelines, Strasbourg, Roubaix) for OVHcloud; Falkenstein and Helsinki for Hetzner.
Conversion: Hourly rates are converted to monthly at 730 hours; USD figures are converted to EUR at 1 USD = 0.85 EUR.
Instance shapes used: AWS t3.medium and m5.xlarge; Azure B2pls v2 and D4 v4; GCP e2-medium and c4-standard-4; Scaleway PLAY2-NANO and PRO2-XS; OVHcloud b3-8 (8 GB RAM, larger than the 4 GB spec because b3 starts at 8) and b3-16; Hetzner CPX22 and CPX41.
Managed Postgres shapes used: AWS db.m5.large Multi-AZ for prod and db.t3.medium Single-AZ for dev; Azure DC2ads v6 General Purpose for prod and B2s Burstable for dev; GCP Cloud SQL custom 2 vCPU / 8 GB HA for prod and db-f1-micro for dev; Scaleway DB-PRO2-XXS for prod and DB-PLAY2-NANO for dev; OVHcloud Production B3-8 (2-node HA) for prod and Discovery B3-8 (single-node) for dev.
Snapshot date: 19 May 2026. List prices change.
Thinking about migration? Book a free consultation to discuss your situation.