The bigger question that
@dhh is raising is whether devs sell themselves short on self-hosting.
The comparison isn't necessary S3 or a random hard drive. The comparison is S3 vs. self-hosted Minio running over your VPS or Synology server with a few of those 24TB drives in a RAID cluster.
Minio is an open source fully functional S3 API clone which you can host on almost any hardware.
It can scale up to huge multi-cluster sizes, or you can use it initially and sleep easy knowing you can always easily drop-in a cloud S3 provider once you no longer want to self-host. The S3 API for both is the same.
By self-hosting, you lower the bar for what you can build.
You don't need to commit up front to $100s per month in cloud bills. You can pay $1000 for a used server on Craigslist and stick it in your basement, or pay $20/m for a single discount VPS which hosts your app, S3 clone, and other infra to run your SaaS.
If you go the VPS route, you can even use something like Cloudron to handle installation, security, backup, and scaling of Minio and hundreds of other clones of pricey cloud SaaS apps (CRMs, customer support, email server...).
I think DHH's point in all of this is that most devs assume they need Vercel and a dozen other SaaS invoices every month from day 1, when really most could self-host until they hit product market fit, save $, extend runway, and therefore ship more ideas to market.
That model works, and it's not just theory. I've done it.
I spent $6k on hardware I can now re-sell or re-use for the next project (the last startup failed), instead of blowing $15k on SaaS invoices.
We bootstrapped the startup part-time so committing to blowing huge $ every month wasn't feasible.
If you're working fulltime on a funded startup, the tradeoffs probably are different. But, as DHH points out, maybe the tradeoffs end up still being the same.
This tweet has bugged me since yesterday so I need to address it.
First off, S3 and hard drives are not the same thing at all.
Hard Drive are very basic fundamental tech. They offer large amount of block storage. That's it. Nothing else.
It's a blank canvas for the user to decide how to store their data on it.
S3 on the other hand is an object store as a service.
S3 is built upon hard drives, but adds so much more on top of it that it is distinctly different in what it offers.
S3 offers all the nice things that hard drives can't by themselves.
- API driven access that is industry standard
- 99.999999999% durability
- All objects are given full URIs to access them globally
- Object versioning and Object locks
- Rigorous Security and Access policies (IAM).
- Natively integrated with the rest of AWS
- Logical separation of storage via buckets w/ different policies
- No upper bound on storage limits,
- Elastic storage
- Pay for what you use, no provisioning
- No hardware management
- Variable storage types and costs depending on access frequency and durability.
- Cross region data replication
- Monitoring and access logs, cloudtrail audit logs
So no, to compare a hard drive to what s3 offers above is a huge fallacy. Hard drives don't offer any of this out of the box.
It would be a large effort to replicate this entire offering to an on prem solution, and you also have to manage your storage when drives fails, handle backups, access policies, and so much more.
So no, comparing s3 service costs which bundles all the above into it's pricing to a physical product that offers no ongoing services, isn't fair.
There are legit criticisms of the cloud, but S3 really is a magical service for what you get.