Skip to main content

Hetzner at €3.79 vs OVHcloud at $9.99 vs DigitalOcean at $24: What a 6x Price Gap Still Buys After Three 2026 Price Hikes

21 min readDora NodaDora Noda
Share

The same 2 vCPU / 4 GB box costs €3.79 on Hetzner, $9.99 on OVHcloud, and $24 on DigitalOcean. That February 2026 table made the rounds for exactly one reason: the cheapest number is almost 6x cheaper than the most expensive, for hardware whose spec sheet looks identical.

Then all three price pages moved. Hetzner raised the CX line 30–37% in April and tripled its dedicated CPX/CCX lines in June. OVHcloud announced a 9–11% increase for every cloud deployment made between 2026 and 2028. DigitalOcean kept $24 exactly where it was and switched the droplet to per-second billing instead.

If you still quote the February table without the asterisks, you are pricing a server you cannot buy at a price that no longer exists. If you assume a hike that touched Hetzner must have closed the gap, you are missing where the gap actually lives. This post is the line-by-line recompute that puts both invoices in one place — headline compute, bandwidth allotment, egress overage at the traffic levels teams actually push, and the invisible API lines — and explains why a self-hosted Cluster API fleet still defaults to the cheapest box a hosted PaaS cannot resell.

Why it matters now: every hosted PaaS bill this list tracks — Railway usage-based, Render's metered egress, Fly's per-second meters, Vercel's Active CPU — ultimately re-buys one of these three boxes, marks it up, and meters what the box already bundled. If you own the fleet directly, the 6x gap is not a comparison. It is your margin.

TL;DR: The updated price table the title promised

This is the core deliverable — the February table you came for, updated to what you would actually pay today, plus what sitting on top of that box still costs. Same shape (2 vCPU / 4 GB) throughout. Hetzner CX22 at €3.79 was the February anchor; it no longer provisions — the catalog now lists CX23. OVHcloud maps to the VPS Essential/Comfort tier (~$9.99); DigitalOcean is s-2vcpu-4gb at $24.

Price then → now (the hike you must not skip)

ProviderFeb 2026 (before)Aug 2026 (today)Hike on this shape
Hetzner Cloud (CX22→CX23)€3.79 (CX22)€3.99–€5.49 (CX23; mid-snapshot €4.15 ≈ $4.48)CX/CAX +30–37% (Apr 1); entry 2 vCPU shape +5–14% point-to-point*
OVHcloud VPS (2 vCPU/4 GB)~$7–$8 street (VPS-1 at $4.90)~$9.99 (VPS-1 now $6.46, +32%)+9–11% avg Public Cloud/Bare Metal/VPS 2026–2028; VPS-1 +~30% (Apr 1)
DigitalOcean Droplet$24.00$24.00 (now per-second billing)None on this shape

* Scope note: the +113–176% June 15 hike hit the performance-optimized CPX/CCX dedicated lines (e.g. CCX13 $39.99→$102.99) — not this shared 2 vCPU/4 GB comparison. Entry CX was the mildest line. See §2.

All prices excl. VAT; €→$ at ~1.08 for comparison only — Hetzner bills in euros, the other two in dollars.

What the box ships with today

Hetzner CloudOVHcloud VPSDigitalOcean Droplet
Reference shapeCX23: 2 vCPU (shared Intel), 4 GB RAM, 40 GB NVMeVPS Essential: 2 vCPU, 4 GB RAM, 80 GB SSDs-2vcpu-4gb: 2 vCPU, 4 GB RAM, 80 GB SSD
Headline monthly (today)€3.99–€5.49 (CX23)~$9.99$24.00
Included traffic / month20 TB per server (EU/US); 1 TB Ashburn, 0.5 TB SingaporeUnmetered (400 Mbps–2 Gbps port, Tbps anti-DDoS included)4 TB pooled; $0.01/GiB beyond
Egress overage€1.00/TB (~$1.08) EU/US; €7.40/TB Singaporen/a (unmetered)$0.01/GiB (~$10.24/TB)
$/vCPU-month (unit economics)~$2.24 ($4.48 ÷ 2)~$5.00 ($9.99 ÷ 2)$12.00 ($24 ÷ 2)
Managed extrasNone — no managed DB/K8sSnapshot backup, free anti-DDoSVPC, monitoring, managed DB/K8s extra
API surface for a fleethcloud + Terraform + CAPH (Cluster API)OpenStack-based, narrower TerraformMature doctl + managed control planes

