pickuma.
Infrastructure

Hetzner Cloud Review: Why Developers Are Leaving AWS for European Bare Metal

A hands-on review of Hetzner Cloud and its bare-metal servers — the price-to-performance math against AWS EC2, the dedicated vCPU lines, the server auction, and the self-hosting stack (Coolify, Dokku) that makes it work. Honest about the tradeoffs.

10 min read

I have been running production workloads on Hetzner for the better part of two years now, alongside an AWS account I have kept since 2017. The contrast got hard to ignore around the time my AWS bill crept past what I was comfortable explaining to a side-project budget. So I did the migration nobody markets to you: I moved a Postgres-backed API, a couple of background workers, and a static-site build pipeline off EC2 and onto a single Hetzner dedicated-vCPU instance plus a bare-metal box for the database. The app got faster. The bill dropped by something close to an order of magnitude. And I spent a weekend wiring up the parts AWS used to do for me. That tradeoff — dramatic savings in exchange for owning more of the stack — is the whole story of Hetzner, and whether it is a good deal for you depends entirely on which side of that trade you actually want.

This is not a “ditch the cloud” manifesto. AWS earns its premium for a real set of customers. But the gap between what Hetzner charges for raw compute and what the hyperscalers charge has gotten wide enough that a lot of developers are doing the math and concluding the premium is not buying them anything they use. Here is what I found running both.

The Price-to-Performance Gap Is Not Subtle

The headline reason people move to Hetzner is cost, and the cost difference is not a clever-billing-optimization difference. It is a structural one. Hetzner’s cloud VPS line starts at a few euros a month for a shared-vCPU instance with a couple of gigabytes of RAM, and their dedicated-vCPU instances — where you get pinned physical cores rather than burstable shared time — run in the rough neighborhood of a euro or so per gigabyte of RAM per month, prices that have stayed remarkably stable as of mid-2026. Comparable EC2 instances cost multiples of that before you even look at the line items AWS adds around them.

The piece that surprised people I have shown this to is bandwidth. AWS egress is famously one of the most profitable lines in cloud computing — you pay per gigabyte to send data out of the platform, and at scale that number dwarfs your compute bill. Hetzner includes a generous monthly traffic allowance with each instance (on the order of terabytes), and overage, when you hit it, is priced at a small fraction of what AWS charges per gigabyte. For anything that serves media, large API responses, or build artifacts, this single difference can be the entire justification for moving. I have watched a friend’s video-thumbnail service go from a four-figure monthly egress bill to effectively zero.

The dedicated-vCPU versus shared-vCPU distinction matters and is worth understanding before you provision anything. Shared instances are cheaper and fine for development, low-traffic sites, and bursty workloads that sit idle most of the time. But they are subject to the noisy-neighbor problem and to fair-use CPU steal — if you peg a core for hours, you will feel it. Dedicated-vCPU instances give you guaranteed physical core time and predictable latency, which is what you want for anything user-facing or CPU-bound. The price step up is modest, and for production I default to dedicated every time.

Volumes, Networks, Load Balancers — and the Bare-Metal Auction

Hetzner Cloud is more than just cheap VPSes; it has grown a respectable set of primitives that make it usable as an actual platform rather than a box you SSH into. Block-storage Volumes attach to instances and can be resized and moved between servers, which is how you keep state off the instance’s boot disk. Private Networks let you wire instances together on an internal subnet so your app server talks to your database without traversing the public internet. Load Balancers handle TLS termination and distribute traffic across a backend pool, with health checks. Firewalls are configurable at the cloud level. There is a clean API, a Terraform provider, and a hcloud CLI, so the whole thing is automatable in the way you would expect.

It is not the AWS console. There is no managed Kubernetes that competes with EKS on features, no equivalent to the sprawling catalog of two hundred-plus services, no Lambda, no DynamoDB, no global IAM with fine-grained policies. What Hetzner gives you is the small set of building blocks that ninety percent of web applications actually need, priced sanely, with a UI that loads instantly and does not require a tutorial.

