Skip to content

strategic comparison

AWS and Azure vs Hetzner: the real cost of hosting a SaaS in 2026

A line-item cost comparison of AWS, Azure, and Hetzner for a real SaaS workload — where the 80% savings actually come from, and the honest tradeoffs of moving.

AWS and Azure vs Hetzner: the real cost of hosting a SaaS in 2026

Somewhere in your AWS or Azure bill is a number that started small and quietly became your second-biggest operating cost after payroll. For most SaaS companies we talk to, the infrastructure line grew with the product and nobody ever went back to ask whether it had to be that big. This is the page that asks — with real 2026 pricing, a worked example, and an honest account of what you give up by moving.

One disclosure up front: we migrate companies from the hyperscalers to Hetzner, so we have a side. We’ve also tried to write the comparison we’d want as the buyer — which means the “what you give up” section is as detailed as the savings, and the savings numbers are ones you can reproduce from published price lists.

The worked example

Take a representative mid-size B2B SaaS: two application servers (4 vCPU / 16 GB each), a managed PostgreSQL database with high availability, a Redis cache, a load balancer, 200 GB of block storage, 1 TB of object storage, and 5 TB of outbound traffic a month. Priced against each provider’s public 2026 rates:

Line itemAWSAzureHetzner
App compute (2×)$294$280~€125 (2× dedicated)
PostgreSQL (HA)$245$260~€62 (replica box, self-managed)
Redis cache~$230~$82co-hosted
Load balancer~$25~$25€7.49
Block storage (200 GB)$16$30on-server NVMe
Object storage (1 TB)$24$18€4.99
Backups(in object)(in object)€11.40
Egress (5 TB)$441$426€0
NAT gateway~$78
Monthly total≈ $1,350≈ $1,120≈ €210 (~$225)

That’s an ~83% reduction. It is not a trick of cherry-picked instance types — the compute lines are close. Look at where the gap actually opens: the egress line, and the absence of a managed-service premium. (Prices observed mid-2026 from each vendor’s published rates; verify current numbers before you make a decision on them — Hetzner in particular raised prices more than once in 2026, more on that below.)

Where the gap really comes from: egress

The single most important number in cloud economics is what you pay to send data to your own users. Here it is, three ways:

  • AWS: $0.09/GB after the first 100 GB — about $90 per TB.
  • Azure: $0.087/GB — about $87 per TB.
  • Hetzner: 20 TB/month included on every cloud server, then €1/TB — and on dedicated servers with a 1 Gbit uplink, unlimited.

That is roughly an 80–90× difference. A SaaS pushing 5 TB of API responses, assets, and exports a month pays ~$440 for the privilege on AWS and essentially nothing on Hetzner. At 20 TB — a busy product with media or data export — it’s ~$1,800/month on AWS versus still zero on a Hetzner dedicated box. Egress is a cost that scales with your success, which is exactly the kind of cost you least want to be punitive.

The hyperscalers also carry costs that don’t appear on the sticker. AWS’s NAT Gateway bills $32.85/month per gateway plus $0.045/GB for everything routed through it — on top of egress — and you want one per availability zone for HA. Inter-AZ traffic is $0.01/GB each way, so a multi-AZ database replica quietly meters its own replication. Azure’s zone-redundant HA simply doubles your database compute and duplicates its storage. None of these are scandals; they’re the defaults, and they’re why the real bill is usually higher than the estimate.

What you give up (the honest half)

If the only variable were cost, everyone would have moved already. They haven’t, because Hetzner is genuinely a different deal, and moving means accepting real tradeoffs:

  • No managed data services. There is no Hetzner equivalent of RDS, ElastiCache, Aurora, or managed Kubernetes. You run PostgreSQL, Redis, and your orchestration yourself — or pay a third party that runs them on Hetzner. Patching, failover, backups, and monitoring become your team’s job. This is the biggest single difference, and it’s the reason the compute is so much cheaper: you’re renting metal, not a platform.
  • You own the operations. No autoscaling-everything, no serverless functions, no managed queues or streams. The hyperscalers sell you the ability to not think about a large class of problems. Hetzner sells you the hardware and gets out of the way.
  • A smaller footprint. Hetzner’s core is Germany and Finland, with newer US (Virginia, Oregon) and Singapore locations — but those include far less traffic (~1 TB vs 20 TB) and a narrower service selection. There is nothing like AWS’s thirty-plus regions or global edge network.
  • A narrower compliance list. Hetzner is ISO 27001 certified and GDPR-friendly, but if your buyers demand HIPAA, FedRAMP, or PCI-at-scale attestations, the hyperscalers’ certification breadth may be non-negotiable.
  • Support is ticket-based. No enterprise TAM, no phone-based 24/7 SLA tiers. Excellent docs and community, but you are more self-reliant.
  • Prices do move now. Hetzner raised prices several times in 2026, including a large jump on its dedicated-vCPU cloud line. The gap versus the hyperscalers is still enormous, but the “Hetzner never changes its prices” era is over — model on current numbers, not folklore.

When each is the right call

Stay on AWS or Azure when you need global edge presence and dozens of regions, deep compliance attestations, the full managed/serverless catalog, spiky or event-driven workloads that serverless bills to zero, or you simply don’t have (and don’t want) the ops capacity to run your own data layer. For a lot of companies that’s the honest answer, and we’ll tell you so.

Move to Hetzner when your workload is a relatively steady SaaS footprint, your egress is meaningful and growing, your compliance needs are satisfied by ISO 27001 / GDPR, and either you have the ops capability or you’re willing to acquire it (or have us hand it to you). The teams that save the most are the ones whose bills are dominated by egress and managed-service premiums — which is most product SaaS companies past a certain scale.

How we migrate you — and what we leave behind

We’ve run this migration for client workloads across a range of shapes (we don’t name clients without written permission), and we ran it on our own infrastructure first: moving Code Majesty’s internal SaaS template off a cloud-native scaffold cut its infrastructure cost by 94% — from about $2,000/month to $120/month. The typical range we see on client migrations is 60–90%, depending on how much of the old bill was egress and managed-service premium.

The part that matters more than the savings: what you’re left running. The reason “cheaper metal” scares teams is the ops burden — and that’s precisely what our engagement addresses. A migration with us includes the self-managed data layer stood up properly (HA PostgreSQL, backups, monitoring, restore-tested), infrastructure-as-code so it’s reproducible, and the same guardrail and runbook discipline we bring to code — so when we leave, your team can operate the stack without us. The savings are the headline; the hand-off is the point. It’s the same philosophy as the rest of how we work: you own the system, not just the result.

The honest verdict

If your infrastructure bill is small, or your workload genuinely needs the hyperscalers’ global/managed/compliance breadth, stay — the savings won’t justify the operational change. If your bill has quietly become a six-figure annual line dominated by egress and managed-service premiums, the math in the table above is not an outlier; it’s typical, and it compounds every month you wait.

The cheapest way to find out which camp you’re in is an $80 cost-teardown call: bring a recent bill, and we’ll model your actual workload on Hetzner — including the ops you’d take on — and tell you honestly whether it’s worth moving. If it is, that’s a Sprint Zero migration; if it isn’t, you’ve spent $80 to stop wondering.