Skip to main content

Hetzner's 2026 Price Shocks: What Two Repricings Did to the 'Owning Hardware Is Cheaper' Pitch

13 min readDora NodaDora Noda
Share

Hetzner raised prices twice in five months. The bill for a typical self-hosted fleet didn't just go up — it split in two. If you picked the wrong instance family, you are paying triple.

For years the self-hosting math was simple: quote a Hetzner CX22 at €3.79 a month, multiply by the number of boxes, and declare victory over any metered PaaS. That math still works — but only if you know which repricing hit which product line, and which number on Hetzner's own price table actually applies to a new Cluster API node tomorrow versus a grandfathered one you already run.

This post recomputes the full bill: what changed on April 1, what changed again on June 15, why DRAM is to blame, and what a real three-node fleet costs before and after both hikes compared to the same workload on Railway, Render, and Fly.io.


Two repricings in ten weeks — and they didn't hit the same machines

Hetzner calls both events a "price adjustment." Tenants experienced them as two distinct shocks with different scope, different magnitude, and — crucially — different grandfathering rules.

April 1, 2026: the broad hike. Every cloud product line moved. Cloud servers in Germany and Finland rose 30–37%, US and Singapore cloud up to 38–40%, dedicated servers added higher setup fees, and even ancillary products like Object Storage and load balancers were repriced. The AX42 dedicated server — a workhorse for single-tenant PaaS nodes — went from €47.30 to €57.30 a month, a 21% lift. Object Storage's base plan went from €4.99 to €6.49 a month for 1 TB storage plus 1 TB egress, a 30% lift. The hike applied to existing customers on their next invoice, with no opt-out beyond downgrading or leaving.

June 15, 2026: the targeted shock. This was not a second broad hike. Hetzner collapsed configurable RAM and storage options into fixed tiers (-1/-2/-3) and split the cloud portfolio by how painful the increase would be. The dedicated-vCPU CCX family and the AMD shared-vCPU CPX family — the instances most production teams actually run — jumped 113% to 176% in Germany and Finland on top of the April baseline. The Intel shared-vCPU CX line and the ARM-based CAX line rose a comparatively modest ~30–38%. Existing contracts were grandfathered: if you never rescaled, you kept the April price. Any new order or any vertical resize after June 15 priced at the new rate.

The split matters more than either average. Here is what the official Hetzner price tables show for Germany/Finland (monthly, excl. IPv4):

FamilyExamplePre-AprilPost-AprilPost-June 15 (new orders)Total increase since Jan
CX (Intel shared)CX23 (2 vCPU, 4 GB)~€3.29~€4.49~€5.83~+77%
CAX (ARM shared)CAX21 (4 vCPU, 8 GB)~€11.50~€15.50~€20.50~+78%
CPX (AMD shared)CPX32 (4 vCPU, 8 GB)~€9.99~€13.99~€35.49~+255%
CPX (AMD shared)CPX42 (8 vCPU, 16 GB)~€24.99~€33.99~€69.49~+178%
CCX (dedicated)CCX13 (2 vCPU, 8 GB)~€11.50€15.99€42.99~+274%
CCX (dedicated)CCX33 (8 vCPU, 32 GB)~€72.00~€95.00~€158.00~+119%
DedicatedAX42 (Ryzen 5 3600)€47.30€57.30€57.30 (unchanged)+21%
Object Storage1 TB + 1 TB egress€4.99€6.49€6.49 (unchanged)+30%

In the US (Ashburn/Hillsboro), the pattern is sharper — CPX shared instances there rose up to 3.1×, pushing the cheapest US VPS from roughly $7 to $20.49 a month, a 193% increase that erased the "cheapest dollar-box" story for US-region fleets.

If your mental model still says "Hetzner raised prices 30% this year," you are quoting the CX/CAX line. If your fleet runs CPX or CCX — and most Cluster API fleets do, because those families offer the best RAM-per-euro for Kubernetes workers — your number is two to three times higher.


Why it happened: a DRAM supercycle, not a margin grab

Every Hetzner notice cites the same root cause: server DRAM, NVMe, and GPU-adjacent components repricing underneath any bare-metal provider that actually buys hardware.

The numbers behind the notices are unusually specific and unusually large:

  • 171% year-over-year increase in DRAM contract prices as of Q3 2025, outpacing gold over the same period, driven by AI infrastructure consuming a disproportionate share of global output.
  • 90–95% quarter-over-quarter DRAM price increase in Q1 2026, followed by a further 58–63% in Q2 2026, per TrendForce — not a one-quarter spike but compounding growth.
  • AI servers and high-bandwidth memory (HBM) now absorb roughly 40% of world DRAM output, redirecting fab capacity away from conventional DDR5 server DIMMs that every Hetzner cloud host needs.
  • IDC describes the shortage as a permanent strategic reallocation, not a cyclical dip, and warns the pressure will not materially ease until late 2027.
  • Automotive DRAM prices alone rose ~180% in three months, with Dell's COO noting demand outstripping supply across DRAM, NAND, and even hard drives in the same quarter.

