AWS vs Hetzner: Real Numbers for a SaaS Backend

Ricky avatar
Ricky
Cover for AWS vs Hetzner: Real Numbers for a SaaS Backend

Every cloud cost discussion eventually reaches the same point: “But how much would it actually cost on dedicated hardware?” The conversation stalls there because nobody has done the maths.

So let me do the maths.

I am going to model a realistic SaaS backend — the kind of stack you would see at a B2B company with 5,000 customers and £2–5M ARR — and price it on both AWS and Hetzner dedicated servers. Same workload, same performance requirements, real prices from February 2026.

The Reference Architecture

Here is our SaaS stack:

  • 3 application servers — 8 vCPU, 32GB RAM each, running a containerised API
  • 1 database server — 8 vCPU, 64GB RAM, PostgreSQL with 1TB SSD storage
  • 1 cache/queue server — 4 vCPU, 16GB RAM, Redis + background job processing
  • 1 monitoring server — 4 vCPU, 16GB RAM, Prometheus + Grafana + log aggregation
  • Load balancing — TLS termination, health checks, routing
  • Object storage — 2TB for user uploads and assets
  • Backups — Daily database backups retained for 30 days
  • Data transfer — 5TB outbound per month

This is a bread-and-butter SaaS deployment. Nothing exotic, nothing over-engineered.

AWS Pricing

All prices in GBP, EU (Ireland) region, on-demand pricing. Reserved Instance pricing shown separately.

Compute

ResourceInstanceMonthly Cost
App servers (×3)m6i.2xlarge£831 (£277 each)
Databaser6g.2xlarge (RDS Multi-AZ)£768
Cache/Queuer6g.xlarge (ElastiCache)£432
Monitoringm6i.xlarge£138

Compute subtotal: £2,169/month

Storage

ResourceSpecMonthly Cost
RDS storage1TB gp3, 3000 IOPS£96
EBS (app servers ×3)100GB gp3 each£19
EBS (monitoring)500GB gp3£38
S3 (object storage)2TB Standard£44

Storage subtotal: £197/month

Networking

ResourceSpecMonthly Cost
ALB1 load balancer + LCUs£120
NAT Gateway3 AZs, 2TB processed£246
Data transfer out5TB£364

Networking subtotal: £730/month

Other

ResourceSpecMonthly Cost
RDS backups1TB, 30-day retention£19
CloudWatchMetrics + logs£180
Route 53Hosted zone + queries£5

Other subtotal: £204/month

AWS Total

On-Demand1-Year RI/SP
Monthly£3,300~£2,310
Annual£39,600~£27,720

The Reserved Instance price assumes a 30% discount on compute (typical for 1-year no-upfront commitments). Networking and storage do not benefit from reservations.

Hetzner Pricing

Hetzner dedicated servers, Helsinki datacenter. Prices from their server auction and standard configurator.

Compute

ResourceServerMonthly Cost
App servers (×3)AX42 (8-core, 64GB, 2×512GB NVMe)£132 (£44 each)
DatabaseAX102 (12-core, 128GB, 2×1.92TB NVMe)£73
Cache/QueueAX42 (8-core, 64GB)£44
MonitoringAX42 (8-core, 64GB)£44

Compute subtotal: £293/month

Note: Hetzner servers come with more RAM and CPU than our minimum spec. The AX42 gives us 64GB where we only need 32GB. This headroom is essentially free.

Storage

ResourceSpecMonthly Cost
Database storageIncluded in server (NVMe)£0
App server storageIncluded in server (NVMe)£0
Object storage2TB (Hetzner Storage Box)£8

Storage subtotal: £8/month

Networking

ResourceSpecMonthly Cost
Load balancingCaddy on app server (or dedicated £4/mo VPS)£4
Data transfer20TB included per server£0

Networking subtotal: £4/month

Other

ResourceSpecMonthly Cost
BackupsHetzner Storage Box (1TB)£4
MonitoringSelf-hosted (on monitoring server)£0
DNSCloudflare (free tier)£0

