AWS vs Hetzner pricing — real cost for SaaS under 100k MAU
AWS vs Hetzner pricing is where default-to-AWS stops making sense. For stable, EU-bound workloads under 100k MAU, Hetzner is 3–7× cheaper at equivalent performance. Real monthly bills on typical workloads below.
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 the ML side. On Hetzner you manage GPU servers yourself.
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 build these yourself (BullMQ + Redis for queues, Postgres for everything). If your team is small and you want zero ops, AWS saves developer 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. Managed AI/ML (Bedrock, Vertex)
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 a VPS, you do the rest: install Postgres, configure backups, monitoring, security hardening, OS updates. If your team lacks DevOps experience, the real cost (engineer hours) cancels out the 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.
- Managed AI/ML workloads: AWS Bedrock or GCP Vertex AI.
Conclusion
"Everyone uses AWS" isn't an argument your budget cares about. For EU SaaS under 100k MAU, Hetzner cuts hosting spend 70-90% and lets you reinvest in development or marketing instead. A hybrid setup — Hetzner + Cloudflare + AWS for the handful of services that need it — is the current sweet spot.