Unit-economics row: this /vCPUmonthisthe"ownedhardware"proxy.AHetznerCloudVMisthecheapestrentableunit;aHetznerbaremetalamortizationwouldbeevenlowerpervCPU.The 435/vCPU-month is the "owned-hardware" proxy. A Hetzner Cloud VM is the cheapest rentable unit; a Hetzner bare-metal amortization would be even lower per vCPU. The **~435% markup** from ~\2.24 to $12.00 per vCPU is the margin a hosted PaaS must add when it resells one of these boxes — and the margin a self-hosted fleet keeps.

Read the hike row before you read the specs. The entry shared line moved the least in both repricings. That is why the 6x headline gap survived: the cheapest provider took the smallest hike on the shape everyone compares.

The February table that went viral — and what two hikes changed

The table that circulated on DEV and Hacker News in February–March was clean enough to screenshot:

  • Hetzner CX22 at €3.79/mo — 2 vCPU / 4 GB / 40 GB, 20 TB included
  • OVHcloud at ~$9.99/mo — comparable 2 vCPU / 4 GB, unmetered
  • DigitalOcean s-2vcpu-4gb at $24/mo — 2 vCPU / 4 GB / 80 GB, 4 TB pooled then $0.01/GiB

Every one of those numbers was true that week. None of them is true today without an asterisk, and the asterisks do not point the same direction.

Hetzner, April 1 and June 15, 2026. The February €3.79 was a CX22. That plan no longer provisions — the API returns "server type is deprecated" for cx22/cx32/cx42/cx52 and the catalog now advertises CX23/CX33/CX43/CX53 instead. April 1 lifted the shared lines (CX, CAX) 30–37% across the board. The entry 2 vCPU/4 GB shape reappeared as CX23 at €3.99 in the most aggressive snapshot and up to €5.49 in the EU list catalog, depending on when you pulled api.hetzner.cloud/v1/pricing. OVH-style indexes that track the commit history put it at ~€4.15 mid-point. Whichever snapshot you trust, the entry line repriced the least.

That matters because June 15 did the opposite. CCX and CPX — the dedicated-vCPU and AMD shared lines where a real production node pool lives when noisy neighbors are not acceptable — jumped 113–175% in one move on top of the April increase. The published examples are stark: CCX13 (2 vCPU / 8 GB) went from ~€15.99 to €42.99 in one jump in some regions, CCX23 from ~$39.99 to $102.99 in USD terms, and CCX63 from €374.49 to €853.49. If you benchmarked "Hetzner" as CX23, you saw a ~30% hike. If you benchmarked it as CPX22 (the workhorse AMD shape), you saw roughly a 2.4x hike.

Hetzner cited the same cause OVH did: a global DRAM and NAND shock driven by AI demand, with RAM pricing projected 250–300% above September 2025 by year-end 2026 and continuing high Hetzner demand plus component shortages constraining availability into the summer.

OVHcloud, April 1, 2026 (with effects into 2028). OVH published its repricing as a three-year window: every new Public Cloud, Private Cloud, and Bare Metal deployment between 2026 and 2028 averages +9–11%, with pre-2025 deployments at +2–6% depending on hardware age and VPS as the steepest slice. The VPS line the February table actually compared moved harder than the 9–11% average — VPS-1 went $4.90→$6.46 (+32% in one OVH review) and some tracking indexes logged $4.90→$7.60, while VPS-4 logged $26→$43.50. The 2 vCPU/4 GB shape the table anchored to at $9.99 absorbed a milder bump inside that range, but it did not escape the repricing. OVH's own page framed the 9–11% as the contained number — they explicitly said they were absorbing most of the 250–300% RAM cost shock rather than passing it through in full.

DigitalOcean, January 2026. The $24 droplet did not move at all. What changed was the billing clock: per-second billing replaced hourly as the minimum unit, which matters for short-lived CI or preview droplets and does nothing for an always-on app server that runs 730 hours a month anyway. The $24 is also the reason the 6x gap survived two industry-wide hikes that both hit the cheaper providers harder — the gap was never "Hetzner got cheap for a quarter." It is structural.

Where the €20/month gap actually goes

If you only compare the headline numbers, DigitalOcean looks 6x more expensive for the same sheet of cores and RAM. The useful question is how much of that 6x survives once you count the lines that actually land on the monthly invoice for a workload with real traffic.

There are three places the gap lives: the headline compute price itself, the included bandwidth, and the overage rate that recaptures bandwidth when you exceed the allowance. Everything else — disk size, snapshots, anti-DDoS, managed add-ons — is a paragraph, not a multiplier.

