DbggrDbggr

2024-10-12

The hidden cost of cheap servers

If you read Twitter, you might think we’re all crazy for using one of the big clouds—or worse, a managed infrastructure service like Vercel, Railway, and others—paying crazy multiples for the same or even fewer resources compared to a cheap Hetzner server. What’s often missing in these discussions is the cost of time required to set up, secure, maintain, and scale these cheaper options.

Let’s take an example from Twitter: a 2 vCPU, 4GB RAM server for $4.93/month from Hetzner vs. $97.50 for similar resources on Railway. That’s almost 20x the price, and you get way less egress. You would think it’s crazy to pay that much for the same thing—or maybe not?

Hetzner is amazing—its prices are ridiculously low, and it’s an excellent solution in many situations. But it’s just a server; you have to set it up, secure it, and maintain it.

Developers are expensive

Developers are really expensive. Even if you have one developer spending just a couple of hours a month on that server, you’re probably paying more than you would for the Railway version. For a lot of companies, especially startups, compute cost is totally irrelevant when compared to payroll cost. Not only that, but those hours spent on that server could have gone toward developing your product, which can provide a much better return on investment.

Now let's say you’re doing well—the company is growing, you get more clients, and your small, cheap Hetzner server isn’t cutting it anymore; you need more power! You can buy a bigger server, set it up, move your stuff, and get going again. Even if you’re very efficient, you’re still spending more time. If you include the time spent managing the server against the actual cost, the calculation quickly favors managed infrastructure.

If you need to hire someone to manage these things because your team lacks the knowledge or simply doesn’t have the time, the costs get even crazier.

Other benefits

For many companies, needs change. If you’re growing, building a product, or actively developing, you’re going to run into new infrastructure needs.

Managed services provide incredible flexibility when you need it. Add CPUs, add memory, add GPUs, and only pay for usage. We use Modal.com for a lot of data processing, and it’s been amazing to spin up a bunch of very fast containers and GPUs with just a couple of lines of Python.

Sure, you pay a premium, but unless you have full utilization, you might not actually save money by going the self-hosted route. And in terms of how quickly you can get something running, it’s really hard to beat.

When it makes sense

I’m not arguing to never use your own servers or infrastructure. There are many scenarios where it does make sense. Some that come to mind:

  • You have no money whatsoever, and every dollar counts.
  • You have a specific use case, such as lots of egress, consistent compute, or very large scale, where optimizing compute makes sense.
  • You have the resources and knowledge available: you’re a mature, profitable company with infrastructure people on standby who can handle it for you—meaning you’ve already absorbed those costs, and that’s okay.
  • You have a long beard and eat servers for breakfast.
  • I’m sure there are many others...

The point

Using cheap Hetzner servers is often presented as the obvious choice, but it’s not always the right one—or the cheapest one—in practice. When considering all costs involved, managed services are often the more affordable option (with added benefits like flexibility). Don’t base your solution on Twitter—or even this article. Look at your situation, do the calculations, and choose the right solution for your problem.