When a Reddit user suggested trying Hetzner for my side project, I hesitated. After all, I was already paying $47 a month on AWS for an app with 200 daily users—an expense I barely noticed but could easily eliminate. Last year, I tested the waters by migrating everything to a single Hetzner CAX21 server priced at €5.49 per month. The results surprised me in more ways than one.
The Setup: Before and After
On AWS, my stack included a t3.small EC2 instance running a Node.js API, an RDS PostgreSQL database, an S3 bucket hosting static files, and a CloudFront distribution for content delivery. The setup was simple to manage but came with a recurring bill of $47 monthly. After switching to Hetzner, I consolidated everything onto a single CAX21 server—4 vCPU ARM, 8GB RAM, and 80GB SSD—serving the same Node.js API, PostgreSQL, Redis for sessions, and static files directly through Nginx.
The migration itself took less than a Saturday afternoon. The most time-consuming part was configuring automated backups, which I solved by setting up a cron job combined with Hetzner’s snapshot API. Once deployed, the server handled traffic reliably without the overhead of managing multiple cloud services.
What Broke—and What Didn’t
Contrary to expectations, nothing critical failed during the migration. However, there were notable trade-offs:
- No managed database failover: Unlike AWS RDS, which restarts a crashed database automatically, Hetzner requires manual intervention. In eight months, PostgreSQL never crashed, so the risk remained theoretical. Still, it’s worth noting for those who prioritize automatic recovery.
- No built-in CDN: Static assets now serve from a single Hetzner datacenter in Germany. For my primarily European user base, this actually improved load times compared to CloudFront. For users in the US, latency increased by about 50 milliseconds. I mitigated this by adding Cloudflare’s free tier in front of the server, restoring acceptable performance globally.
- Deployment changes: Gone were AWS’s push-to-deploy or eb deploy commands. Instead, I wrote a 12-line bash script that logs into the server via SSH, pulls updates from Git, runs database migrations, and restarts PM2. The entire process takes eight seconds, and I now have full visibility into every step—a trade-off I prefer for transparency.
The Cost Breakdown: A Surprising Gap
What stunned me most was how the cost disparity widened at every scale. Here’s a comparison of equivalent setups across providers:
| Spec | AWS | DigitalOcean | Vultr | Hetzner | |------|-----|--------------|-------|---------| | 2 vCPU, 4GB | $30/mo | $24/mo | $24/mo | €4.50/mo | | 4 vCPU, 8GB | $61/mo | $48/mo | $48/mo | €8.50/mo | | 8 vCPU, 16GB | $122/mo | $96/mo | $96/mo | €16/mo |
Hetzner consistently undercut AWS by a factor of five to seven across all tiers. DigitalOcean and Vultr fell somewhere in between, offering better value than hyperscalers but still lagging behind Hetzner’s pricing.
When Hetzner Isn’t the Right Choice
While the savings were substantial, Hetzner isn’t a one-size-fits-all solution. Consider staying on AWS, Google Cloud, or Azure if:
- Your workload depends on 20+ managed services like Lambda, SQS, DynamoDB, or Step Functions. The ecosystem integration can boost productivity despite higher costs.
- Compliance certifications such as SOC2 or HIPAA are non-negotiable. Hetzner doesn’t offer vendor-supported compliance frameworks.
- You need datacenter presence in Asia-Pacific or South America. Hetzner’s footprint is limited to Europe and the US East.
- Your traffic patterns are erratic, spiking from zero to 100,000 requests within seconds. Auto-scaling on Hetzner requires custom scripting.
On the flip side, Hetzner shines for predictable workloads where manual administration isn’t a barrier. Solo founders, small teams, and cost-conscious developers stand to gain the most—especially when every dollar saved translates to reinvestment elsewhere.
Reliability: No Compromises Needed
After eight months on Hetzner, my server experienced zero unplanned downtime. The provider’s status page reflects better uptime than many hyperscalers, and datacenters in Nuremberg and Helsinki meet enterprise standards. Still, I layered on simple safeguards:
- Daily automated snapshots costing €0.01 per GB per month.
- Health checks via UptimeRobot, a free monitoring tool.
- Database backups sent to Backblaze B2 at $0.005 per GB.
Total backup expenses amounted to roughly $1.50 monthly—an insignificant sum for peace of mind that’s otherwise invaluable.
The Bottom Line: Yearly Savings of $468
Here’s how the numbers stacked up at the end of the year:
- Before (AWS): $47/month ($564/year) for compute, database, and storage/CDN.
- After (Hetzner): $8/month ($96/year) covering compute only.
Annual savings reached $468—enough to fund a new tool, hire a freelancer, or simply enjoy the extra cash. Scale that across three or four side projects, and the annual savings approach $1,500 to $2,000.
For developers tired of paying premium prices for cloud services they barely utilize, Hetzner offers a compelling alternative. The trade-offs are clear: less automation, more manual oversight, but significantly lower costs. If your project fits the mold, the move could be one of the most financially rewarding decisions you make this year.
AI summary
AWS faturalarından kurtulup Hetzner’a geçen geliştiricinin 8 aylık deneyimi: neler çalıştı, neler kırıldı ve 468 dolarlık yıllık tasarruf hikayesi.