Compute headline: the gap is real, just smaller than in February. CX23 at ~€4.15 vs $24 is not 6.3x anymore, but it is still 5.4x at EUR/USD 1.08 ($4.48 vs $24). OVH at $9.99 sits almost exactly in the middle. Even if you take the most pessimistic Hetzner snapshot (€5.49 ≈ $5.93), the 2 vCPU/4 GB box is still roughly 4x cheaper than the DO equivalent at list. The April hike trimmed the margin, it did not flip the ranking on any snapshot.

Bandwidth included: this is why the gap widens as you push bytes, not as you add RAM. Hetzner ships 20 TB per server in EU regions. That is not a pool, it is per-server. OVH ships unmetered on most VPS plans with a 400 Mbps–2 Gbps port and Tbps-class anti-DDoS bundled — a real cost OVH absorbs, and the reason some bandwidth-heavy shops tolerate a higher headline compute number. DigitalOcean ships 4 TB pooled for the s-2vcpu-4gb shape, with a $0.01/GiB (~$10.24/TB) overage beyond the pooled Droplet allowance.

At low traffic (say 500 GB of egress for a marketing site plus API), all three are effectively "bandwidth is free" — you never touch an overage. At 10 TB a month for an image-heavy SaaS, Hetzner is still inside one server's 20 TB and OVH is still unmetered, while DigitalOcean has burned through the 4 TB allowance and pays overage on ~6 TB.

Egress overage: the cheapest per-byte meter and the most expensive one differ by an order of magnitude. Hetzner's EU/US overage is €1.00/TB — roughly a dollar per terabyte, the kind of number that makes overage an afterthought. OVH has no overage within fair-use because there is no meter. DigitalOcean charges $0.01/GiB, which is about $10 per terabyte — 10x Hetzner's EU rate. Singapore flips the story: Hetzner charges €7.40/TB there, close to DigitalOcean's rate, which is why a fleet that needs sin1 actually prices differently than one that can stay in fsn1/nbg1/hel1.

Here is the sensitivity table that makes the headline-vs-effective gap concrete. One server, 2 vCPU/4 GB, counting compute + egress overage only — no snapshots, no floating IPs — at the three traffic levels that separate a hobby app from a production SaaS. Hetzner at €4.15 (~$4.48), OVH at $9.99, DO at $24, overages as above, Hetzner EU rate.

Monthly egressHetzner effectiveOVHcloud effectiveDigitalOcean effective
500 GB (hobby / low)$4.48$9.99$24.00
5 TB (typical SaaS)$4.48$9.99$34.00 (~$24 + 1 TB × $10)
10 TB (media-heavy)$4.48$9.99~$85.00 (~$24 + 6 TB × $10)
20 TB (worst case per box)$4.48$9.99~$188.00 (~$24 + 16 TB × $10)

At 5 TB — a median the team that writes a comparison table would actually recognize as typical, not a cherry-picked edge — the 6x headline gap becomes a 7.6x effective gap ($4.48 vs $34). At 20 TB, where Hetzner is exactly at its included limit and OVH is still unmetered, DigitalOcean is 42x the Hetzner line, and that is before the platform that sits on top of the box adds its own bill.

Those are not contrived worst cases. The 2026 reliability census this list tracks elsewhere counted 20 TB as the line Hetzner chose to include because it makes most tenant overages vanish. DigitalOcean chose 4 TB because, at $0.01/GiB, the overage is a real revenue line once a tenant succeeds enough to push bytes. Both choices are deliberate; only one bundles the bandwidth into the same flat price as the compute.

The remaining lines are worth a paragraph, not a table, because they do not move the gap:

  • Disk. Hetzner 40 GB NVMe vs 80 GB on the other two is a real difference if you run a local database on the box. For the container-orchestrated fleet Bex optimizes for — Postgres off the app node, images on a registry — 40 GB of fast local NVMe is comfortably enough for the OS plus container layers plus logs.
  • Snapshots. Hetzner charges €0.0119/GB/month of snapshot storage. OVH includes automatic backups with tier-dependent retention. DigitalOcean snapshots are $0.06/GB/month. None of these change a $20/month headline gap into a $2 gap.
  • Anti-DDoS. OVH bundles Tbps-class mitigation into the VPS — the one line where OVH is genuinely cheaper than Hetzner, which charges for mitigation at the cloud load balancer layer and expects you to lean on a CDN otherwise.

The lines that don't fit in a price table

If you choose a node pool only on headline compute, Hetzner wins before you finish reading the pricing page and you never need the rest of this section. The reason teams still hesitate is not price, it is what "I bought the cheapest box" costs in operations once there are ten of those boxes and one of them is full.

Three axes decide that cost: API maturity, provider breadth, and what is bundled beyond the box.