Hetzner is not alone. OVHcloud announced 9–11% increases for 2026–2028 for the same reason, and storage vendors report NAND flash up 55–60% in Q1 alongside DRAM. When Hetzner says "rising hardware component costs," it is describing a commodity repricing that hits every provider that owns physical RAM — including the hyperscalers whose metered per-GB prices just haven't been passed through the same way yet.

That distinction matters for the second half of this post: the commodity pushing Hetzner's bill up is the same commodity pushing every other provider's cost up. The question is where the increase surfaces — as a flat monthly bump you see on an invoice, or as tighter included allowances and new metered lines inside a PaaS.


The grandfathering trap: old price until you touch it

Hetzner's June 15 change was explicitly scoped to new orders and rescales only. Running infrastructure kept its April price indefinitely. Stop there and it sounds generous. Run a Cluster API fleet and it becomes a planning constraint.

Concretely:

  • A CPX32 provisioned on June 14 at €13.99/month keeps that price as long as it is never resized.
  • The same CPX32 ordered on June 16 costs €35.49/month — 154% more for the identical spec.
  • A CCX13 ordered before June 15 costs €15.99/month; after, €42.99/month.
  • An autoscaler adding a fourth worker during a traffic spike pays the new price for that worker. A rolling update that replaces a machine may reprice the replacement even if the count stays the same.
  • Dedicated servers (AX line) and Object Storage were not repriced on June 15 — their April price is still the current price.

For fleet operators this creates a two-tier cost base. The dashboard average is no longer a single number: it is a blend of grandfathered machines and post-June machines whose unit cost can be 2–2.7× higher. Any capacity plan that extrapolates from current burn — "we run three workers at €14, so six workers will be €84" — is wrong the moment growth requires new machines.

The workaround is not clever accounting; it is choosing the less-hit families for new capacity. A CAX21 (ARM, 4 vCPU/8 GB) at ~€20.50 after June is 52% cheaper than the now-€42.99 CCX13 with the same RAM, if the workload tolerates ARM. A CX23 at ~€5.83 remains the cheapest way to add x86 headroom. The June repricing did not make Hetzner expensive in absolute terms — it made family choice the dominant cost lever.


Worked recompute: what a real Cluster API fleet costs now

