How we price the cloud
The price figure on the front page is our own calculation, not a vendor’s. Here are the rules, the nine providers and what each system costs – including what does not speak for us.
What do five typical systems cost at nine providers?
Monthly list price as an index: 100 is the cheapest American provider for each system. Machines or containers, database, storage and traffic; no licences or discounts.Monthly list price in euros, excluding VAT. The bars are the same: the dashed line is the cheapest American provider for each system. No licences or discounts.
American providers European providers 100 = the cheapest American Cut short: the bar is longer, the number is the real one
Serverless web app
- Azure 170€712
- AWS 100€418
- Google Cloud 129€539
- Scaleway 96€400
- OVHcloud coming soon
- STACKIT 170€709
- T-Systems 146€610
- UpCloud not offered
- Hetzner not offered
Kubernetes web app
- Azure 122€1,346
- AWS 107€1,176
- Google Cloud 100€1,100
- Scaleway 69€754
- OVHcloud 89€983
- STACKIT 135€1,479
- T-Systems 163€1,795
- UpCloud² 64€709²
- Hetzner¹ 55€610¹
Records management
- Azure 115€1,330
- AWS 106€1,231
- Google Cloud 100€1,160
- Scaleway 82€947
- OVHcloud 94€1,090
- STACKIT 139€1,618
- T-Systems 152€1,765
- UpCloud² 83€958²
- Hetzner¹ 47€547¹
Line-of-business system
- Azure 133€1,670
- AWS 110€1,378
- Google Cloud 100€1,254
- Scaleway 85€1,072
- OVHcloud 126€1,574
- STACKIT 149€1,870
- T-Systems 173€2,176
- UpCloud² 79€997²
- Hetzner¹ 50€629¹
Data platform
- Azure 124€1,883
- AWS 110€1,660
- Google Cloud 100€1,515
- Scaleway 92€1,397
- OVHcloud 90€1,356
- STACKIT 163€2,475
- T-Systems 187€2,840
- UpCloud² 77€1,171²
- Hetzner¹ 55€836¹
Five systems
Each system is a bill of materials we wrote from the systems our clients actually run, sized for a typical company. The serverless web app is modelled on Kvarters, which we built ourselves and moved from Azure to Scaleway: eight apps in serverless containers and PostgreSQL in HA.
| System | Machines | PostgreSQL | Object storage | Traffic out | Other |
|---|---|---|---|---|---|
| Serverless web app Web apps and APIs in containers the provider runs and scales – always on, with a database in HA. Modelled on Kvarters, which we moved from Azure to Scaleway in 2026. | 6 containers × 1 vCPU / 2 GB, always on | 2 vCPU / 8 GB, 100 GB, HA | 100 GB | 200 GB | – |
| Kubernetes web app A customer portal on four Kubernetes nodes with a database in HA. | Kubernetes, 4 × 4 vCPU / 16 GB, 50 GB disk | 4 vCPU / 16 GB, 200 GB, HA | 1 TB | 2 TB | load balancer, control plane |
| Records management Cases and documents: little compute, a lot of storage. | 2 × 4 vCPU / 16 GB, 100 GB disk | 4 vCPU / 16 GB, 500 GB, HA | 20 TB | 500 GB | load balancer |
| Line-of-business system An internal business system with a large database in HA. | 3 × 4 vCPU / 16 GB, 100 GB disk | 8 vCPU / 32 GB, 500 GB, HA | 2 TB | 100 GB | load balancer |
| Data platform Analytics and reporting: large machines and a lot of data. | 4 × 8 vCPU / 32 GB, 100 GB disk | 8 vCPU / 32 GB, 1 TB | 10 TB | 500 GB | – |
Kvarters also runs one small Kubernetes node for database jobs, because Scaleway’s serverless jobs cannot reach the private network yet. It is not counted here: at the other providers such jobs run in the private network without one.
Nine providers, nearest Denmark
Three American and six European, each in the region nearest Copenhagen that the provider prices. Prices differ from region to region, so we price where a Danish customer would choose.
| Provider | Region | Location | Source | |
|---|---|---|---|---|
| HYPERSCALERS | Azure | denmarkeast | Denmark East | price list |
| AWS | eu-north-1 | Stockholm | price list | |
| Google Cloud | europe-north2 | Stockholm | price list | |
| PaaS | Scaleway | nl-ams-1 | Amsterdam | price list |
| OVHcloud | DE1 | Frankfurt | price list | |
| STACKIT | eu01 | Germany | price list | |
| T-Systems | eu-de | Biere | price list | |
| IaaS++ | UpCloud | dk-cph1 | Copenhagen | price list |
| Hetzner | fsn1 | Falkenstein | price list |
Every price can be checked: the link goes to the provider’s own price list, and the whole calculation – every source, every machine and every line – is open as data. The whole calculation as JSON (2026-Q4).
The rules
- Each machine and database is the cheapest current type with at least the CPU and memory the system needs. Dedicated vCPUs where the provider sells them; shared only where it does not, and then the bar says so.
- Arm machines count where they are cheapest. That gives the American providers their best price, so the comparison can only get harder for the European ones.
- HA means the provider’s own solution with a standby. Storage is counted for each node where the provider stores the data more than once.
- Hetzner sells neither managed PostgreSQL nor Kubernetes. There we price the database as machines with disks and the control plane as one machine. The work of running them is not in the price.
- A month is 730 hours everywhere. Traffic counts only beyond the provider’s free allowance. Load balancer and Kubernetes are the provider’s production tier.
- On-demand list prices, excluding VAT, licences and discounts. Converted to euros and kroner at the ECB reference rate on the day the prices were fetched.
- Serverless containers count only where the provider sells a service for them; Kubernetes or machines do not. Azure Container Apps is priced in Sweden Central, because the service has no prices in Denmark East. OVHcloud has serverless containers announced as “coming soon”; AI Deploy can run containers but is built for AI models and is not counted.
- Assumed, not confirmed by the providers: that Scaleway and T-Systems bill the storage of both nodes in an HA database. That makes them dearer in the figure, not cheaper.
With a one-year commitment
The American providers give a substantial discount for a one-year commitment; most European ones sell no such commitment. The table shows the same index on those prices. So price alone is not always an argument for moving. But it is rarely an argument for staying.
| Serverless web app | Kubernetes web app | Records management | Line-of-business system | Data platform | ||
|---|---|---|---|---|---|---|
| HYPERSCALERS | Azure | 172 | 107 | 102 | 113 | 111 |
| AWS | 100 | 101 | 102 | 103 | 105 | |
| Google Cloud | 140 | 100 | 100 | 100 | 100 | |
| PaaS | Scaleway | 127 | 86 | 95 | 111 | 121 |
| OVHcloud | coming soon | 108 | 107 | 159 | 110 | |
| STACKIT | 225 | 170 | 162 | 193 | 215 | |
| T-Systems | 169 | 160 | 149 | 174 | 190 | |
| IaaS++ | UpCloud | not offered | 81 | 96 | 103 | 102 |
| Hetzner | not offered | 70 | 55 | 65 | 72 |
What each system costs
Per provider: the monthly price and the machines and database the rules chose. The numbers are the ones in the figure.
Serverless web app
| Provider | A month | One-year commitment | Machines | Database | |
|---|---|---|---|---|---|
| HYPERSCALERS | Azure | €712 | €542 | 6 × Container Apps (Consumption), 1 vCPU / 2 GB, always on | General Purpose Dadsv5 2 vCore, zone-redundant HA |
| AWS | €418 | €315 | 6 × Fargate (Arm), 1 vCPU / 2 GB, always on | db.m6g.large Multi-AZ | |
| Google Cloud | €539 | €441 | 6 × Cloud Run (instance-based), 1 vCPU / 2 GB, always on | Enterprise db-custom-2-8192, regional HA | |
| PaaS | Scaleway | €400 | €400 | 6 × Serverless Containers, 1 vCPU / 2 GB, always on | DB-POP2-2C-8G HA |
| OVHcloud | coming soon (announced by the provider) | ||||
| STACKIT | €709 | €709 | 6 × Cloud Foundry, 1 vCPU / 2 GB, always on | PostgreSQL-Flex-4.8-Replica + 3 Performance 2 disks | |
| T-Systems | €610 | €534 | 6 × Cloud Container Instance, 1 vCPU / 2 GB, always on | db.x1.large.4.ha.pg | |
| IaaS++ | UpCloud | not offered | |||
| Hetzner | not offered | ||||
Kubernetes web app
| Provider | A month | One-year commitment | Machines | Database | |
|---|---|---|---|---|---|
| HYPERSCALERS | Azure | €1,346 | €934 | 4 × D4ps_v6 | General Purpose Dadsv5 4 vCore, zone-redundant HA |
| AWS | €1,176 | €884 | 4 × m6g.xlarge | db.m6g.xlarge Multi-AZ | |
| Google Cloud | €1,100 | €872 | 4 × e2-standard-4 | Enterprise db-custom-4-16384, regional HA | |
| PaaS | Scaleway | €754 | €754 | 4 × STANDARD2-A4C-16G | DB-POP2-4C-16G HA |
| OVHcloud | €983 | €938 | 4 × b3-16 | Production B3-16 | |
| STACKIT | €1,479 | €1,479 | 4 × g2a.4d | PostgreSQL-Flex-8.16-Replica + 3 Performance 2 disks | |
| T-Systems | €1,795 | €1,392 | 4 × c4.xlarge.4 | db.x1.xlarge.4.ha.pg | |
| IaaS++ | UpCloud shared vCPU | €709 | €709 | 4 × CLOUDNATIVE-4xCPU-16GB | PostgreSQL standard 4xCPU-16GB, 2 nodes |
| Hetzner self-run Kubernetes, self-run database | €610 | €610 | 4 × ccx23 | 2 × ccx23 |
Records management
| Provider | A month | One-year commitment | Machines | Database | |
|---|---|---|---|---|---|
| HYPERSCALERS | Azure | €1,330 | €1,015 | 2 × D4ps_v6 | General Purpose Dadsv5 4 vCore, zone-redundant HA |
| AWS | €1,231 | €1,018 | 2 × m6g.xlarge | db.m6g.xlarge Multi-AZ | |
| Google Cloud | €1,160 | €1,000 | 2 × e2-standard-4 | Enterprise db-custom-4-16384, regional HA | |
| PaaS | Scaleway | €947 | €947 | 2 × STANDARD2-A4C-16G | DB-POP2-4C-16G HA |
| OVHcloud | €1,090 | €1,068 | 2 × b3-16 | Production B3-16, 470 GiB | |
| STACKIT | €1,618 | €1,618 | 2 × g2a.4d | PostgreSQL-Flex-8.16-Replica + 3 Performance 2 disks | |
| T-Systems | €1,765 | €1,488 | 2 × c4.xlarge.4 | db.x1.xlarge.4.ha.pg | |
| IaaS++ | UpCloud shared vCPU | €958 | €958 | 2 × CLOUDNATIVE-4xCPU-16GB | PostgreSQL standard 4xCPU-16GB, 2 nodes |
| Hetzner self-run database | €547 | €547 | 2 × ccx23 | 2 × ccx23 |
Line-of-business system
| Provider | A month | One-year commitment | Machines | Database | |
|---|---|---|---|---|---|
| HYPERSCALERS | Azure | €1,670 | €1,089 | 3 × D4ps_v6 | General Purpose Dadsv5 8 vCore, zone-redundant HA |
| AWS | €1,378 | €993 | 3 × m6g.xlarge | db.m6g.2xlarge Multi-AZ | |
| Google Cloud | €1,254 | €967 | 3 × e2-standard-4 | Enterprise db-custom-8-32768, regional HA | |
| PaaS | Scaleway | €1,072 | €1,072 | 3 × STANDARD2-A4C-16G | DB-POP2-8C-32G HA |
| OVHcloud | €1,574 | €1,541 | 3 × b3-16 | Production B3-32 | |
| STACKIT | €1,870 | €1,870 | 3 × g2a.4d | PostgreSQL-Flex-16.32-Replica + 3 Performance 2 disks | |
| T-Systems | €2,176 | €1,680 | 3 × c4.xlarge.4 | db.x1.2xlarge.4.ha.pg | |
| IaaS++ | UpCloud shared vCPU | €997 | €997 | 3 × CLOUDNATIVE-4xCPU-16GB | PostgreSQL standard 8xCPU-32GB, 2 nodes |
| Hetzner self-run database | €629 | €629 | 3 × ccx23 | 2 × ccx33 |
Data platform
| Provider | A month | One-year commitment | Machines | Database | |
|---|---|---|---|---|---|
| HYPERSCALERS | Azure | €1,883 | €1,280 | 4 × D8ps_v6 | General Purpose Dadsv5 8 vCore |
| AWS | €1,660 | €1,209 | 4 × m6g.2xlarge | db.m6g.2xlarge | |
| Google Cloud | €1,515 | €1,154 | 4 × e2-standard-8 | Enterprise db-custom-8-32768 | |
| PaaS | Scaleway | €1,397 | €1,397 | 4 × STANDARD2-A8C-32G | DB-POP2-8C-32G |
| OVHcloud | €1,356 | €1,267 | 4 × b3-32 | Discovery B3-32, 940 GiB | |
| STACKIT | €2,475 | €2,475 | 4 × g2a.8d | PostgreSQL-Flex-16.32-Single + 1 Performance 2 disk | |
| T-Systems | €2,840 | €2,190 | 4 × c4.2xlarge.4 | db.x1.2xlarge.4.pg | |
| IaaS++ | UpCloud shared vCPU | €1,171 | €1,171 | 4 × CLOUDNATIVE-8xCPU-32GB | PostgreSQL standard 8xCPU-32GB, 1 node |
| Hetzner self-run database | €836 | €836 | 4 × ccx33 | ccx33 |
Every quarter
We fetch the prices again every quarter, with the same bills of materials and rules. A program reads the providers’ own price lists and recalculates everything; the date is under the figure. If the prices are more than a quarter old, the page says so.
Our interest
Nomadics helps companies move to European cloud, runs on Scaleway itself and has applied for partnership with Scaleway and OVHcloud. That is why we have written the rules down, priced the American providers at their best and shown the European ones that are not cheaper.
Your own systems rarely fit a typical bill of materials. The assessment does.