The other thing worth knowing about — and the part that genuinely delights me — is the dedicated server auction. Hetzner’s main business for decades has been dedicated bare-metal servers, and they run an auction for used hardware coming off previous leases. You can pick up a real physical machine — often something with a multi-core Xeon or Ryzen, dozens of gigabytes of RAM, and NVMe storage — for a monthly price that looks like a typo next to cloud pricing. There is no virtualization tax, no shared anything; the whole machine is yours. The catch is that auction inventory varies, setup is more hands-on (you are managing a real server, with a real provisioning step and a real reinstall process), and there is typically a one-time setup consideration depending on the listing. For a database host, a CI runner farm, or anything that wants maximum cores-per-dollar, the auction is hard to beat and has no equivalent at any hyperscaler.

The Self-Hosting Stack That Makes Hetzner Sing

A bare VPS is not a platform. The reason Hetzner has become a default among a certain kind of developer is the maturing ecosystem of open-source PaaS layers that turn a cheap server into something with a Heroku-shaped developer experience. Two are worth your attention.

Coolify is the one I reach for now. It is an open-source, self-hostable platform that you install on your own server and that then gives you a web dashboard for deploying applications, databases, and services. You connect a Git repository, and Coolify builds and deploys it — using Nixpacks or your own Dockerfile — with automatic TLS via Let’s Encrypt, environment-variable management, preview deployments, and one-click databases (Postgres, Redis, MySQL, and others). It is the closest thing to “Heroku but it is your hardware and your bill.” Pairing Coolify with a single dedicated-vCPU Hetzner instance gives a solo developer a deployment experience that genuinely rivals the managed PaaS platforms, at a fraction of the cost, with the obvious caveat that you are now the platform team. Coolify has matured a lot, and as of mid-2026 it is stable enough that I run real things on it, though it is still software you operate yourself, with the occasional rough edge that implies.

Dokku is the older, leaner, more Unix-y option. It is a single-server PaaS built on Docker and Heroku buildpacks, driven entirely from the command line — git push dokku main deploys your app, and a plugin ecosystem handles databases, TLS, and more. Dokku has been around for years, it is rock-solid, and it has almost no resource overhead, which makes it ideal for squeezing the most out of a small box. The tradeoff against Coolify is the absence of a web UI and a slightly steeper learning curve; Dokku assumes you are comfortable in a terminal and reading documentation. I tend to recommend Dokku to people who want minimalism and stability, and Coolify to people who want a dashboard and team-friendly features.

Either one, sitting on Hetzner hardware, is the actual product most people are reaching for when they say they are “moving off AWS.” They do not want raw IaaS; they want a place to git push that does not bill them like a hyperscaler.

How Hetzner Stacks Up Against the Alternatives

Hetzner does not exist in a vacuum. The “cheaper than AWS” category has several credible players, and they are not interchangeable.

ToolCore OfferingPricing PostureManaged ServicesGlobal Edge
Hetzner Cloud Best for Self-hosters who want maximum cores and bandwidth per dollarVPS + bare-metal, EU/US regionsCheapest raw compute and bandwidthMinimal — volumes, LB, networksNo — a handful of regions
AWS EC2 Best for Teams that need managed services, compliance breadth, and global reachFull IaaS + 200+ managed servicesPremium; complex per-line billingEverything — RDS, Lambda, IAM, etc.Yes — global, deep
DigitalOcean Best for Developers wanting clean UX and some managed services without AWS complexityDeveloper-friendly VPS + managed DB/k8sMid — pricier than Hetzner, simpler than AWSSome — managed DB, k8s, spacesYes — several global regions
Fly.io Best for Apps that need low latency in multiple regions with little opsApp-centric edge deployment platformMid; usage-basedSome — managed Postgres, volumesYes — deploy close to users
OVHcloud Best for EU-data-residency workloads wanting more regions than HetznerEU bare-metal + VPS, broad catalogCompetitive; close to Hetzner on metalModerate — managed DB, k8sYes — global regions

The honest positioning: Hetzner wins decisively on price-to-performance and on bandwidth, and loses on managed services and global footprint. DigitalOcean and Fly.io sit in the middle — they cost more than Hetzner but give you back some of the managed pieces and the multi-region reach that Hetzner lacks. If your reason for leaving AWS is purely cost and you are comfortable self-hosting, Hetzner is the most aggressive option. If your reason is “AWS is too complicated but I still want managed databases and a region near my users,” DigitalOcean or Fly.io is the gentler landing.