Other subtotal: £4/month

Hetzner Total

MonthlyAnnual
Total£309£3,708

The Comparison

AWS On-DemandAWS ReservedHetzner
Monthly£3,300£2,310£309
Annual£39,600£27,720£3,708
vs Hetzner10.7x7.5x1x

Even after AWS Reserved Instance discounts, the same workload costs 7.5x more on AWS.

Let me say that differently: the annual saving from running this stack on Hetzner instead of AWS is £24,012 to £35,892 — depending on whether you compare against reserved or on-demand pricing.

”But What About…”

I can hear the objections. Let me address them honestly.

”Hetzner does not have the same reliability”

Hetzner’s SLA is 99.9% uptime. AWS’s EC2 SLA is 99.99%. That is a real difference — 8.7 hours of downtime per year versus 52 minutes.

But here is the nuance: AWS’s SLA applies per-instance. If a single instance goes down, you get credits. Your application’s actual availability depends on your architecture, not on the underlying platform’s SLA. A well-architected deployment on Hetzner (multiple servers, health checks, automated failover) can achieve the same application-level availability as AWS.

”What about auto-scaling?”

Our reference architecture runs at steady state. It serves 5,000 customers with predictable traffic. If traffic doubles overnight, you need to add capacity — on either platform.

On AWS, auto-scaling adds instances in minutes. On Hetzner, provisioning a new dedicated server takes 1–24 hours (often minutes from their auction). For truly bursty traffic, this is a real limitation. For steady-state SaaS with gradual growth, it is irrelevant.

If you occasionally need burst capacity, a hybrid approach works well: run your baseline on Hetzner, burst into cloud when needed.

”What about managed databases?”

RDS is genuinely convenient. Automated backups, point-in-time recovery, read replicas, failover — all handled for you. Self-hosted PostgreSQL requires you to set up pgBackRest, streaming replication, and connection pooling yourself.

That setup takes about a day with modern tooling. Ongoing maintenance is a few hours per month. The question is whether that time is worth £500+/month. For most teams at this scale, the answer is no.

”What about global availability?”

If you need servers in 25+ regions, Hetzner cannot help you. They have 5 locations (Falkenstein, Nuremberg, Helsinki, Ashburn, Hillsboro). For a European SaaS company serving European customers, that is fine. For a global product, you would need to combine Hetzner with a CDN (Cloudflare, Bunny) or consider a hybrid approach.

”What about the hidden operational cost?”

This is the most legitimate concern. Running your own infrastructure requires operational expertise. You need someone who can diagnose a failing disk, manage OS updates, and handle security patches.

But let me quantify it: if self-hosting requires 10 hours per month of additional engineering time at £100/hour, that is £1,000/month. Add that to Hetzner’s £309 and you are at £1,309 — still less than half of AWS Reserved pricing.

When AWS Actually Wins

This comparison is not meant to say “always use Hetzner.” There are legitimate cases where AWS provides value that justifies the cost:

  • Startups in the first 1–2 years who need to move fast and should not be managing infrastructure
  • Highly variable workloads where you genuinely cannot predict capacity needs
  • Compliance-heavy industries where AWS’s certifications and audit trails reduce your burden
  • Teams with zero operations experience who would spend more time managing servers than the cost difference warrants

The decision should be based on arithmetic, not assumption. Too many companies default to AWS without ever modelling the alternative.

Running the Numbers for Your Stack

The specific numbers in this comparison will differ for your workload. Maybe you need GPU instances (where cloud pricing is even more aggressive). Maybe you need less compute but more storage (where the gap narrows). Maybe you are already on Reserved Instances and the delta is smaller than my on-demand comparison.

The exercise of modelling both options takes about two hours and can save you five or six figures annually. It is one of the highest-return analyses an engineering team can do.


Want us to run these numbers for your specific stack? Book a Platform Fit Verdict and we will model your infrastructure on cloud versus dedicated — with real prices and honest trade-offs.

Overpaying for cloud?

Book Assessment