Comment by Sebb767

Comment by Sebb767 13 hours ago

65 replies

I dislike those black and white takes a lot. It's absolutely true that most startups that just run an EC2 instance will save a lot of cash going to Hetzner, Linode, Digital Ocean or whatever. I do host at Hetzner myself and so do a lot of my clients.

That being said, the cloud does have a lot of advantages:

- You're getting a lot of services readily available. Need offsite backups? A few clicks. Managed database? A few clicks. Multiple AZs? Available in seconds.

- You're not paying up-front costs (vs. investing hundreds of dollars for buying server hardware) and everything is available right now [0]

- Peak-heavy loads can be a lot cheaper. Mostly irrelevant for you average compute load, but things are quite different if you need to train an LLM

- Many services are already certified according to all kinds of standards, which can be very useful depending on your customers

Also, engineering time and time in general can be expensive. If you are a solo entrepreneur or a slow growth company, you have a lot of engineering time for basically free. But in a quick growth or prototyping phase, not to speak of venture funding, things can be quite different. Buying engineering time for >150€/hour can quickly offset a lot of saving [1].

Does this apply to most companies? No. Obviously not. But the cloud is not too expensive - you're paying for stuff you don't need. That's an entirely different kind of error.

[0] Compared to the rack hosting setup described in the post. Hetzner, Linode, etc. do provide multiple AZs with dedicated servers.

[1] Just to be fair, debugging cloud errors can be time consuming, too, and experienced AWS engineers will not be cheaper. But an RDS instance with solid backups-equivalent will usually not amortize quickly, if you need to pay someone to set it up.

John23832 11 hours ago

You don't actually need any of those things until you no longer have a "project", but a business which will allow you to pay for the things you require.