A few tradeoffs deserve to be named plainly. Hetzner has no global edge — your users in Sydney or São Paulo will see higher latency than they would from an AWS region near them, though you can put a CDN like Cloudflare in front to mitigate static-asset latency. Hetzner’s abuse and KYC policies are stricter than the hyperscalers’; new accounts, especially those provisioning a lot of capacity quickly, sometimes get identity-verification requests or holds, and the company is conservative about anything that smells like spam or crypto mining. And you are responsible for far more of the operational surface than you are on AWS. None of these are dealbreakers, but discovering them after you have migrated is unpleasant.

Who Should Move, and Who Should Stay

Move to Hetzner if you run a stateless web application, a side project, a personal infrastructure stack, a CI/build farm, or any CPU-bound or bandwidth-heavy workload, and you are comfortable owning your deployment story — ideally with Coolify or Dokku doing the heavy lifting. Move if your AWS bill is dominated by raw EC2 compute and egress rather than by managed services you genuinely depend on. Move if you value predictable, flat pricing over the elasticity of paying-by-the-second. The bare-metal auction in particular is a near-unbeatable deal for databases and anything that wants real cores.

Stay on AWS — or move only partially — if you lean heavily on managed services like RDS, DynamoDB, Lambda, or the IAM and compliance ecosystem; if you need a global edge and low latency for a worldwide user base; if your organization has compliance or procurement requirements that the hyperscalers satisfy out of the box; or if your team’s time is genuinely more expensive than the savings and you would rather pay AWS to run the boring parts. There is no shame in that math; for plenty of teams it is the correct answer.

The pattern I have settled on personally is a hybrid: Hetzner for compute, databases, and bandwidth-heavy serving, with a Cloudflare layer in front for CDN and DNS, and a small residual AWS footprint for the one or two managed services I have decided are worth paying for. That combination has cut my infrastructure spend dramatically without forcing me to give up the conveniences I actually use. The move off AWS does not have to be all-or-nothing — and for most developers, it should not be.

FAQ

FAQ

Is Hetzner Cloud actually that much cheaper than AWS EC2?+
For raw compute and bandwidth, yes — the difference is structural, not a billing trick. Dedicated-vCPU Hetzner instances cost a fraction of comparable EC2 instances, and the bandwidth gap is even larger because AWS charges premium per-gigabyte egress while Hetzner includes generous traffic allowances. The savings shrink if your AWS bill is mostly managed services rather than compute, since Hetzner does not replace those.
What is the difference between Hetzner's shared and dedicated vCPU instances?+
Shared-vCPU instances are cheaper but use burstable, fair-use CPU time, so they are subject to noisy neighbors and CPU steal under sustained load. Dedicated-vCPU instances give you pinned physical core time and predictable latency for a modest price increase. Use shared for development and bursty workloads; use dedicated for anything user-facing or CPU-bound in production.
What is the Hetzner server auction and is it worth using?+
The auction is Hetzner's marketplace for used dedicated bare-metal servers coming off previous leases, priced far below cloud rates for a whole physical machine with no virtualization overhead. It is excellent for databases, CI runners, and any cores-per-dollar workload. The catch is variable inventory, a more hands-on setup process, and that you fully manage the physical server yourself.
Do I need Coolify or Dokku to use Hetzner?+
No, but most people want one. A bare VPS just gives you a server to SSH into; Coolify and Dokku layer a Heroku-style git-push deployment experience on top, with TLS, databases, and environment management handled for you. Coolify offers a web dashboard and team features, while Dokku is a leaner, command-line, single-server PaaS — pick based on whether you want a UI or minimalism.
What are the biggest downsides of moving from AWS to Hetzner?+
The three big ones are the absence of managed services (no RDS, Lambda, or deep IAM equivalent), no global edge so latency is higher for far-away users, and stricter abuse and KYC policies that can trigger verification requests on new accounts. You also take on more operational responsibility, including backups and failover. A hybrid setup with a CDN in front mitigates several of these.

Related tools

Some links above are affiliate links. We may earn a commission if you sign up. See our disclosure for details.

Related reading

See all Infrastructure articles →

Get the best tools, weekly

One email every Friday. No spam, unsubscribe anytime.