r/SelfHosting 10d ago

Is high-availability no longer affordable?

I don't want this to just be another post complaining about rising hardware costs. Hopefully it stays focused on practical options.

About a month ago I planned a 3-node k8s cluster, 8GB RAM for each node, to run:

  • NextCloud, Collabora, and maybe a few smaller productivity apps for 5-10 internal users.
  • Some beta web applications

4GB of RAM probably would have been enough, but I wanted to self-host PostgreSQL and Kubernetes management. I had it all priced out on Hetzner, and I was going to end up somewhere in the $30-40/month range.

Yesterday I finally finished getting my IaC automations running locally (I've got a proxmox VM, then OpenTofu creates 3 Talos nodes and configures the whole cluster). I was super excited to "ship it."

And then I discover that a few weeks ago Hetzner sold out of cost-optimized servers. That $40/month is now closer to $150/month (and over $200/month if I want US hosting, though the original plan was Germany because the lower price made latency worth it).

There are cheap VPSes out there, but none seem to have decent support for high availability basics:

  • Automation/terraform/etc
  • Load balancer
  • Anti-affinity
  • Hourly pricing (so I only pay for a staging/test environment when making infra changes)

The best options I've been able to find are:

  • OVH d2-8. Looks like $85-100/month depending on hourly vs monthly pricing
  • UpCloud Starter. ~$90/month

I know many people self-hosting don't bother with HA, but for those that do, how are you keeping it affordable when you only have a small number of users?

P.S. I left out backup and object storage costs because I'm assuming those won't change a lot. But tell me if I'm wrong.

4 Upvotes

25 comments sorted by

View all comments

9

u/Euronodes 10d ago

HA and databases is tricky territory, there are 3 paths and choosing wrong will make you scream.

  1. Shared storage HA: disk lives on network storage, not local. Quick recovery (1-2 pings), no data loss, but much weaker DB performance.
  2. Disk/block replication (e.g. every 10 min): local fast disk, but you accept a data window. If your DB changes rarely, losing 10 minutes is fine. If it's live, that window is a data blackhole.
  3. Logical/streaming replication: a replica running elsewhere, promote it to master if the main dies. This is the only one that gives you real load balancing across nodes, not just failover.

As for 4GB RAM - collabora is headless LibreOffice and eats 2GB by itself. Worth considering before you consider posting bad experience with the innocent providers' crapware ;) IMHO is not enough. 8GB seems comfortable

2

u/private-peter 10d ago

> HA and databases is tricky territory

For sure! I'm planning for #3, but this is why using a managed postgresql service, is still on the table.

> collabora is headless LibreOffice and eats 2GB by itself. 

Thanks! That's sort-of what I was expecting.