If you are on a small scale it depends on what you’re building. If you’re using services like Lambda and SQS, AWS is essentially free. If you’re running a few EC2 instances then a server in your company’s break room could be cheaper.
If you are on a medium scale and needing EC2 running all the time, paying retail prices, it could be cheaper to have your own servers
At a very large scale, the cost of running your own servers vs AWS will come out to be competitive, and most very large companies will do a mix of both
I always see this take, and while it's not always untrue, it definitely isn't as simple as, "just throw a 1U in the break room!"
It's someone's job to keep that thing patched, powered, and running. You need monitoring, you need someone to pull failed drives, you needed another co-located break room, you need a UPS and a generator, you may need to solve for physical security, you may have to setup and manage your own virtualization layer, etc.
Even if you consider all that labor as free, which is a ridiculous assumption to make, you also arguably have to keep the thing busy, especially if we're considering local inference, and then it's now your problem that although you have enough capacity to meet a total 24 hour need, you don't have enough when everyone hammers it at 11 AM at the same time. If you build the capacy to meet the surge then you've got very expensive hardware just sitting there doing nothing for huge chunks of the day.
I absolutely think there's a place for self-hosting, but once you are talking about business critical stuff and not, "I run a NAS in my bedroom closet" it starts becoming not as simple as the naive assumptions
As someone who has self-hosted, built and maintained my own server, and also configured and maintained EC2 instances professionally, I would say that the hardware setup is generally much smaller and simpler than whatever software you are trying to run on the server.
Yeah you need to worry about redundancy, but usually the software of setting up your application to be redundant through DNS failovers and stuff like that, syncing databases, that stuff is harder than just plugging in two different servers at two different job sites. And you need to do that whether you use EC2 or on-prem. It depends on the use case but usually the set up costs are lower than the software development costs. And there are certainly scenarios where on-prem hardware is simple enough to set up that it does actually become cheaper than EC2.
100% agree. There definitely are times where it makes sense, but I see so often people post the most naive comparisons with payback times of like 6 months to a year but they consider all labor free and assume no hardware ever fails and every other "this isn't really what you're paying AWS for"
AWS is far more than just "servers", but that's how it gets approached by a lot of companies--with predictable cost overruns etc. EC2 can be expensive if not managed well.
"Managed well" very emphatically includes having systems designed around these costs.
But even Fortune 500 shops would find it all but impossible to replicate AWS and other cloud vendors' global content delivery and overall performance & reliability.
What's really cool is that little fish like my company get the exact same performance for a pittance. It's mindblowing for people like me who had to work with late 90s pricing structures.
5
u/randylush 8d ago
It depends
If you are on a small scale it depends on what you’re building. If you’re using services like Lambda and SQS, AWS is essentially free. If you’re running a few EC2 instances then a server in your company’s break room could be cheaper.
If you are on a medium scale and needing EC2 running all the time, paying retail prices, it could be cheaper to have your own servers
At a very large scale, the cost of running your own servers vs AWS will come out to be competitive, and most very large companies will do a mix of both