Hetzner was the self-hosting cheat code for years: quote €3.79, ship 20 TB of traffic, and stop thinking about per-GB bills. On June 15, 2026, that single number stopped being true.
The German provider's second price adjustment in three months quietly split its catalog in two. If your Cluster API fleet defaults to an Intel CX or ARM CAX box, you paid about 30% more. If it defaults to an AMD CPX or dedicated CCX box — the lines most production fleets actually run — you paid 113% to 175% more, on top of an April hike that had already lifted prices up to 37%. The same three-node fleet can now cost €16.47 a month or €128.97 a month depending only on which family string is in your MachineDeployment.
If you are running Bex or any CAPH-based platform on Hetzner, "Hetzner is cheap" is no longer an answer. Which Hetzner is the answer.
The answer up front: one fleet, four bills
The workload is intentionally boring: a highly available fleet you would actually run — three nodes, the minimum that survives a single node loss with a quorum, spread across two Hetzner regions (FSN and HEL). We price the same three-node shape on four families, before and after June 15, using Hetzner's official Germany/Finland table (ex-VAT, ex-IPv4, hourly capped to monthly).
Small HA fleet — 3 nodes, the starter shape for Bex's default pool:
| Family | Example SKU (vCPU / RAM / disk) | 3 nodes before June 15 | 3 nodes after June 15 | Delta / yr | June hike alone |
|---|---|---|---|---|---|
| CAX11 (ARM, shared) | 2 vCPU / 4 GB / 40 GB | €13.47 | €17.97 | +€54.00 | +33% |
| CX23 (Intel, shared) | 2 vCPU / 4 GB / 40 GB | €11.97 | €16.47 | +€54.00 | +38% |
| CPX22 (AMD, shared) | 3 vCPU / 4 GB / 80 GB | €23.97 | €58.47 | +€414.00 | +144% |
| CCX13 (AMD, dedicated) | 2 vCPU / 8 GB / 80 GB | €47.97 | €128.97 | +€972.00 | +169% |
Medium HA fleet — 3 nodes sized for a real app + Postgres on the same pool:
| Family | Example SKU | 3 nodes before | 3 nodes after | Delta / yr |
|---|---|---|---|---|
| CAX31 | 4 vCPU / 8 GB / 80 GB | €47.97 | €62.97 | +€180.00 |
| CX43 | 4 vCPU / 8 GB / 80 GB | €35.97 | €47.97 | +€144.00 |
| CPX42 | 8 vCPU / 16 GB / 240 GB | €76.47 | €208.47 | +€1,584.00 |
| CCX23 | 4 vCPU / 16 GB / 160 GB | €94.47 | €257.97 | +€1,962.00 |
Two things to read off this before you read anything else:
- The cheapest fleet after June (€16.47 for 3× CX23) is still cheaper than the cheapest CPX fleet before June (€23.97). The price ladder inverted: a post-hike Intel shared box beats a pre-hike AMD shared box.
- The dedicated CCX13 fleet that cost €48 before now costs €129 — more than 2.6×. At that price it is no longer "a few euros more for isolation." It is a different budget line.
If your MachineDeployment still says cpx22 or ccx13 because that was the "best value" twelve months ago, you are sitting on the wrong line. The rest of this post shows exactly which line changed, by how much, and where the fleet math still favors self-hosting once you pick the right one.
What actually changed on June 15
The adjustment took effect at 08:00 CEST on June 15, 2026, for new orders and rescales; existing machines held pre-hike pricing until they were resized or recreated. Hetzner published the full table under docs.hetzner.com/general/infrastructure-and-availability/price-adjustment with old and new hourly and monthly caps. The story is not "everything up 30%." It is two different stories stapled together.
Germany / Finland (FSN / NBG / HEL) — the Bex default regions
All prices are € per month excl. VAT and excl. IPv4, capped from the hourly rate. Old is post-April-1 pricing; New is post-June-15.
ARM and Intel shared — the mild hike (+30% to +38%)
| SKU | Old | New | Increase |
|---|---|---|---|
| CAX11 | €4.49 | €5.99 | +33.4% |
| CAX21 | €7.99 | €10.49 | +31.3% |
| CAX31 | €15.99 | €20.99 | +31.3% |
| CAX41 | €31.49 | €40.99 | +30.2% |
| CX23 | €3.99 | €5.49 | +37.6% |
| CX33 | €6.49 | €8.49 | +30.8% |
| CX43 | €11.99 | €15.99 | +33.4% |
| CX53 | €22.49 | €29.49 | +31.1% |
AMD shared (CPX) and dedicated (CCX) — the sharp hike (+113% to +175%)
| SKU | Old | New | Increase |
|---|---|---|---|
| CPX22 | €7.99 | €19.49 | +144.0% |
| CPX32 | €13.99 | €35.49 | +153.7% |
| CPX42 | €25.49 | €69.49 | +172.6% |
| CPX52 | €36.49 | €100.49 | +175.4% |
| CPX62 | €50.49 | €129.99 | +157.5% |
| CCX13 | €15.99 | €42.99 | +168.9% |
| CCX23 | €31.49 | €85.99 | +173.1% |
| CCX33 | €62.49 | €138.49 | +121.6% |
| CCX43 | €124.99 | €275.99 | +120.8% |
| CCX53 | €249.99 | €533.49 | +113.4% |
| CCX63 | €374.49 | €853.49 | +127.9% |
US regions (ASH / HIL) saw the same split, cents off due to /€ rounding — CCX13 \19.99 → $50.99, CPX42 $29.99 → $81.99, CX23 $4.99 → $6.49. The shape, not the currency, is the point.
The naming rename tucked into the same update matters for audits: what used to be CPX11 became CPX22, CX22 became CX23, and so on, with an extra core or disk bump at the same tier. If you are grepping old Terraform for cx22 and finding nothing, that is why — the line was deprecated and the API now rejects it.
Hetzner cited a global DRAM and NVMe price shock driven by AI demand — contract DRAM up roughly 58–63% quarter-over-quarter in Q2 2026 per TrendForce, with HBM demand pulling commodity capacity — as the cost driver that landed hardest on RAM-heavy and dedicated-core SKUs. Whether that cost is fully passed through or partly margin is not public; that it landed on CPX/CCX first is public from the table.
The second hike on top of the first
June 15 was the second Hetzner cloud hike in 2026, not the first. A broader adjustment on April 1 had already lifted most cloud SKUs 30–37% and raised dedicated-server setup fees on April 29. The June percentages above are on top of the April prices — they are the delta from April's new baseline, not from January's.
That stacking matters for anyone still quoting the numbers that made Hetzner famous:
- "CX22 from €3.79" names a plan you can no longer order at a price that no longer exists. The entry SKU is now CX23 from €5.49 (or $6.49) per month — a different name, a different price, even before you count that the April→June cumulative is the only honest baseline.
- "Hetzner went up about 30%" is true for CX and CAX, flat wrong for CPX and CCX. Averaging the two hides the only decision that moves a fleet bill. In DE/FI the statement miscounts by 4×.
- Penny-rounding hides real drift too: rate tables that cached
CCX63 = €374.49still appear in comparison posts updated after June 15. That row is now €853.49 — the old price is literally less than half the current one.
None of this makes Hetzner expensive in absolute terms. A 3× CX23 fleet at €16.47 with 60 TB of included traffic (20 TB per node) still undercuts a single small VPS on most hyperscalers and a managed PaaS seat once workload traffic is included. It does make Hetzner two different prices depending on which family your automation picks when it scales. A platform that treats "Hetzner price" as a scalar is now modeling the wrong thing; it is a vector by family.
Fleet math: three real node pools
A fleet bill is not a single SKU. It is nodes × SKU price + load balancers + volumes + snapshots, with the SKU term dominating for the small fleets most Bex tenants start on. Load balancers (€5.65–€11.90) and volumes (€0.045/GB) did not move with the cloud hike, so we can hold them constant and compare the term that did.
We price three shapes you would actually declare in CAPH MachineDeployments. All prices are monthly € excl. VAT/IPv4, Germany/Finland, capped.
Shape 1: the Bex starter — 3 nodes
The default Bex quickstart is three nodes — enough for etcd quorum and for Kubernetes to reschedule around a failure. Before June 15, CPX22 was the community default ("3 vCPU for €7.99, with double the disk of CX23"). After June 15:
- 3× CX23: €16.47 — cheapest stable line, Intel shared, 2 vCPU / 4 GB / 40 GB per node, 60 TB pooled traffic.
- 3× CAX11: €17.97 — ARM, same class, 1.50€ more for Ampere efficiency. Best perf-per-watt if your images are multi-arch and capacity is available.
- 3× CPX22: €58.47 — 3.6× the CX23 fleet for one extra vCPU and double disk per node.
- 3× CCX13: €128.97 — 7.8× the CX23 fleet. You get a dedicated core and 8 GB instead of 4 GB per node, but you pay for it every hour even when the cores idle.
Annualized, the starter delta between the two cheapest and the two dearest fleets is €498 (CX23→CCX13) to €1,038 (CX23→CPX22). That pays for a year of the cheapest fleet twice over.
RAM-normalized, the gap widens: per GB of RAM per month, CX23 is about €1.37 (€5.49 / 4 GB), CAX11 about €1.50, CPX22 about €4.87, CCX13 about €5.37. The dedicated premium used to be ~30%; it is now ~290%. Disk is the same story — CPX22's extra 40 GB used to be "free" vs. CX23; now it carries its own €43.80 fleet surcharge.
Shape 2: the app + database — 3× 8-16 GB nodes
Once you put Postgres on the same pool or run a heavier API, you need 8–16 GB per node. The natural rungs are CX43/CAX31 at 8 GB, CPX42 and CCX23 at 16 GB.
- 3× CX43 (4 vCPU / 8 GB): €47.97
- 3× CAX31 (4 vCPU / 8 GB): €62.97
- 3× CPX42 (8 vCPU / 16 GB / 240 GB): €208.47
- 3× CCX23 (4 vCPU / 16 GB / 160 GB): €257.97
Same pattern, larger absolute gap: the CX43 starter fleet for an 8 GB pool is less than a quarter of the CCX23 fleet that was the "obvious" dedicated pick for a Postgres-hosting node a year ago. If your database needs 16 GB, two CX43 nodes plus a separate CAX31 for the DB (€47.97 + €20.99) still undercuts a single CPX42 at €69.49 before you count the other two fleet members.
Shape 3: the control-plane + workers split — 3 CP + 3 workers
Production CAPH clusters often split control plane and workers. A common historical shape was 3× CPX32 for CPs and 3× CCX33 for workers. After June:
- CP (3× CPX32): €106.47 → was €41.97
- Workers (3× CCX33): €415.47 → was €187.47
- Total 6 nodes: €521.94/month, up from €229.44 — +€3,510/year.
Rebuild the same shape on the mild-hike families:
- CP (3× CX33): €25.47
- Workers (3× CX53): €88.47
- Total 6 nodes: €113.94/month — 78% cheaper than the CPX/CCX shape, same node count.
You trade dedicated cores for shared cores and one generation of RAM. For most stateless app workers and GitOps controllers that trade is invisible. For a workload that is genuinely sensitive to noisy neighbors — sustained 90%+ CPU, latency-critical — the dedicated premium now has to clear a €408/month bar to justify itself. It sometimes will. It is no longer the default.
Which box still wins for a Bex default
The right default is no longer a single SKU. It is a preference list by family, with fallback. The economics say:
| Family | When to default to it | The catch |
|---|---|---|
| CX (Intel, shared) | The safe Bex default for most fleets. Cheapest after June, capacity is best, images are x86_64 without work. | ~10–15% slower per core than AMD in many benchmarks; not the perf-per-euro king it was before April, but now the price king. |
| CAX (ARM, Ampere) | Best value when your containers are multi-arch and you can get the capacity. 20–30% better perf-per-watt in Hetzner EU benchmarks, now cheaper than any CPX/CCX. | ARM EU capacity is chronically tight in 2026 — the "limited availability" notices on Hetzner status have hit CAX most often. Multi-arch image builds are a prerequisite. |
| CPX (AMD, shared) | When you need the AMD EPYC single-thread lift or the extra disk at the same tier (80 GB vs 40 GB) and the workload earns it. | No longer a default — must justify +144–175% vs CX/CAX at the same RAM class. |
| CCX (AMD, dedicated) | When you need a real dedicated vCPU — no noisy neighbor, sustained CPU, predictable tail latency. Think Postgres primary, Kafka, or game servers. | The premium is now 2–3× at the same RAM. Size the pool for the specific workload (DB only), not the whole fleet. |
If you took one rule from this, take this: pin the fleet default to CX or CAX, and isolate CPX/CCX to the workload that needs them. A 3× CX23 fleet plus a single CCX13 for the database (€16.47 + €42.99 = €59.46) gives you the isolation where it matters without paying the dedicated tax on every app replica.
In CAPH that is a MachineDeployment preference list, not a single serverType. The pattern Bex ships in its CAPH provider now supports fallback server types per pool — if the first choice has no capacity in NBG, the controller tries the next. A minimal shape:
# CAPH Hetero node pool — CX default, CAX preferred when available, CPX only as fallback
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: HetznerCluster
metadata:
name: bex-prod
spec:
hcloudNetwork:
enabled: true
# ...
---
apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineDeployment
metadata:
name: workers-default
spec:
replicas: 3
template:
spec:
infrastructureRef:
kind: HetznerMachineTemplate
name: workers-default
# provider-specific ordering: try CAX11 first, then CX23, then CPX22
# actual field names depend on your CAPH version — see
# docs.hetzner.com/cloud/servers/overview and your
# HCloudMachineTemplate's serverType / serverTypeFallbackThe field name varies across CAPH releases (serverType vs instanceType, failureDomain vs region), but the idea is stable: declare the economy family first and keep CPX/CCX as the capacity fallback, not the primary. Operators who already hold CAX capacity in one region and CX in another can express that as two MachineDeployments with topology spread constraints — the scheduler, not the human pager, picks which region scales.
Capacity headroom is the other lesson of 2026. Hetzner's status page has carried repeated "limited availability" notices for specific lines and regions this year — the same DRAM shortage that raised CCX/CPX prices also constrained CAX provisioning. Holding one extra node's worth of headroom per region (so scale-up does not block on sold-out inventory) is now cheaper than overprovisioning a whole CCX tier.
Operator checklist: what to change this week
-
Grep your MachineDeployments.
grep -R "cpx\|ccx"across Terraform, Cluster API manifests, and anyhetzner-cost-monitordashboards. Everycpx/ccxyou find is now paying the steep part of the hike. Decide per pool whether that workload actually needs a dedicated core; if not, move it tocx23/cx33/cx43orcax11/cax21/cax31. -
Add a fallback list. If your CAPH version supports it, declare
serverTypewith a fallback orderedcax → cx → cpx. If it does not yet, keep twoMachineDeployments(CAX inhel1, CX infsn1) withtopology.kubernetes.io/regionspread so the autoscaler has somewhere to go when one line is sold out. -
Stop caching the old price. Any dashboard, Notion table, or blog post still quoting
CX22 €3.79orCCX63 €374.49is now wrong by a factor of 1.4× to 2.3×. Bump toCX23 €5.49andCCX63 €853.49as the new floor and ceiling, or link to the live adjustment doc — do not pin a stale number. -
Reserve headroom outside CPX/CCX. A single spare node's price now varies from €5.49 (CX23) to €42.99 (CCX13). Headroom is cheapest on the economy families — the exact place you want it when the bottleneck is hardware availability, not just budget.
The price isn't one number anymore
The enduring pitch for Hetzner-backed self-hosting — flat bandwidth, no per-GB traffic tax, hardware you drew the boundary around yourself — still holds. A CX23 fleet at €16.47 for three nodes with 60 TB of included traffic remains hard to beat on a managed PaaS's per-GB egress meter, even after a 38% hike. Vercel's recent repricings, Render's Hobby egress cut from 100 GB to 5 GB, and Fly.io's new snapshot and private-networking meters make that comparison sharper, not softer.
What does not hold is treating Hetzner's price as one number with one percentage next to it. Since June 15 it is a distribution: one cluster of SKUs up about a third, another cluster more than doubled, with the dedicated-core SKU you would have reflexively picked for production now sitting on the far end of the distribution. A platform that provisions machines without exposing that choice is leaving its own tenants' money on the table.
Bex defaults that pinned to CPX/CCX because they were the value lines are being repinned. The cheapest fleet that still runs your app well is now on the lines that rose the least — CX and, when you have the images and the capacity, CAX — with dedicated cores kept for the specific workload that earns them. That is not a smaller Hetzner. It is the same Hetzner, priced by family for the first time in a way you cannot ignore.
Sources: Hetzner Docs Price Adjustment 15 June 2026 — old/new hourly and monthly caps for DE/FI and US; Hetzner Press Statement April 1 2026 price adjustment (30–37%); TrendForce Q2 2026 DRAM contract price +58–63% q/q; Hetzner Cloud server overview (CX23/CAX11/CPX22/CCX13 specs); Gart Solutions analysis of the two 2026 hikes; vps-gpu-price-index June 29 verification of CX/CAX +30–38% vs CPX/CCX +113–175%.
Bex.co is the open-source, AI-native Render alternative — push a git repo, get a running HTTPS service on machines you own. Bring your own Hetzner project, and the platform's default node pool now speaks the post-June price list. Star the repo on GitHub or deploy your first app today.