AWS will happily charge you $70/month for a t3.medium. Hetzner will give you something faster for $8.29. That's not a rounding error — that's a business model difference, and it matters a lot when you're bootstrapped.
I've been running production workloads for nine years. I've watched indie hackers burn through runway on AWS bills that could've been slashed with a one-afternoon migration. The managed services are genuinely good, but the compute pricing is indefensible for most small-to-medium workloads. If your app doesn't need IAM roles talking to 14 other AWS services, you're almost certainly overpaying.
This post covers the cheap VPS alternatives to AWS I've actually used in production — what they're good at, where they fall short, and what I'd pick today if I were starting from scratch.
Why AWS Compute Is So Expensive
AWS charges a premium for brand recognition, compliance certifications, and the ecosystem glue. For a Fortune 500 company running SAP on RDS with 40 engineers, that's worth it. For a SaaS with 200 paying customers? You're subsidizing enterprise features you'll never touch.
A t3.medium (2 vCPU, 4 GB RAM) on AWS runs about $0.0416/hour on-demand — roughly $30/month if you're lucky with usage, more like $50-70 once you add EBS storage and data transfer. The equivalent on Hetzner's CX22 (2 vCPU, 4 GB RAM, 40 GB NVMe) is €3.79/month (~$4.10). Same ballpark specs. Dramatically different price.
The gap is real. Let's look at where that money is better spent.
The Providers I Actually Recommend
Hetzner — My Daily Driver
I run everything on Hetzner right now. €40/month covers what used to cost me $200+ on AWS. Their data centers are in Germany (Nuremberg, Falkenstein) and Finland (Helsinki), plus they opened US locations in Ashburn and Hillsboro in 2023.
The hardware is fast — NVMe SSDs, modern CPUs, no noisy-neighbor nonsense. Their network is solid. I've had maybe 2 hours of unplanned downtime across 4 years of running production there, which is better than my AWS track record.
What Hetzner is good at: Pure compute at insane prices. Their dedicated servers are especially absurd value — a Ryzen 5 3600 with 64 GB RAM and 2x512 GB NVMe for €38/month.
What it's not: A managed services platform. No RDS equivalent, no managed Kubernetes that's actually cheap. You're running your own stack. That's fine if you know what you're doing.
Current pricing snapshot (May 2025):
- CX22: 2 vCPU, 4 GB RAM — €3.79/month
- CX32: 4 vCPU, 8 GB RAM — €6.49/month
- CX42: 8 vCPU, 16 GB RAM — €13.49/month
DigitalOcean — The Friendlier Middle Ground
DigitalOcean costs more than Hetzner but less than AWS, and the UX is genuinely good. Their Droplets start at $4/month (512 MB RAM, which is only useful for very light stuff) with the $6/month 1 GB option being the real entry point.
Where DO earns its premium: managed databases (PostgreSQL, MySQL, Redis), managed Kubernetes, App Platform for simple deploys, and a control panel that doesn't require a PhD. If you're a solo founder who wants to move fast and not babysit infrastructure, DO is a reasonable choice.
The downside is the pricing creeps up fast. A managed PostgreSQL cluster starts at $15/month for the smallest size. That's fine, but add a Droplet, object storage, and a load balancer and you're at $60-80/month before you know it.
Vultr — Solid Fallback
Vultr is a reliable alternative I've used for overflow capacity and specific geographic regions. Their High Performance tier uses NVMe and is genuinely quick. Pricing is competitive with DigitalOcean — $6/month for 1 vCPU, 1 GB RAM.
They have more locations than Hetzner (32 cities as of 2025), which matters if you need to be close to users in Southeast Asia or South America. Their bare metal options are also worth a look for compute-heavy workloads.
I don't have a strong emotional attachment to Vultr — it just works, which is a compliment in this industry.
Linode (Akamai Cloud) — Still Decent, Slightly Complicated
Linode was acquired by Akamai in 2022, and the rebrand to "Akamai Cloud" is still a bit awkward. The underlying product hasn't changed much. Nanode 1 GB starts at $5/month, their 2 GB plan at $12/month.
The Akamai acquisition theoretically means better CDN integration and DDoS protection, but in practice, for a small VPS use case, you're just using what was Linode. The community documentation is still excellent. The pricing is fair but not as aggressive as Hetzner.
I'd pick Linode/Akamai if I needed a US-based provider with a long track record and didn't want to deal with Hetzner's EU-centric focus.
OVHcloud — Cheap, But Know What You're Getting
OVH is the budget basement option. Their VPS plans start at $3.50/month and their bare metal pricing is aggressive. The catch: support is slow, the control panel is dated, and their 2021 Strasbourg data center fire (which destroyed customer data without backups for some users) is a reminder to always maintain your own backups regardless of provider promises.
I wouldn't run anything mission-critical on OVH without a solid backup strategy. For dev environments, staging boxes, or throwaway compute? Fine.
Head-to-Head Comparison
| Provider | ~4 GB RAM Plan | NVMe | Managed DB | US Locations | Best For |
|---|---|---|---|---|---|
| AWS (t3.medium) | ~$30-50/mo | No (EBS) | Yes (RDS) | Yes | Enterprise, ecosystem lock-in |
| Hetzner (CX22) | €3.79/mo | Yes | No | Yes (2023+) | Pure compute, cost-obsessed devs |
| DigitalOcean | $18/mo | Yes | Yes | Yes | Managed services, good UX |
| Vultr | $20/mo | Yes (HP tier) | Yes | Yes (32 cities) | Global reach, reliable fallback |
| Linode/Akamai | $12/mo | Yes | Yes | Yes | US-focused, solid docs |
| OVHcloud | ~$7/mo | Varies | Limited | Yes | Dev/staging, absolute budget |
What to Actually Migrate First
If you're coming off AWS, don't try to migrate everything at once. Here's the order I'd follow:
1. Stateless compute first. Your web servers, background workers, API servers — anything that doesn't hold state is the easiest to move. Spin up a Hetzner box, deploy your app, test it, then cut over DNS. Done.
2. Object storage second. S3 is genuinely hard to beat on price-per-GB for cold storage, but if you're paying for frequent access, Hetzner's Object Storage (S3-compatible, €0.023/GB/month) or Backblaze B2 (free egress to Cloudflare, $0.006/GB stored) are worth switching to. Most AWS SDKs work with S3-compatible APIs by just changing the endpoint URL.
# Example: configure AWS CLI to use Hetzner Object Storage
aws configure set aws_access_key_id YOUR_HETZNER_KEY
aws configure set aws_secret_access_key YOUR_HETZNER_SECRET
aws s3 ls s3://your-bucket --endpoint-url https://fsn1.your-objectstorage.com
3. Database last. This is the scary one. If you're on RDS, you need to decide: self-host PostgreSQL (totally doable with proper backups), use a managed DB from DO or Vultr, or try something like Supabase or Neon for managed Postgres that's cheaper than RDS. I've been running self-hosted PostgreSQL 16 on Hetzner with daily pg_dump to Backblaze B2 for two years without incident.
The Backup and Reliability Question
The most common pushback I hear: "But AWS is more reliable."
Sometimes. AWS has had some spectacular outages — us-east-1 has gone down multiple times in ways that took out half the internet. Hetzner has had incidents too. No provider is immune.
The real answer is: your architecture determines reliability more than your cloud provider does. A single EC2 instance with no backups is not more reliable than a Hetzner VPS with daily snapshots and offsite backups. Multi-region redundancy matters more than the logo on your invoice.
For a typical indie SaaS, my baseline setup on Hetzner:
- Daily automated snapshots via Hetzner API (€0.0119/GB/month)
- PostgreSQL dumps to Backblaze B2 every 6 hours
- Uptime monitoring via Better Uptime (free tier works fine)
- Caddy as reverse proxy with automatic TLS
That's a solid, cheap, production-ready setup. See my post on setting up Caddy as a reverse proxy for the config details.
When AWS Is Actually the Right Call
I'm not here to pretend AWS is always wrong. There are real cases where it makes sense:
- You need SOC 2 / HIPAA compliance and don't want to do the paperwork yourself
- Your team already has deep AWS expertise and switching costs are real
- You're using services with no good self-hosted equivalent (SQS, Step Functions, Bedrock)
- You're raising VC money and investors expect AWS on the pitch deck (unfortunate but real)
For everything else — for the indie hacker, the bootstrapped SaaS, the side project that became a real business — the cheap VPS alternatives to AWS will serve you better.
The Migration Math
Let me make this concrete. Say you're running:
- 1x t3.medium web server: ~$35/month
- 1x RDS db.t3.micro: ~$25/month
- 50 GB EBS storage: ~$5/month
- Data transfer (100 GB): ~$9/month
Total: ~$74/month on AWS.
Equivalent on Hetzner + Backblaze:
- 1x CX32 (4 vCPU, 8 GB RAM, overkill but cheap): €6.49/month
- Self-hosted PostgreSQL on same box or CX22: €0 extra
- Backblaze B2 for backups (10 GB): ~$0.06/month
- Hetzner outbound traffic (3 TB included free): €0
Total: ~$7.50/month. Same app. Smaller bill. If you want to set up automated backups for this stack, this guide covers it in detail.
That's not a small difference. Over a year, you're saving $800. Over three years, $2,400. That's a conference ticket, a contractor sprint, or just money that stays in your pocket.
What to Do Tomorrow
If you're paying AWS more than $50/month for a single-app SaaS, spin up a Hetzner CX22 this week. Deploy your app on it. Run both in parallel for two weeks. Then make the call.
The cheap VPS alternatives to AWS aren't a compromise — for most indie hackers, they're the smarter choice. Start with Hetzner. Move your stateless compute first. Keep your backups offsite. You'll wonder why you waited.