API maturity. Hetzner exposes a clean, Terraform-friendly Cloud API (hcloud) that maps almost one-to-one to what you see in the console: server types, images, networks, firewalls, load balancers, placement groups, floating IPs. It is well-documented, rate-limited but predictable, and — critically for a self-hosted PaaS — it has a first-class Cluster API provider (CAPH) that turns "add a node" into a declarative MachineDeployment rather than a curl call you wrote yourself. DigitalOcean's doctl and API are equally mature and, on paper, more complete: managed databases, managed Kubernetes (DOKS), Spaces, and App Platform all share the same auth and networking primitives. The ecosystem is broader and the docs are friendlier to a team that wants a click-to-create database tomorrow. OVHcloud's API is the narrowest of the three — it is OpenStack-derived for Public Cloud, with a control panel (ovh.com/manager) that does not have the same single-curl-creates-a-firewall ergonomics, and Terraform coverage that is thinner for edge primitives like placement groups or provider-level fallback.

Provider breadth. Hetzner runs a handful of EU regions (fsn1, nbg1, hel1) plusAshburn (ash1) and Singapore (sin1) with a meaningful caveat: the 20 TB and €1/TB story only holds in the EU/US pair; Singapore is expensive per byte. Oversight here is expensive, because a fleet that defaulted to a Singapore node pool for latency reasons reprices overnight. OVH has the widest EU footprint of the three (plus US and APAC) and leans hard on "we own the network and the anti-DDoS" — a true advantage for the unmetered tier, less relevant for a fleet that never hits an overage anyway. DigitalOcean is the most even globally, with the most mature multi-region VPC and managed-control-plane defaults if your team is not running its own Kubernetes control plane at all.

What is bundled beyond the box. Here the ranking inverts. DigitalOcean bundles the most: monitoring, VPC, managed Postgres/Redis, and a functioning managed Kubernetes product where the droplet price is only the worker line. OVH bundles the most networking for free (unmetered egress, bundled anti-DDoS). Hetzner bundles the least — there is no managed database or managed Kubernetes product, port 25 is blocked on new accounts for ~30 days, and abuse handling plus account verification are the recurring complaints on Reddit, Trustpilot, and Hacker News. That minimalism is why the box is €3.79 in the first place.

For a Cluster API fleet, that tradeoff is correctly understood as a feature, not a gap. A CAPH provider expects to own the node lifecycle — create a server type, join it to a Machine, reconcile a Node, replace the Machine when the underlying server is unhealthy — and nothing else. A Platform-as-a-Service that spells "fleet" as a set of MachineDeployments wants the cheapest reliable Machine it can rent, not the most managed service it can click into. The managed Postgres you might have bought from DigitalOcean sits one layer up either way.

Worked fleet math: what three nodes and 10 TB actually costs

A single-node price table tells you the cheapest box. A fleet cost tells you the cheapest fleet that can stay up. Take the same app on three nodes for HA, pushing a combined 10 TB of egress — a plausible production number for a small SaaS with image assets and API responses, split roughly evenly across three nodes. Three servers, ten terabytes total, same per-provider overage math as above.

ProviderCompute (3 × shape)Bandwidth mathFleet total / month
Hetzner CX23 (EU)3 × €4.15 ≈ $13.4410 TB across three boxes = ~3.3 TB per box, all inside 20 TB each → $0 overage~$13.44
OVHcloud VPS3 × $9.99 = $29.97Unmetered → $0 overage~$29.97
DigitalOcean Droplet3 × $24 = $72.0010 TB pooled vs 4 TB included → 6 TB over at $0.01/GiB ≈ **$60**~$132.00

Three Hetzner boxes with HA cost roughly what a single DigitalOcean box costs before egress at low traffic, and about a tenth of what the same DO-backed fleet costs once egress is counted honestly. OVH sits in the middle — about 2.2x the Hetzner fleet at this shape, before you notice that Hetzner's $13.44 fleet has 60 TB of included traffic across three servers that you have not even dented, while DigitalOcean's $132 fleet has already paid $60 to buy back traffic Hetzner bundled.

That ratio survives the hikes. Move Hetzner from €4.15 to €5.49 (+32%) and the fleet total goes to $17.78 — still 7.4x cheaper than the DO equivalent at the same 10 TB workload. Keep Hetzner at €4.15 and put the fleet in Singapore at €7.40/TB with a 0.5 TB allowance, and the same 10 TB fleet picks up overage ($70) that finally makes the story regional — the cheap box is a regional story, not a universal one.