Take a representative small-production fleet — not a single hobby box, but what a team actually runs when they self-host a PaaS:

  • 3 control-plane nodes (HA, etcd, Cluster API)
  • 3 worker nodes for tenant workloads
  • 1 TB Object Storage for build artifacts and container images
  • 20 TB included bandwidth (Hetzner's per-project allotment)

We compare three hardware strategies, before and after both repricings, against three managed PaaS alternatives running the same tenant load (roughly 8 vCPU, 32 GB RAM, 200 GB disk, 500 GB egress per month):

The three Hetzners

StrategyInstance choiceMonthly (pre-April)Monthly (post-April)Monthly (post-June, new orders)
Budget (CX/CAX)3× CX23 + 3× CAX21~€44~€60~€79
Balanced (CPX)3× CX23 + 3× CPX32~€40~€55~€120
Performance (CCX)3× CX23 + 3× CCX13~€44~€58~€139
+ Object Storage 1 TB€4.99€6.49€6.49
Total — Budget~€49~€66.50~€85.50
Total — Balanced~€45~€61.50~€126.50
Total — Performance~€49~€64.50~€145.50

Notes: CX/CAX prices use German region post-June rates including both hikes; CPX/CCX use the sharp June repricing. Dedicated-server alternatives (3× AX42) went from ~€142 to ~€172 on April 1 and held there.

Even at post-June new-order prices, the budget-fleet strategy — favoring CX and CAX — costs ~€86 a month for a six-node HA fleet with storage. The performance fleet on CCX costs 70% more, but that is still the number that belongs in a cost comparison, not the pre-April figure that many blog posts still quote.

The managed PaaS bill for the same workload

PlatformPricing shape (2026)Monthly for same workloadWhat moves the number
Railway$5 Hobby + $10/GB RAM, $20/vCPU (per-minute, included credit)~$42–58RAM is the driver; Hobby's $5 credit covers ~0.5 GB before overage
RenderFixed tier: Standard ~$25/instance~$75–125 (3 services + DB)Egress cut 100 GB → 5–25 GB in April; overage $0.15/GB
Fly.ioPer-second: shared-cpu-1x ~$2.02/mo (256 MB, always-on) + volumes/egress/NAT~$35–65Volumes ($0.15/GB), NAT gateway, metrics add-ons
Hetzner budget fleetFlat per-machine, bandwidth included€86 ($93)All-in; 20 TB bandwidth bundled, no egress meter

Three observations fall out immediately:

  1. The budget Hetzner fleet is no longer the cheapest absolute number for a small workload that can bin-pack onto a single Railway service or a handful of Fly Machines. A single API plus worker on Railway at ~$25–35 can undercut a six-node HA cluster — but the HA cluster is not the same product. Collapse the fleet to 2 nodes without HA and the Hetzner number drops to ~€25–35, back below Railway once you need more than one service.

  2. The performance Hetzner fleet lost more ground than the budget one. The CPX/CCX families that looked like the value pick in January are now the most exposed. A team that benchmarked CCX13 pre-April and locked in that number for a twelve-month ROI model will miss by 2.7× on any new capacity this quarter.

  3. Egress is the diverging line. Railway, Render, and Fly all meter egress beyond a small included allowance (Render slashed included egress from 100 GB to 5 GB on Hobby; Fly charges $0.02–0.12/GB by region). Hetzner's 20 TB included allotment is unchanged. For a bandwidth-heavy SaaS, the PaaS egress overage alone can exceed the entire Hetzner fleet bill — and that line keeps repricing upward on the managed side while Hetzner's stays bundled.


What "owning hardware is cheaper" actually means after June

The honest answer after two repricings is: it depends on which hardware you meant, and whether you think a price point is a cost model.

The level versus the slope. Before 2026, "self-host on Hetzner" could be quoted as a single price. After June, it must be quoted as a family and a date: "CAX21 at post-June rates" means something concrete; "a Hetzner box" no longer does. Teams that treat Hetzner's catalog as one number will mis-forecast by 100%+ depending on which line their Cluster API provider defaults to. Audit your node pool's instance type the way you would audit a PaaS bill's egress line — it is now the same kind of variable.

The margin still holds — but it moved. Even the most expensive post-June Hetzner fleet above (€146) undercuts the combined metered PaaS bill once a workload needs HA, more than two services, or meaningful egress — the workloads where a self-hosted PaaS is the right call in the first place. For a single always-on hobby service with no HA requirement, the metered PaaS was already cheaper and remains so. The repricings did not invert the comparison; they narrowed the gap for the mid-tier and forced family-aware provisioning to preserve it.

The commodity risk is now symmetric. Pre-2026, the pitch was "hardware is fixed, PaaS pricing moves." In 2026, hardware moved too — and Hetzner's transparency about why (DRAM/NVMe costs up 90–180% in two quarters) is more instructive than any single invoice. A self-hosted fleet absorbs bare-metal repricings directly; a managed PaaS absorbs the same commodity pressure through tighter allowances and new metered lines (Render's egress cut, Fly's new snapshot and inter-region networking meters, Railway's per-minute RAM/vCPU increments). Neither side is immune to a DRAM supercycle that IDC calls structural through late 2027. The difference is visibility: Hetzner publishes a new price per machine; a PaaS may not change its sticker price at all while the bill for the same workload quietly climbs through a smaller included bundle.

What to do this quarter:

  • If you run a Cluster API fleet on Hetzner, inventory every node by family and creation date. Any autoscaling or replacement plan that assumes the current blended average will under-budget new capacity by 100–170% on CPX/CCX.
  • Prefer CX/CAX for new x86 or ARM-tolerant workers. Reserve CPX/CCX for workloads that genuinely need the per-core performance and budget for the higher rate.
  • For cost comparisons, publish the date and instance type alongside the number. A Hetzner-vs-Railway chart without a family label is a chart without a price.
  • Expect at least one more repricing signal before late 2027 if DRAM contract prices continue compounding. Grandfathering protects existing capacity but not growth — model growth at post-June rates even if today you pay April rates.

The throughline is not that self-hosting stopped being cheaper. It is that "cheaper" was never a single number on a competitor's pricing page — it was always a workload, a family, and a date. Hetzner's 2026 repricings just made that impossible to ignore.

Bex.co is the open-source, AI-native Render alternative — push a git repo, get a running HTTPS service on machines you own. Run it on Hetzner, on any Cluster API provider, or on bare metal you already have. Star the repo on GitHub or deploy your first app today.

Related articles

Run this on infrastructure you own

bex is the open-source, AI-native Render alternative — push a git repo and get a running HTTPS service on your own machines.

Get started with bex