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.

ComponentAWSHetzner
Compute (2 vCPU, 4GB RAM)t3.medium: $30/monthCPX21: €5.83/month
PostgreSQL databaseRDS db.t3.micro: $25/monthSelf-managed on VPS €5/month
Redis cacheElastiCache cache.t3.micro: $13/monthIncluded on VPS
Storage 100GBEBS: $10/monthIncluded in VPS
Egress 500GB$45/month (at $0.09/GB)Free up to 20TB
S3-compatible storage 100GB$2.30/monthStorage Box BX11: €3.81/month
Load balancerALB: $20/monthHetzner 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.

ComponentAWSHetzner
4× compute (4 vCPU, 8GB)4× t3.large: $240/month4× CPX31: €52/month
RDS Postgres + replicadb.m6i.large + replica: $300/month2× CCX13: €30/month
RedisElastiCache: $80/monthCPX21: €5.83/month
Storage 1TBEBS: $100/monthIncluded + Storage Box: €15/month
Egress 5TB$450/monthFree
Load balancerALB: $30/monthLB21: €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.

Want to move from AWS to Hetzner?

Current infrastructure audit + zero-downtime migration plan + savings estimate.

Request audit

Read next