Hetzner vs AWS for AI Workloads: The Honest Breakdown (2026)
Most “hetzner vs aws ai workloads” comparisons I read online are either breathless Hetzner fanboying or AWS enterprise sales brochures. Neither is useful when you actually have to pick where your AI inference pipeline, your n8n instance, or your fine-tuned Llama deployment should live.
I run production AI systems on both clouds. Steady-state stuff sits on Hetzner. Burst GPU jobs and anything that has to integrate with an AWS-native enterprise backend goes on AWS. The decision is not ideological. It comes down to workload shape, team size, and what you actually need from your cloud.
Here is the honest version of the hetzner vs aws ai workloads comparison, based on what I pay, what I run, and where each cloud is the right call.
Verdict up front
Hetzner wins for steady-state AI inference workloads that call external APIs (Claude, OpenAI, Gemini, Mistral), self-hosted automation platforms (n8n, Supabase, Postgres, Redis), development and staging VPS, batch jobs with predictable load, European data residency, and small-to-medium GPU workloads (RTX 4000 Ada, L4, L40S) where you can commit to a monthly server.
AWS wins for on-demand frontier GPU access (H100, A100), managed inference (Bedrock, SageMaker), global edge distribution, enterprise compliance that auditors need to see on a certification page (SOC2 Type II, HIPAA, FedRAMP), multi-region failover at scale, and deep integration with other AWS services (SQS, DynamoDB, EventBridge, IAM across your org).
If your AI workload is “a Python script that hits the Claude API on a schedule and writes to Postgres”, you are paying the AWS tax for things you do not use. If your AI workload is “we need to burst 40 H100s for a fine-tune next Tuesday and the compliance team needs FedRAMP”, Hetzner is not in the running.
Most practitioners want a hybrid. I will cover that pattern below.
Where Hetzner wins
API-based AI workloads. The majority of production AI work in 2026 is orchestration, not training. You call Claude or OpenAI or Mistral, you process the response, you write to a database, you notify a user. There is no GPU in that pipeline. The cloud is just running a Linux process that makes HTTPS calls. Hetzner does that for about one-fifth the AWS bill.
Self-hosted automation platforms. n8n, Supabase, Postgres, Redis, RabbitMQ, Prefect, Airflow, Temporal. All of these run happily on a Hetzner VPS or dedicated server. You are not getting value from AWS managed services when your stack is four containers on one box. If you want to go deeper on self-hosted n8n on a VPS, the Linux VPS setup for AI development post walks through the exact provisioning pattern I use.
Development and staging environments. These sit idle 70 percent of the time. AWS on-demand pricing punishes idle. Hetzner flat-rate pricing rewards it. I keep a 32 GB staging VPS on Hetzner for 50 euros a month. The AWS equivalent is 350 dollars a month reserved, or 800 dollars on-demand.
Batch jobs with predictable load. Nightly embedding generation. Weekly analytics rollup. Cron-driven agent pipelines. If the load is predictable, you are overpaying for elasticity you never use. The same logic is in the guide I wrote on running 10 AI agents in production as bash scripts: you do not need Kubernetes for cron.
European data residency. Hetzner runs out of Germany and Finland. GDPR posture is native. AWS eu-central-1 (Frankfurt) gets you there too, but the marketing around “EU sovereign” is easier to sell to a DACH client when the provider itself is European.
Small-to-medium GPU workloads. Hetzner has dedicated GPU servers (GEX44 with RTX 4000 Ada 20 GB, GEX130 with L40S 48 GB, and AX-GPU lines with RTX 6000 Ada 48 GB). For inference of 7B to 70B open models, these are fine. The price is about one-third of the AWS equivalent, but you commit to a full month and there is no hourly billing.
Where AWS wins
Frontier GPU access. If you need H100 or A100 capacity, Hetzner does not have it. AWS has p4d (A100), p5 (H100), and p5e (H200) instances. You will fight for quota on the newer SKUs, but they exist. Hetzner’s GPU ceiling is the RTX 6000 Ada and L40S.
Hourly and spot billing for GPUs. AWS bills GPU by the second. Spot instances can drop the effective price by 60 to 70 percent if your workload is interruptible. Hetzner GPU servers are monthly commit, no spot, no per-hour. If your GPU usage is bursty (three hours a week of fine-tuning), AWS spot is much cheaper than a dedicated Hetzner month.
Managed AI services. Bedrock gives you Claude, Llama, Mistral, Titan, and more behind a single AWS-IAM-aware API. SageMaker handles model training, hosting, and monitoring. Comprehend, Rekognition, and Transcribe handle the NLP and vision basics without you writing model code. Hetzner is infrastructure only. There is no managed AI layer.
Global edge. CloudFront plus Lambda@Edge plus Route53 latency routing puts your inference endpoint within 50 ms of 90 percent of internet users. Hetzner has one region per country and no edge compute. If your workload is latency-sensitive to a global audience, this matters.
Enterprise compliance certifications. AWS has SOC 2 Type II, ISO 27001, HIPAA, FedRAMP, PCI DSS, and dozens more on its certification page. If your procurement team has a checklist, AWS ticks it. Hetzner has ISO 27001 and is GDPR-aligned, but it will not pass a HIPAA or FedRAMP audit.
Multi-region failover at scale. AWS has 30+ regions with automatic cross-region replication patterns (S3 CRR, RDS cross-region read replicas, Route53 health checks). Hetzner has five data centers total. If your SLA requires true multi-region disaster recovery, AWS has the footprint.
Integration with other AWS services. If you are already on AWS for EventBridge, SQS, DynamoDB, IAM cross-account trust, or Organizations, adding AI workloads to the same account gets you VPC peering, IAM roles, and audit logging for free. Leaving AWS for one AI box costs you that integration.
Price comparison at equivalent specs
These are list prices in April 2026 converted at 1 EUR = 1.08 USD for illustration. AWS prices are for us-east-1, reserved 1-year no-upfront unless noted.
General compute VPS
| Spec | Hetzner | AWS | Delta |
|---|---|---|---|
| 8 vCPU, 32 GB RAM, 240 GB NVMe | CCX33, 50 EUR/mo | m7a.2xlarge reserved + 240 GB gp3, ~350 USD/mo | ~6x |
| 16 vCPU, 64 GB RAM, 360 GB NVMe | CCX43, 100 EUR/mo | m7a.4xlarge reserved + 360 GB gp3, ~700 USD/mo | ~6x |
| 32 vCPU, 128 GB RAM, 600 GB NVMe | CCX53, 200 EUR/mo | m7a.8xlarge reserved + 600 GB gp3, ~1400 USD/mo | ~6x |
Dedicated / bare metal
| Spec | Hetzner | AWS | Delta |
|---|---|---|---|
| 6C/12T Ryzen 5600X, 64 GB RAM, 2x 512 GB NVMe | AX41-NVMe, 50 EUR/mo | m7a.4xlarge + 1 TB gp3 reserved, ~700 USD/mo | ~13x |
| 8C/16T Ryzen 7700, 128 GB RAM, 2x 1 TB NVMe | AX102, 110 EUR/mo | m7a.8xlarge + 2 TB gp3 reserved, ~1500 USD/mo | ~13x |
Dedicated is where the gap is largest, because AWS does not have a bare-metal-at-shared-prices equivalent.
GPU instances
| Spec | Hetzner | AWS | Notes |
|---|---|---|---|
| L4 class (20-24 GB VRAM) | GEX44 RTX 4000 Ada, 184 EUR/mo | g6.xlarge, ~500 USD/mo on-demand, ~250 USD/mo reserved | AWS wins with spot for bursty use |
| L40S (48 GB VRAM) | GEX130 L40S, ~430 EUR/mo | g6e.xlarge, ~1000 USD/mo on-demand | Hetzner wins for steady inference |
| H100 (80 GB VRAM) | Not available | p5.48xlarge, ~98 USD/hour | AWS only |
| 8x H100 cluster | Not available | p5.48xlarge, ~98 USD/hour | AWS only |
Storage
| Spec | Hetzner | AWS | Notes |
|---|---|---|---|
| 5 TB object storage | Storage Box BX41, 14 EUR/mo | S3 Standard, ~115 USD/mo + egress | Hetzner is SFTP/WebDAV/S3-compatible |
| 1 TB block storage | Volume, 40 EUR/mo | EBS gp3, ~80 USD/mo | AWS has higher baseline IOPS |
Network egress is often the real cost
This is where AI workloads that return large responses (RAG with 10 KB answers, image generation, video inference) get expensive on AWS and people do not notice until the bill arrives.
Hetzner: 20 TB of outbound traffic included on most Cloud and Dedicated plans. Overage is 1 EUR per TB.
AWS: 100 GB/month included. After that, 0.09 USD per GB for the first 10 TB, scaling down to 0.05 USD per GB above 150 TB. That is 90 USD per TB versus 1 EUR per TB. Roughly 90x.
If your AI service returns 1 KB responses at 10 requests per second, that is 2.6 TB per month. Trivial either way. If it returns 50 KB RAG responses at 100 requests per second, that is 13 TB per month. On Hetzner it is included. On AWS it is roughly 1,200 USD per month just in egress, on top of compute.
Egress is the number that blows up AI side projects that suddenly get traction on AWS. Plan for it.
GPU reality check
Hetzner’s GPU story is honest but limited. You get fixed monthly servers with consumer-grade or workstation GPUs (RTX 4000 Ada, RTX 6000 Ada) and datacenter GPUs up to L40S. There is no hourly billing, no spot, and no H100 or A100. You commit to a month and you manage the CUDA install yourself.
AWS has the whole ladder. G5 (A10G), G6 (L4), G6e (L40S), P4 (A100), P5 (H100), P5e (H200). Hourly billing, spot available on older SKUs, Deep Learning AMIs with CUDA and PyTorch preinstalled. Quotas on newer SKUs are tight and often require a support ticket, but the hardware exists.
The practical decision tree:
- Fine-tuning a 7B to 13B open model on a few GB of data, running once a week: AWS spot, 10 USD to 50 USD per run.
- Serving a fine-tuned 70B model 24/7 for internal tools: Hetzner GEX130 (L40S 48 GB), 430 EUR per month.
- Training a 70B+ model from scratch: AWS P5, or a specialist GPU cloud (Lambda, CoreWeave, RunPod). Hetzner is not in this conversation.
- Inference of 7B to 13B models for API-style workloads: Hetzner L4 or L40S for steady load, AWS G6 on-demand for bursty load.
If your GPU usage is fewer than 200 hours a month, AWS on-demand or spot is cheaper than a Hetzner dedicated GPU. Above 200 hours a month, Hetzner wins on flat rate.
Managed AI services: the AWS-only story
Bedrock is the service Hetzner has no answer to. For a flat markup over the underlying model provider, you get:
- Claude (Anthropic), Llama (Meta), Mistral, Titan, Cohere, Jamba, and AWS-hosted fine-tunes behind one API.
- VPC endpoints so calls never leave your AWS network.
- IAM-native auth (no separate API key management).
- CloudTrail audit logging on every inference call.
- Provisioned throughput for predictable latency at scale.
If your org is already “we do everything through IAM and VPC” on AWS, Bedrock removes the hurdle of bringing in a third-party API key and the associated vendor review. It is a compliance and procurement shortcut, not a technical one. The underlying models are the same ones you get from Anthropic or Mistral directly.
SageMaker covers the training and hosting case, but in practice most teams running open models have moved to vLLM, TGI, or their own FastAPI wrappers because SageMaker’s markup is steep and the abstractions leak. If you want a deeper pricing-per-call breakdown of the hosted LLM APIs themselves, the LLM API cost comparison guide has the current numbers.
Hetzner has none of this. You run vLLM or Ollama or your own server, you manage the API keys, you implement your own audit logging. For a small team this is fine. For a regulated enterprise it is a non-starter.
Compliance and data residency
Hetzner’s compliance posture:
- ISO 27001 certified.
- GDPR-aligned (German and Finnish data centers, EU company).
- DIN ISO/IEC 27001, BSI C5-aligned for some products.
- No HIPAA, no FedRAMP, no PCI DSS Level 1.
AWS’s compliance posture:
- Everything above, plus HIPAA BAA, FedRAMP High, PCI DSS Level 1, SOC 2 Type II, ISO 27017, ISO 27018, and roughly 100 more.
For a DACH B2B workload that needs GDPR and nothing else, Hetzner is equivalent and arguably easier to sell (“the infrastructure is European”). For a regulated industry (health, finance, government), AWS is the only serious option among the two.
Ops overhead
This is the hidden cost that spreadsheets miss.
On Hetzner you manage:
- OS patching (unattended-upgrades helps, but you own it).
- Firewall and security groups (ufw, nftables, or Hetzner’s Cloud Firewall).
- Backups (restic, borg, or rsync to a Storage Box).
- Log aggregation (Loki, or journald if you stay small).
- Monitoring (Prometheus + Grafana, or a hosted Grafana Cloud).
- Updates and restarts of your services (systemd does most of this, see the systemd services for AI servers post for the pattern I use).
- Certificate renewal (Certbot hooks).
- Hardware failure recovery (rare on Hetzner, but you are the one rebuilding from backup).
On AWS you can offload most of this to managed services (RDS for databases, ElastiCache for Redis, EKS or ECS for containers, ALB for load balancing, CloudWatch for logs and metrics, ACM for certs). You pay a multiple of the underlying compute cost for each managed layer. The tradeoff is real: one DevOps hire costs about 90,000 EUR a year in Germany, fully loaded. If managed AWS services replace 30 percent of a DevOps role, the math gets interesting fast.
For a solo founder or a team of three, Hetzner ops overhead is a weekend a month if you set it up right. For a team of thirty, that weekend a month across the whole stack becomes a full-time hire, and AWS starts looking reasonable.
Realistic stack cost examples
My own stack (the practitioner signal)
I run Hugo for renezander.com, a TickTick MCP server (systemd), a Telegram bot (bash daemon with long polling), 10 AI agents (bash + cron + claude -p), an n8n instance, a Postgres, and a Redis. All on one Hetzner CCX23 (4 vCPU, 16 GB RAM).
Total: about 15 EUR per month.
The same stack on AWS: m7a.large (4 vCPU, 8 GB), RDS Postgres db.t4g.small, ElastiCache Redis cache.t4g.small, ALB, Route53, 50 GB of gp3 storage, plus egress. Reserved pricing: roughly 200 to 400 USD per month depending on how many hours the bot and agents are actually running.
Same workload. 13x price difference. The tradeoff: I am the one handling patching, backups, and the occasional 3 AM reboot. That is a tradeoff I take happily at this scale. At ten times the traffic I would reconsider.
Small SaaS (10 req/s API, Postgres, Redis, one GPU for embeddings)
Hetzner: CCX43 app server (100 EUR), Postgres on a CX32 (13 EUR), Redis on a CX22 (6 EUR), GEX44 for embeddings (184 EUR), Storage Box for backups (5 EUR). Total: ~310 EUR per month.
AWS equivalent: m7a.4xlarge reserved (700 USD), RDS Postgres db.m7g.large (250 USD), ElastiCache r7g.large (200 USD), g6.xlarge on-demand (500 USD), S3 + egress (100 USD), ALB (25 USD). Total: ~1775 USD per month.
~6x delta. AWS throws in auto-scaling, managed failover, and zero ops for the managed services. Whether that is worth 1400 USD a month extra depends on how much you value one engineer’s weekends.
The hybrid pattern
The correct answer for many teams is not “choose one”. It is “put each workload on the cloud where it belongs”.
A realistic hybrid:
- Hetzner: steady-state app servers, databases, Redis, n8n, self-hosted observability, dev and staging, batch jobs. 70 to 90 percent of the compute bill lives here.
- AWS: burst GPU inference (G6 on-demand), S3 for object storage (best-in-class client compatibility), Route53 for DNS (good enough, everywhere), CloudFront when you actually need global edge, Bedrock when a client’s procurement requires it.
- A specialist GPU cloud (Lambda, CoreWeave, RunPod) for training runs that need H100s for a few hours.
The routing between them is just HTTPS. Put your steady app on Hetzner, let it call out to AWS (Bedrock, Lambda) or a GPU cloud (vLLM endpoint on RunPod) when it needs those services. Egress charges apply, but the volumes are small because the heavy lifting stays local.
A common trap: running the database on AWS “because managed RDS” while everything else is on Hetzner. Now every query crosses the public internet with per-GB egress. The database should live next to the app, always.
Migration considerations
AWS to Hetzner is the more common direction in 2026 as companies optimize cloud spend.
What you give up:
- Bedrock (replace with direct API calls to Anthropic, OpenAI, etc., or self-host with vLLM).
- SageMaker (replace with vLLM, TGI, or RunPod for training).
- Lambda (replace with systemd timers or n8n, for the 90 percent of Lambda workloads that are cron-shaped).
- RDS (replace with self-managed Postgres, plus backups to a Storage Box).
- Auto-scaling (replace with “provision for peak, it is cheap enough”).
What you keep: everything else. Docker, Postgres, Redis, your code, your CI. None of it is AWS-specific.
Hetzner to AWS is the growth-stage direction when you hit scale or land an enterprise client.
What you gain: auto-scaling, managed services, edge, compliance certifications, frontier GPUs, multi-region failover.
What you lose: the flat cost curve. Your infrastructure bill goes from 300 EUR a month to 3000 USD a month for the same workload before you even use the new features.
Which should you choose?
Use Hetzner if:
- You are a solo founder, small team, or indie hacker.
- Your AI workload is API-based (you call Claude, OpenAI, Mistral) with no local GPU.
- You run standard open-source infrastructure (Postgres, Redis, n8n, Supabase).
- You need GDPR and nothing more from the compliance side.
- Your GPU needs fit within RTX 4000 Ada to L40S and you can commit monthly.
- Predictable flat-rate pricing matters more to you than elasticity.
Use AWS if:
- You need H100/A100 on demand.
- You need managed AI services (Bedrock, SageMaker) for procurement or compliance reasons.
- You need HIPAA, FedRAMP, PCI DSS Level 1, or similar certifications.
- You have an existing AWS footprint (IAM, SQS, EventBridge) that your AI workload needs to integrate with.
- You serve a global audience that needs sub-100ms latency from every continent.
- You have the DevOps or SRE headcount to get value out of managed services.
Use both if:
- Most of your infrastructure is steady-state but you have bursty GPU needs.
- You run production on Hetzner and use AWS for specific services (S3, Bedrock, CloudFront).
- You are cost-optimizing an existing AWS-only setup by moving everything non-specialized to Hetzner.
The question is not “which cloud is better”. It is “which workload belongs where”. Most teams I consult with land at a 70/30 split toward Hetzner for cost, with AWS holding the GPU-burst and managed-services layer.
If you are setting up a new AI stack and want a concrete walkthrough, the Linux VPS for AI development setup post covers the Hetzner provisioning pattern from empty server to running agents.