What a production
cluster actually costs
The same Kubernetes cluster, priced on EKS, GKE, DOKS and Hetzner, at four sizes. Matched vCPU and RAM per node, list price, on-demand, ex-VAT, 730 hrs/mo, EU regions. Every row shows the exact instance so you can check it against your own bill.
Short version: at the production baseline Hetzner is 42% cheaper than EKS before a byte of traffic moves. Then egress turns it into a rout. The numbers, and the caveats we'd raise against ourselves, are below.
The floor
3 nodes, each running control plane and workloads · 1 LB · genuinely HA| Build | Region | 3× node | + LB | Total / mo |
|---|---|---|---|---|
| 3× CX23 · 2/4 s (Intel) | EU | €16.47 | €7.49 | ≈ $26 |
| 3× CAX11 · 2/4 s (Arm) | EU | €17.97 | €7.49 | ≈ $27 |
| 3× CX33 · 4/8 s (Intel) | EU | €25.47 | €7.49 | ≈ $36 |
| 3× CPX11 · 2/4 s (AMD) | US-West (hil) | $61.47 | $8.59 | ≈ $70 |
| 3× CPX21 · 4/8 s (AMD) | US-East (ash) | $112.47 | $8.59 | ≈ $121 |
Etcd quorum across three nodes survives any one of them. Postgres runs in-cluster and storage is single-attach — add the Patroni and DRBD tiers as you grow. Sub-$40 HA is EU-only: the Intel and Arm lines don't exist in the US.
Small · non-HA
3 nodes @ 4 vCPU / 8 GB · 1 LB · 100 GB — dev and staging| Provider | Node × 3 | Control plane | LB | Storage | Total / mo |
|---|---|---|---|---|---|
| Hetzner | CPX32 · 4/8 s | folded into node ($0) | $8 | $5 | ≈ $129 |
| DOKS | Basic · 4/8 s | free ($0) | $12 | $10 | ≈ $166 |
| GKE | e2-custom-4-8192 · 4/8 s | free zonal ($0) | $18 | $10 | ≈ $292 |
| EKS | c6i.xlarge · 4/8 d | $73 (mandatory) | $16 | $10 | ≈ $524 |
EKS charges its $73 control-plane fee even on a non-HA dev cluster. On Hetzner's cheaper Intel line the same config is ≈ $41.
Medium · HA
4 workers @ 4 vCPU / 16 GB + HA control plane · 2 LB · 500 GB — the production baseline| Provider | Worker × 4 | HA control plane | LB | Storage | Total / mo | vs Hetzner |
|---|---|---|---|---|---|---|
| Hetzner | CCX23 · 4/16 d | 3× CPX22 (~$63) | $16 | $27 | $478 | — |
| GKE | e2-standard-4 · 4/16 s | regional $73 | $37 | $50 | $590 | +23% |
| DOKS | GP · 4/16 d | +$40 | $24 | $50 | $618 | +29% |
| EKS | m5.xlarge · 4/16 d | $73 | $33 | $48 | $825 | +73% |
This is the shape our managed tier runs. Hetzner's CCX row is dedicated vCPU while GKE's e2 is shared — cheaper and the stronger class.
Large · HA
8 workers @ 8 vCPU / 32 GB + HA control plane · 3 LB · 2 TB| Provider | Worker × 8 | HA control plane | LB | Storage | Total / mo | vs Hetzner |
|---|---|---|---|---|---|---|
| Hetzner | CCX33 · 8/32 d | 3× CPX32 (~$115) | $24 | $108 | ≈ $1,444 | — |
| GKE | e2-standard-8 · 8/32 s | regional $73 | $55 | $200 | ≈ $2,050 | +42% |
| DOKS | GP · 8/32 d | +$40 | $36 | $200 | ≈ $2,292 | +59% |
| EKS | m5.2xlarge · 8/32 d | $73 | $49 | $190 | ≈ $2,999 | +108% |
The gap widens with scale: control-plane fees are flat, but per-node and per-GB margins compound.
Then egress makes it a rout
Every table above is before traffic. Push 5 TB/mo outbound — a modest API load| Hetzner (EU) | DOKS | GKE | EKS | |
|---|---|---|---|---|
| Egress on 5 TB/mo | $0 | $0 | ≈ $600 | ≈ $450 |
Hetzner EU includes 20 TB per server (overage €1/TB) and DigitalOcean pools a free allotment. GKE bills $0.12/GB and EKS $0.09/GB — on a busy cluster, egress alone can cost more than the entire Hetzner bill.
Hetzner EU vs US
The same cluster in two regions — the gap is structural, not just FX| EU (fsn / nbg / hel) | US-West (hil) | US-East (ash) | |
|---|---|---|---|
| Cheapest shared shape | CX23 €5.49 · CAX11 €5.99 | CPX11 $20.49 | CPX21 $37.49 |
| Dedicated CCX23 (4/16) | €85.99 (~$93) | $102.99 (+11%) | $102.99 (+11%) |
| Cheapest 3-node HA | ~$26 | ~$70 | ~$121 |
| Medium·HA config total | $478 | ~$516 | ~$516 |
| Included traffic / server | 20 TB | 1 TB | 1 TB |
The cheap Intel and Arm lines are EU-exclusive, and US regions include 1 TB of traffic per server against the EU's 20 TB. Stay in the EU unless you need US latency — and if you do, the West is the cheaper footprint.
Where this comparison is weakest
- A managed control plane is vendor-run and SLA-backed. Here you own the three controllers — Terraform, Ansible and ArgoCD stand them up and keep them healed, so the operational delta is small, but it is not zero.
- These are list prices. The hyperscalers drop 30–60% under 1–3 year commitments and savings plans. Hetzner doesn't offer those because its list price is already lower — but if you are willing to commit for three years, close the gap yourself before deciding.
- GKE's e2 rows are shared vCPU. Matching Hetzner's dedicated CCX against GKE n2 or c2 widens the gap rather than narrowing it, so we left the cheaper comparison in.
- Hetzner has no managed database, no S3-compatible object storage in every region, and a smaller service catalogue. If you lean on twenty AWS services, this comparison is not really about you.
Check it against your own bill
These are list prices against a matched spec. Yours will differ — reserved instances, egress patterns, storage classes. For $600 we read your actual cluster and cloud bill and hand you a short report: what you pay now, what the same workload costs on Hetzner, what moving takes, and what we'd flag before you try. The report is yours whether or not you move.
Or run it yourself — the cluster in these tables is open source. If you'd rather not hold the pager, we operate it from $399/mo, about $1,477/mo all-in for production against roughly $9,825/mo if you staff it yourself.