How does Hetzner Cloud compare to AWS?
Hetzner Cloud is an infrastructure provider: it sells virtual servers, block storage, load balancers and private networks from six locations, with 20 TB of traffic included per EU server. AWS is a platform with 39 regions, hundreds of managed services and availability zones in every region. As of 14 November 2026, comparable compute costs about 2x to 2.9x more on AWS in Frankfurt than on Hetzner, and the gap grows to around 5x once a workload sends several terabytes a month to the internet.
Price comparison
The table compares on-demand monthly prices as of 14 November 2026. Hetzner prices come from its General Purpose page (dedicated vCPU, Nuremberg and Helsinki, excluding VAT, including disk, one IPv4 address and 20 TB or more of traffic). AWS prices are Linux on-demand rates in Frankfurt from the EC2 pricing page, plus gp3 storage of the same size at $0.0952 per GB-month and one public IPv4 address at $0.005 per hour. Euros are converted at the ECB rate of 1.1052 USD.
| Size | Hetzner | AWS | Monthly price |
|---|---|---|---|
| 2 vCPU, 8 GB | CCX13 | m7i.large | Hetzner $40.88 to $48.07, AWS $99.41 |
| 4 vCPU, 16 GB | CCX23 | m7i.xlarge | Hetzner $81.22 to $95.59, AWS $195.18 |
| 8 vCPU, 32 GB | CCX33 | m7i.2xlarge | Hetzner $130.40 to $153.61, AWS $379.09 |
| 10 TB internet egress | Included | $0.09 per GB after 100 GB free | Hetzner $0, AWS $891 |
A small production setup of three 4 vCPU, 16 GB servers that serves 10 TB a month costs about $287 on Hetzner in Nuremberg and about $1,477 on AWS. The difference comes mostly from traffic, which the article on cloud egress fees explains in detail.
Both sides have levers that change the result. AWS discounts committed usage through savings plans and sells spare capacity as spot instances. Hetzner has neither, but its Cost-Optimized and Regular Performance lines share CPU cores between tenants and cost less than the dedicated CCX line. Hetzner raised prices twice in 2026, so older “Hetzner is 5x cheaper” figures no longer hold; why Hetzner is cheap and whether it still is has the dated history.
Traffic model
Hetzner bills only outgoing traffic, and only above the included amount: at least 20 TB a month per server in the EU, then €1.00 per TB. Incoming traffic and traffic to other Hetzner servers in the same network zone are free, according to the billing FAQ. US and Singapore servers include far less, from 0.5 TB to 8 TB depending on the type.
AWS charges per GB for data leaving a region to the internet, with the first 100 GB a month free across the account. In Frankfurt the first 10 TB cost $0.09 per GB. Traffic between availability zones and between regions is also billed.
What you run yourself on Hetzner
Hetzner provides compute, block and object storage, load balancers, private networks, firewalls and DNS. Services that AWS manages for you become your job:
| Need | AWS | On Hetzner |
|---|---|---|
| Relational database | Amazon RDS, Aurora | PostgreSQL or MySQL on servers, often with an operator such as CloudNativePG |
| Queues and streaming | SQS, Amazon MSK | RabbitMQ, NATS or Kafka that you operate |
| Kubernetes control plane | Amazon EKS | k3s, kubeadm, Cluster API or a third-party managed service |
| Access control | IAM with per-resource policies | API tokens scoped to a whole project |
| Cross-zone failover | Multi-AZ services | Your own replication across locations |
Hetzner API tokens cannot be limited to individual resources, so teams isolate workloads with separate Hetzner projects. Whether operating these components yourself pays off depends on team size and how many managed services you already use. The trade-off is the same one covered in running Kubernetes yourself versus using a managed service.
Locations, availability zones and SLA
| Hetzner Cloud | AWS | |
|---|---|---|
| Footprint | 6 locations: Falkenstein, Nuremberg, Helsinki, Ashburn, Hillsboro, Singapore | 39 regions, 124 availability zones |
| Failure domains | Location; placement groups spread servers over physical hosts | At least 3 availability zones per region |
| Compute SLA | 99.9% per server per month, credit only | 99.99% per region for multi-AZ deployments, 99.5% per instance |
| SLA remedy | Cloud credit for downtime beyond the threshold | 10%, 30% or 100% of the monthly EC2 bill as credit |
| Certifications | ISO/IEC 27001:2022, BSI C5 Type 2 for its European sites | C5 report and other audit reports through AWS Artifact |
Sources: Hetzner locations, cloud SLA and information security pages; AWS global infrastructure, compute SLA and C5 pages.
The three EU locations form one network zone, so private networks and Floating IPs span Falkenstein, Nuremberg and Helsinki. That makes cross-location high availability possible inside the EU, but the latency between Germany and Finland is higher than between AWS availability zones in one region. The article on whether Hetzner is reliable enough for production covers the design patterns.
Hetzner has also had capacity limits since 26 June 2026: its status page lists “Limited availability of cloud instances”, and new servers cannot always be created. AWS publishes service quotas per account and region that you raise on request.
When each one fits
AWS is the stronger choice when a workload depends on managed services such as Aurora, DynamoDB, SQS or Bedrock, needs regions outside Europe and the US, runs spiky global traffic behind CloudFront, or when startup credits cover the bill. Hetzner fits steady compute-heavy workloads, traffic-heavy services, CI runners, and teams that already run their stack on Kubernetes and prefer EU-based infrastructure at lower cost.
Many teams split the two. A hybrid setup has one trap: data that leaves AWS for Hetzner is billed as AWS internet egress at $0.09 per GB in Frankfurt, while Hetzner charges nothing for incoming traffic. Place chatty services on the same side, and move bulk data once rather than continuously.
Kubernetes across Hetzner and AWS
The Hetzner Kubernetes guide compares the ways to run Kubernetes on Hetzner. Cloudfleet’s managed Kubernetes for Hetzner runs the control plane and can add AWS and Google Cloud Fleets to the same cluster, so one workload set can use both providers.