One honest caveat the fleet math forces you to read: availability is a line item too. Hetzner's status page has carried repeated "limited availability" notices in 2026 on specific CX/CP lines at specific locations, driven by the same component shortage behind the price hikes. A MachineDeployment that wants three CX23s in nbg1 can hit "no capacity in this location" as a failure mode distinct from a price increase. A Fleet that puts all three replicas in one location inherits that blast radius; the fix is the one CAPH makes cheap — split the deployment across fsn1/nbg1/hel1 and let the reconciler land the third Machine where there is actually stock.

Why the cheapest box a PaaS can't resell still wins

The throughline across three price pages, two hikes, and one flux survey's worth of bytes is simple: the gap was never mysterious. Hetzner ships 20 TB and charges a euro per TB after that because it owns a European network it wants to fill. OVH ships unmetered because it owns a global network plus anti-DDoS it wants to keep busy. DigitalOcean ships 4 TB and charges $0.01/GiB because, at its scale and its managed-service surface, per-byte metering is a profit center, not a pass-through.

A hosted PaaS that sits on top of any of these boxes has to re-price the same bytes a second time. Railway, Render, Fly, and Vercel all do — sometimes as included egress that resets monthly, sometimes as a per-GB line that looks small until the workload is image-heavy. A self-hosted fleet that rents the cheapest of the three boxes directly does not pay that second markup. That is the whole thesis of owning the node pool, compressed into two numbers: ~$2.24/vCPU-month on Hetzner vs $12.00/vCPU-month on DigitalOcean (same 2 vCPU/4 GB shape, ~435% markup the PaaS must cover and you keep), and ~$13.44 vs ~$132 per month for the same 3-node HA fleet at 10 TB egress, with OVH at ~$29.97 as the bandwidth-pure alternative. Hetzner Cloud VM is used here as the owned-hardware proxy — a dedicated bare-metal amortization per vCPU would be lower still, so this understates the owned-hardware edge, not overstates it.

That does not mean Hetzner is the only right answer, and a post that pretended it was would be the wrong kind of cheap.

  • Default to Hetzner CX/CAX for the entry node pool when the workload is EU-located, bandwidth-heavy, and the fleet is Cluster-API-managed. It is the cheapest reliable Machine a controller can reconcile, and the 20 TB allowance removes an entire billing dimension from your capacity planning.
  • Pick OVH when unmetered egress plus bundled anti-DDoS is the binding constraint — game servers, media origins, download-heavy SaaS — and accept the narrower API surface and the tighter Terraform story. The hardware-refresh-window pricing (+9–11% for 2026–2028 deployments, +2–6% for pre-2025) also means timing your node-pool refresh matters; a pool you carry over from 2025 is repriced less than one you create in 2026.
  • Pick DigitalOcean when managed control planes are the binding constraint — a small team that wants DOKS or a managed database tomorrow without running its own etcd — and budget the $0.01/GiB overage as a real line from day one. Per-second billing is a genuine win for the preview-environment slice of your fleet that is short-lived, even while your always-on API nodes stay on the same $24 monthly clock.
  • Stay off Hetzner's dedicated lines for the default pool unless you need noisy-neighbor isolation — the CCX/CPX lines that tripled in June are the wrong default for a PaaS node pool that bin-packs stateless app replicas. Keep those lines as the exception for the steady-CPU worker that actually benefits from dedicated vCPU, and keep CX23/CP-small as the fleet's bread and butter.

Two operational notes that belong in the decision and not just in a footnote.

First, Hetzner's "no capacity" is now a normal failure mode, not an edge case. A production fleet's MachineDeployment config should list fallback locations and, where the workload allows it, fallback types — if cx23 is sold out in nbg1 today, the reconciler should be allowed to land a cax11 in fsn1 instead without a human rewriting the manifest. The capacity crunch is the same DRAM/NAND squeeze that produced the price hikes; price and availability are two faces of the same underlying hardware shock.

Second, a 9–30% hike that leaves the ranking unchanged is still a hike. The February table at €3.79 vs $9.99 vs $24 implied a margin so wide it felt like a discovery. The August reality at €4.15–€5.49 vs ~$9.99 vs $24 implies the same ranking with a thinner margin — still a margin a self-hosted platform turns into runway, but not one that excuses wasteful scheduling or oversized nodes. The discipline that makes self-hosting cheaper was never "buy the cheapest box and forget about utilization." It is "buy the cheapest box and then bin-pack it, autoscale it, and let a controller replace it while you sleep."

Bex.co is the open-source, AI-native Render alternative — push a git repo, get a running HTTPS service on machines you own. A Cluster API fleet is the default node pool, not an enterprise add-on, so the 20 TB you already paid for with the box is the only bandwidth bill there is. 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