You'd be amazed by how far you can get with a home linux box and cloudflare tunnels.

  • koito17 10 hours ago

    On this site, I've seen these kind of takes repeatedly over the past years, so I went ahead and built a little forum that consists of a single Rust binary and SQLite. The binary runs on a Mac Mini in my bedroom with Cloudflare tunnels. I get continuous backups with Litestream, and testing backups is as trivial as running `litestream restore` on my development machine and then running the binary.

    Despite some pages issuing up to 8 database queries, I haven't seen responses take more than about 4 - 5 ms to generate. Since I have 16 GB of RAM to spare, I just let SQLite mmap the whole the database and store temp tables in RAM. I can further optimize the backend by e.g. replacing Tera with Askama and optimizing the SQL queries, but the easiest win for latency is to just run the binary in a VPS close to my users. However, the current setup works so well that I just see no point to changing what little "infrastructure" I've built. The other cool thing is the fact that the backend + litestream uses at most ~64 MB of RAM. Plenty of compute and RAM to spare.

    It's also neat being able to allocate a few cores on the same machine to run self-hosted GitHub actions, so you can have the same machine doing CI checks, rebuilding the binary, and restarting the service. Turns out the base model M4 is really fast at compiling code compared to just about every single cloud computer I've ever used at previous jobs.

    • [removed] an hour ago
      [deleted]
    • busterarm 10 hours ago

      Just one of the couple dozen databases we run for our product in the dev environment alone is over 12 TB.

      How could I not use the cloud?

      • maccard 2 hours ago

        12TB is $960/month in gp3 storage alone. You can buy 12TB of NVMe storage for less than $960, and it will be orders of magnitude faster than AWS.

        Your use case is the _worst_ use case for the cloud.

      • sgarland 9 hours ago

        First of all, if you have a dev DB that’s 12 TB, I can practically guarantee that it is tremendously unoptimized.

        But also, that’s extremely easily handled with physical servers - there are NVMe drives that are 10x as large.

      • mootothemax 2 hours ago

        > Just one of the couple dozen databases we run for our product in the dev environment alone is over 12 TB.

        > How could I not use the cloud?

        Funnily enough, one of my side projects has its (processed) primary source of truth at that exact size. Updates itself automatically every night adding a further ~18-25 million rows. Big but not _big_ data, right?

        Anyway, that's sitting running happily with instant access times (yay solid DB background) on a dedicated OVH server that's somewhere around £600/mo (+VAT) and shared with a few other projects. OVH's virtual rack tech is pretty amazing too, replicating that kind of size on the internal network is trivial too.

      • koito17 9 hours ago

        12 TB fits entirely into the RAM of a 2U server (cf. Dell PowerEdge R840).

        However, I think there's an implicit point in TFA; namely, that your personal and side projects are not scaling to a 12 TB database.

        With that said, I do manage approximately 14 TB of storage in a RAIDZ2 at my home, for "Linux ISOs". The I/O performance is "good enough" for streaming video and BitTorrent seeding.

        However, I am not sure what your latency requirements and access patterns are. If you are mostly reading from the 12 TB database and don't have specific latency requirements on writes, then I don't see why the cloud is a hard requirement? To the contrary, most cloud providers provide remarkably low IOPS in their block storage offerings. Here is an example of Oracle Cloud's block storage for 12 TB:

          Max Throughput: 480 MB/s
          Max IOPS: 25,000
        
        https://docs.oracle.com/en-us/iaas/Content/Block/Concepts/bl...

        Those are the kind of numbers I would expect of a budget SATA SSD, not "NVMe-based storage infrastructure". Additionally, the cost for 12 TB in this storage class is ~$500/mo. That's roughly the cost of two 14 TB hard drives in a mirror vdev on ZFS (not that this is a good idea btw).

        This leads me to guess most people will prefer a managed database offering rather than deploying their own database on top of a cloud provider's block storage. But 12 TB of data in the gp3 storage class of RDS costs about $1,400/mo. That is already triple the cost of the NAS in my bedroom.

        Lastly, backing up 12 TB to Backblaze B2 is about $180/mo. Given that this database is for your dev environment, I am assuming that backup requirements are simple (i.e. 1 off-site backup).

        The key point, however, is that most people's side projects are unlikely to scale to a 12 TB dev environment database.

        Once you're at that scale, sure, consider the cloud. But even at the largest company I worked at, a 14 TB hard drive was enough storage (and IOPS) for on-prem installs of the product. The product was an NLP-based application that automated due diligence for M&As. The storage costs were mostly full-text search indices on collections of tens of thousands of legal documents, each document could span hundreds to thousands of pages. The backups were as simple as having a second 14 TB hard drive around and periodically checking the data isn't corrupt.

      • dragonelite an hour ago

        Sounds more like your use case is like the 1~2% of the cases a simple server and sqlite is maybe not the correct answer.

      • Aeolun 6 hours ago

        Buy a pretty basic HDD? These days 12 TB isn’t all that much?

      • n3t 10 hours ago

        What's your cloud bill?

      • cultofmetatron 4 hours ago

        what are you doing that you have 12TB in dev??? my startup isn't even using a TB in production and we hands multiple millions of dollars in transactions every month.

      • [removed] 7 hours ago
        [deleted]
  • fragmede 10 hours ago

    You can get quite far without that box, even, and just use Cloudflare R2 as free static hosting.

    • selcuka 10 hours ago

      CloudFlare Pages is even easier for static hosting with automatic GitHub pulls.

      • jen729w 9 hours ago

        Happy Netlify customer here, same deal. $0.

        (LOL 'customer'. But the point is, when the day comes, I'll be happy to give them money.)

fhd2 4 hours ago

My pet peeves are:

1. For small stuff, AWS et al aren't that much more expensive than Hetzner, mostly in the same ballpark, maybe 2x in my experience.

2. What's easy to underestimate for _developers_ is that your self hosted setup is most likely harder to get third party support for. If you run software on AWS, you can hire someone familiar with AWS and as long as you're not doing anything too weird, they'll figure it out and modify it in no time.

I absolutely prefer self hosting on root servers, it has always been my go to approach for my own companies, big and small stuff. But for people that can't or don't want to mess with their infrastructure themselves, I do recommend the cloud route even with all the current anti hype.

  • makeitdouble 3 hours ago

    > 2. What's easy to underestimate for _developers_ is that your self hosted setup is most likely harder to get third party support for. If you run software on AWS, you can hire someone familiar with AWS and as long as you're not doing anything too weird, they'll figure it out and modify it in no time.

    If you're at an early/smaller stage you're not doing anything too fancy either way. Even self hosted, it will probably be easy enough to understand that you're just deploying a rails instance for example.

    It only becomes trickier if you're handling a ton of traffic or apply a ton of optimizations and end up already in a state where a team of sysadmin should be needed while you're doing it alone and ad-hoc. IMHO the important part would be to properly realize when things will get complicated and move on to a proper org or stack before you're stuck.

    • fhd2 an hour ago

      You'd think that, but from what I've seen, some people come up with pretty nasty self hosting setups. All the way from "just manually set it all up via SSH last year" to Kubernetes. Of course, people can and also definitely do create a mess on AWS. It's just that I've seen that _far_ less.

zigzag312 11 hours ago

> A few clicks.

Getting through AWS documentation can be fairly time consuming.

  • JuniperMesos 11 hours ago

    And making sure you're not making a security configuration mistake that will accidentally leak private data to the open internet because of a detail of AWS you were unaware of.

    • [removed] 11 hours ago
      [deleted]
  • rtpg 11 hours ago

    Figuring out how to do db backups _can_ also be fairly time consuming.

    There's a question of whether you want to spend time learning AWS or spend time learning your DB's hand-rolled backup options (on top of the question of whether learning AWS's thing even absolves you of understanding your DB's internals anyways!)

    I do think there's value in "just" doing a thing instead of relying on the wrapper. Whether that's easier or not is super context and experience dependent, though.

    • anotherevan 10 hours ago

      Hmmm, I think you have to figure out how to do your database backups anyway as trying to get a restorable backup out of RDS to use on another provider seems to be a difficult task.

      Backups that are stored with the same provider are good, providing the provider is reliable as a whole.

      (Currently going through the disaster recovery exercise of, "What if AWS decided they didn't like us and nuked our account from orbit.")

      • bdangubic 9 hours ago

        aws would never do that :) plus you can also do it in aws with like 75 clicks around UI which makes no sense even when you are tripping on acid

        • happymellon 4 hours ago

          > 75 clicks

          Well 2 commands...

            aws rds export-task create \
              --source-arn <SnapshotArn> \
              --s3-bucket-name <Bucket> \
              --iam-role-arn <Role>
          
          
          Then copy it down

            aws s3 cp \
              <S3 Location> \
              <Local Dir> --recursive
          
          The biggest effort would be then running the Apache Parquet to CSV tool on it.
    • Dylan16807 10 hours ago

      > Figuring out how to do db backups _can_ also be fairly time consuming.

      apt install automysqlbackup autopostgresqlbackup

      Though if you have proper filesystem snapshots then they should always see your database as consistent, right? So you can even skip database tools and just learn to make and download snapshots.

      • ngc248 6 hours ago

        nah filesystem snapshots may not lead to consistent DB backups. DB backup software usually use a plugin to tell the DB to coalesce data before taking a snapshot.

    • bdangubic 9 hours ago

      most definitely do not want to spend time learning aws… would rather learn about typewriter maintenance

  • fulafel 4 hours ago

    And learning TypeScript and CDK, if we're comparing scripted, repeatable setups which you should be doing from the start.

    • sofixa 3 hours ago

      > repeatable setups which you should be doing from the start

      Yes, but not with

      > TypeScript and CDK

      Unless your business includes managing infrastructure with your product, for whatever reason (like you provision EC2 instances for your customers and that's all you do), there is no reason to shoot yourself in the foot with a fully fledged programming language for something that needs to be as stable as infrastructure. The saying is Infrastructure as Code, not with code. Even assuming you need to learn Terraform from scratch but already know Typescript, you would still save you time compared to learning CDK, figuring out what is possisble with it, and debugging issues down the line.

  • hughw 11 hours ago

    gotta say, Amazon Q can do the details for you in many cases.

tbeseda 12 hours ago

> But the cloud is not too expensive - you're paying for stuff you don't need. That's an entirely different kind of error.

Agreed. These sort of takedowns usually point to a gap in the author's experience. Which is totally fine! Missing knowledge is an opportunity. But it's not a good look when the opportunity is used for ragebait, hustlr.

hshdhdhehd 4 hours ago

To me DO is a cloud. It is pricey (for performance) and convenient. It is possibly a wiser bet than AWS for a startup that wants to spend less developer (read expensive!) time on infra.

sz4kerto 7 hours ago

I think compliance is one of the key advantages of cloud. When you go through SOC2 or ISO27001, you can just tick off entire categories of questions by saying 'we host on AWS/GCP/Azure'.

It's really shitty that we all need to pay this tax, but I've been just asked about whether our company has armed guards and redundant HVAC systems in our DC, and I wouldn't know how to do that apart from saying that 'our cloud provider has all of those'.

locknitpicker 6 hours ago

> That being said, the cloud does have a lot of advantages:

Another advantage is that if you aim to provide a global service consumed throughout the world then cloud providers allow you to deploy your services in a multitude of locations in separate continents. This alone greatly improves performance. And you can do that with a couple of clicks.

gtech1 10 hours ago

any serious business will(might?) have hundreds of Tbs of data. I store that in our DC and with a 2nd DC backup for about 1/10 the price of what it would cost in S3.

When does the cloud start making sense ?

  • presentation 10 hours ago

    In my case we have a B2B SaaS where access patterns are occasional, revenue per customer is high, general server load is low. Cloud bills just don’t spike much. Labor is 100x the cost of our servers so saving a piddly amount of money on server costs while taking on even just a fraction of one technical employee’s worth of labor costs makes no sense.

hinkley 5 hours ago

I want more examples of people running the admin interface on prem and the user visible parts on the cloud.

winddude 12 hours ago

linode was better and had cheaper pricing before being bought by akamai

  • Aeolun 11 hours ago

    I don’t feel like anything really changed? Fairly certain the prices haven’t changed. It’s honestly been pleasantly stable. I figured I’d have to move after a few months, but we’re a few years into the acquisition and everything still works.

  • jonway 11 hours ago

    Akamai has some really good infrastructure, and an extremely competent global cdn and interconnects. I was skeptical when linode was acquired, but I value their top-tier peering and decent DDoS mitigation which is rolled into the cost.

  • mcmcmc 12 hours ago

    Whoa, an acquisition made things worse for everyone but the people who cashed out? Crazy, who could have seen that coming

    • presentation 8 hours ago

      Guess you came for the hot take without actually using the service or participating in any intelligent conversation. All the sibling comments observe that nothing you are talking about happened.

      Snarky ignorant comments like yours ruin Hacker News and the internet as a whole. Please reconsider your mindset for the good of us all.

  • busterarm 10 hours ago

    No longer getting DDOSed multiple years in a row on Christmas Eve is worth whatever premium Akamai wants to charge over old Linode.

dabockster 11 hours ago

You're literally playing into what the author is criticizing.

EGreg 10 hours ago

I started out with linode, a decade ago.

It became much more expensive than AWS, because it bundled the hard drive space with the RAM. Couldn't scale one without scaling the other. It was ridiculous.

AWS has a bunch of startup credits you can use, if you're smart.

But if you want free hosting, nothing beats just CloudFlare. They are literally free and even let you sign up anonymously with any email. They don't even require a credit card, unlike the other ones. You can use cloudflare workers and have a blazing fast site, web services, and they'll even take care of shooing away bots for you. If you prefer to host something on your own computer, well then use their cache and set up a cloudflare tunnel. I've done this for Telegram bots for example.

Anything else - just use APIs. Need inference? Get a bunch of Google credits, and load your stuff into Vertex or whatever. Want to take payments anonymously from around the world? Deploy a dapp. Pay nothing. Literally nothing!

LEVEL 2:

And if you want to get extra fancy, have people open their browser tabs and run your javascript software in there, earning your cryptocurrency. Now you've got access to tons of people willing to store chunks of files for you, run GPU inference, whatever.

Oh do you want to do distributed inference? Wasmcloud: https://wasmcloud.com/blog/2025-01-15-running-distributed-ml... ... but I'd recommend just paying Google for AI workloads

Want livestreaming that's peer to peer? We've got that too: https://github.com/Qbix/Media/blob/main/web/js/WebRTC.js

PS: For webrtc livestreaming, you can't get around having to pay for TURN servers, though.

LEVEL 3:

Want to have unstoppable decentralized apps that can even run servers? Then use pears (previously dat / hypercore). If you change your mindset, from server-based to peer to peer apps, then you can run hypercore in the browser, and optionally have people download it and run servers.

https://pears.com/news/building-apocalypse-proof-application...

  • foldr 35 minutes ago

    >It became much more expensive than AWS, because it bundled the hard drive space with the RAM. Couldn't scale one without scaling the other. It was ridiculous.

    You can easily scale hard drive space independently of RAM by buying block storage separately and then mounting it on your Linode.