Hetzner vs. AWS — Real Cost Analysis for SaaS under 100k MAU
«We're going with AWS, that's what everyone uses» — the default answer when you ask any CTO which cloud to pick. Comfortable answer. Careers built on AWS. Zero career risk. But if you're the founder paying the bill, the real question is different: for my specific workload, is AWS actually the best choice — or just the safest one for my CTO? For SaaS under 100,000 active users in the EU, the math says Hetzner saves 70-90% at equivalent performance. Let's look at the real numbers.
Three typical workloads — comparison
Workload 1: Small B2B SaaS (1k MAU)
Next.js + PostgreSQL + Redis + S3-compatible app for file uploads. Traffic: 50k requests/day, 100GB storage, 500GB egress/month.
| Component | AWS | Hetzner |
|---|---|---|
| Compute (2 vCPU, 4GB RAM) | t3.medium: $30/month | CPX21: €5.83/month |
| PostgreSQL database | RDS db.t3.micro: $25/month | Self-managed on VPS €5/month |
| Redis cache | ElastiCache cache.t3.micro: $13/month | Included on VPS |
| Storage 100GB | EBS: $10/month | Included in VPS |
| Egress 500GB | $45/month (at $0.09/GB) | Free up to 20TB |
| S3-compatible storage 100GB | $2.30/month | Storage Box BX11: €3.81/month |
| Load balancer | ALB: $20/month | Hetzner LB11: €5.39/month |
| TOTAL | $145/month (~€135) | ~€20/month |
Saving: ~85% (€115/month × 12 = €1,380/year on a small workload).
Workload 2: Mid-tier SaaS (10k MAU)
Same stack, scale 4 app servers + 1 DB primary + 1 replica + dedicated Redis + 1TB storage + 5TB egress.
| Component | AWS | Hetzner |
|---|---|---|
| 4× compute (4 vCPU, 8GB) | 4× t3.large: $240/month | 4× CPX31: €52/month |
| RDS Postgres + replica | db.m6i.large + replica: $300/month | 2× CCX13: €30/month |
| Redis | ElastiCache: $80/month | CPX21: €5.83/month |
| Storage 1TB | EBS: $100/month | Included + Storage Box: €15/month |
| Egress 5TB | $450/month | Free |
| Load balancer | ALB: $30/month | LB21: €13/month |
| Backup & snapshots | $50/month | €10/month |
| TOTAL | $1,250/month (~€1,160) | ~€126/month |
Saving: ~89% (€1,034/month × 12 = €12,408/year).
Workload 3: Heavy SaaS (100k MAU + ML inference)
Here it gets nuanced. AWS offers managed ML services (SageMaker, Bedrock) that simplify ML. On Hetzner you self-administer GPU servers.
For pure CPU/IO workloads at scale: Hetzner remains 60-70% cheaper. For ML workloads with burst spikes: AWS can be competitive via spot instances + Lambda.
When AWS remains the right choice
1. Extensive managed services
Lambda, EventBridge, Step Functions, SQS, SNS, Aurora Serverless, DynamoDB on-demand. On Hetzner you must build them (BullMQ + Redis for queue, Postgres for everything). If team is small and you want zero ops, AWS saves dev-time.
2. Native multi-region
Hetzner has 4 datacenters (DE × 2, FI, US × 2). AWS has 30+ regions. If audience is global or you have regulatory requirements for a specific location, AWS is the only option.
3. Enterprise compliance
SOC 2, HIPAA, FedRAMP, PCI DSS — AWS has pre-existing certifications. On Hetzner you do compliance, which can cost more in audit than infrastructure savings.
4. Unpredictable traffic spikes
Black Friday 100x traffic spike? AWS auto-scaling solves in seconds. Hetzner requires manual planning.
5. State-of-the-art AI/ML
Bedrock with Claude/Anthropic, Amazon Q, Trainium for training. Hetzner doesn't offer managed AI services.
Hybrid strategy — best of both worlds
Many successful SaaS use a combination:
- Compute on Hetzner (90% saving on instances)
- Cloudflare for CDN, DDoS, WAF (no egress fees)
- S3-compatible storage: Backblaze B2 or Cloudflare R2 (zero egress)
- AWS / GCP only for: AI/ML, Lambda for sporadic workloads, managed services when time-to-market matters more than cost
This combo delivers 80-90% of AWS feature-set at 20-30% of the cost.
Hetzner pitfalls
1. Self-managed — you need DevOps skills
Hetzner gives you VPS, you do the rest: install Postgres, configure backup, monitoring, security hardening, OS updates. If team lacks DevOps competence, real cost (engineer time) cancels savings.
2. Limited outbound network
Hetzner Cloud has 20TB egress included. If you exceed quickly (good CDN helps), you're fine. Video/streaming SaaS can consume rapidly.
3. Manual disaster recovery
Automated backup at Hetzner = €/month extra and must be configured. AWS RDS has it out-of-box.
4. Limited support
Email/ticket support ~24h response. AWS Business Support: 1h. For critical oncall, plan internal runbook.
Final recommendation
- MVP / pre-Series A startup: Hetzner — savings fund 6-12 months extra runway.
- EU B2B SaaS under 100k MAU: Hetzner default, AWS for specific services (queue, ML).
- Enterprise / global / compliance heavy: AWS or GCP.
- State-of-the-art AI/ML workloads: AWS Bedrock or GCP Vertex AI.
Conclusion
«Everyone uses AWS» isn't an argument for your budget. For EU SaaS under 100k MAU, Hetzner saves 70-90% and lets you reinvest in development or marketing. Hybrid strategy (Hetzner + Cloudflare + AWS for specific services) is the current sweet spot.