Why This Comparison Matters
Hetzner is the worst-kept secret in developer infrastructure. Founded in 1997, privately held, based in Germany, running their own data centers in Nuremberg, Falkenstein, Helsinki, and Ashburn. They don't spend on marketing. Their hardware is excellent. Their prices are lower than almost anything else in the industry.
AWS is the opposite: massive marketing, complicated pricing, premium brand, and global infrastructure that's genuinely hard to match. But you're paying for all of it whether you need it or not.
The question isn't "which is better" — it's "which is right for what you're building."
Price Comparison
Let's start with the number that matters most:
| Spec | Hetzner (Cloud) | Hetzner (Dedicated) | AWS (On-Demand) | AWS (Reserved 1yr) |
|---|---|---|---|---|
| 2 vCPU / 4GB | $4.51/mo | — | $30/mo (t3.medium) | $18/mo |
| 4 vCPU / 8GB | $8.21/mo | — | $120/mo (t3.xlarge) | $73/mo |
| 8 vCPU / 16GB | $14.52/mo | — | $240/mo (t3.2xlarge) | $146/mo |
| Intel i9-13900 / 64GB NVMe | — | $57/mo | ~$800/mo equivalent | — |
| AMD EPYC / 128GB NVMe | — | $95/mo | ~$1,600/mo equivalent | — |
| Egress (1TB/mo) | $1.19 | $0 (20TB free) | $90 | $90 |
Hetzner Cloud prices are shared VMs. Hetzner Dedicated (what RAW uses) is physical servers with no shared CPU. AWS us-east-1, April 2026.
Performance: Hetzner Dedicated vs AWS EC2
We benchmarked equivalent specs (8 physical cores, 64GB RAM, NVMe storage) across providers:
| Benchmark | Hetzner Dedicated | AWS c6i.4xlarge | Winner |
|---|---|---|---|
| CPU (sysbench, single-thread) | 4,821 | 3,940 | Hetzner +22% |
| CPU (sysbench, multi-thread) | 51,200 | 44,800 | Hetzner +14% |
| Disk read (NVMe, sequential) | 3.2 GB/s | 2.1 GB/s (EBS gp3) | Hetzner +52% |
| Disk IOPS (random 4K) | 480,000 | 16,000 (gp3 base) | Hetzner +2900% |
| Network bandwidth | 1 Gbps dedicated | Up to 12.5 Gbps (burst) | AWS (burst) |
| Latency (ping, Frankfurt) | ~1ms intra-DC | ~2-4ms | Hetzner |
| CPU steal time | 0% | 2-8% | Hetzner |
EBS IOPS: gp3 baseline is 3,000 IOPS; 16,000 requires provisioned IOPS at additional cost. AWS network bandwidth shown is max burst, not sustained.
The IOPS difference is the one that shocks people. AWS EBS gp3 gives you 3,000 IOPS baseline for free. NVMe on a Hetzner dedicated server gives you 480,000+ IOPS at no extra cost. For database-heavy workloads, this is transformational.
Where AWS Wins
Let's be genuinely fair. AWS has real advantages:
Global Reach
AWS has 33 regions and 105 availability zones. Hetzner has 5 locations (Nuremberg, Falkenstein, Helsinki, Singapore, Ashburn). If you need <50ms latency in São Paulo, Seoul, Mumbai, and Sydney simultaneously, AWS wins.
Managed Services Depth
AWS has 200+ services. Need serverless with Aurora Serverless v2? Kinesis for real-time streams? SageMaker for ML training at scale? There's no Hetzner equivalent. You'd build or integrate these yourself.
Compliance Certifications
AWS holds 143+ compliance certifications: SOC 1/2/3, ISO 27001, HIPAA, PCI DSS, FedRAMP, and many more. Hetzner has ISO 27001 and is GDPR-compliant (actually more relevant for EU companies), but the compliance breadth isn't comparable.
Enterprise Integrations
AWS Directory Service, AWS SSO, AWS Organizations, AWS Control Tower — for enterprises managing 100+ AWS accounts with complex IAM structures, Hetzner doesn't have equivalents.
Where Hetzner Wins
Price/Performance Ratio
There's no cloud provider that comes close to Hetzner's price/performance for raw compute. On dedicated servers, you get genuine bare metal — no hypervisor, no CPU sharing, no IOPS limits — at prices that make AWS Reserved look expensive.
Predictable Billing
Hetzner charges flat monthly rates. No egress fees (20TB/month free on dedicated, then €1/TB). No surprise bills. You know exactly what you'll pay.
GDPR and EU Data Residency
Hetzner is a German company operating under EU law. For European companies handling personal data, Hetzner is often the simpler GDPR story than AWS (which requires additional Data Processing Agreements and decisions about US data transfers under Schrems II).
Support
Hetzner's default support is included in the price. Real humans respond to hardware issues. AWS basic support is documentation only — you pay extra for human access.
The Real-World Decision Matrix
| Scenario | Go with Hetzner | Go with AWS |
|---|---|---|
| Side project / indie hacker | ✓ | |
| B2B SaaS (EU focused) | ✓ | |
| Database-heavy workload | ✓ | |
| CI/CD build servers | ✓ | |
| Need 15+ global regions | ✓ | |
| FedRAMP / GovCloud required | ✓ | |
| Enterprise with existing AWS org | ✓ | |
| Cost is primary constraint | ✓ | |
| Developer productivity matters | ✓ (with RAW) | ✓ (managed) |
The Problem With Hetzner (Until Now)
Hetzner's Robot panel and server ordering flow is functional but dated. Provisioning a dedicated server takes 1-24 hours. There's no CLI. No one-command deploys. No free tier to try things out.
This is the gap RAW fills. We run on Hetzner infrastructure — the same AMD EPYC and Intel Xeon servers, the same Frankfurt and Helsinki data centers — but we wrap it with a modern provisioning layer:
- Servers ready in ~45 seconds instead of hours
npx rawhq deployinstead of Robot panel navigation- Free tier to start without a credit card
- Ubuntu 24.04, Docker pre-installed, SSH configured automatically
You get Hetzner's hardware at Hetzner's prices, with a developer experience closer to Fly.io or Railway.
Migration from AWS to Hetzner/RAW
The main concerns when migrating:
- S3. Replace with MinIO (self-hosted, S3-compatible) or Backblaze B2 ($0.006/GB storage, $0.01/GB egress — still much cheaper than AWS).
- CloudFront CDN. Replace with Cloudflare (free tier is genuinely good) for static assets and DDoS protection.
- Route 53. Cloudflare DNS is free and faster globally.
- Load balancing. HAProxy or Caddy on a $4/month Hetzner Cloud VPS handles 10,000+ req/sec easily.
- Managed databases. Run your own Postgres on bare metal. Set up daily pg_dump backups to Backblaze B2.
Try It
Get a bare metal server on Hetzner hardware, deployed in seconds. No credit card, no 24-hour wait, no Robot panel.
$ npx rawhq deployDeploy Free Server →