In the Beginning... We Shared (whether we liked it or not!)


Let me tell you what hosting was like in the 90s’. Our options were pretty much binary. It was either “shared hosting” or “dedicated”. If you couldn’t afford dedicated, you were stuck with sharing your resources with potentially hundreds of other websites.
There was no VPS, no cloud and certainly no click-to-scale option either. In fact, your scaling options were quite limited. You’d spin down your server, upgrade it, then spin it back up.
And that would still be okay if it was dedicated hosting, but with shared it was a gamble. Your site’s performance was directly dependant on your server neighbour’s success story traffic-wise.
No Seriously.
Your blog about “Mama’s lasagna recipes” will mysteriously slow to a crawl every Sunday. Why?
Because your neighbour’s ‘xxxsuperhotbabes . com’ was getting slammed
And worse, if you shared the same IP block, search engines would flag you for suspicious activity if your neighbour was hosting a scam site!
Some poor soul would come up in the forums and complain about how his super premium shared hosting plan on exampleHost123 . com
offered crap service for the money.
Forum members would help investigate and most of the time, some of us would discover his neighbours.
We’d offer the best advice there was: Go back to the provider to ask to be hosted on a different rack or IP block.
If this was available, most providers would accommodate the request. Still this was a real problem and many providers unwittingly took on the bad rep for allowing such questionable sites in the first place.
But hey, high traffic meant more infrastructure, and no one was going to say no to higher paying customers.
Enter AWS and KVM: The First Disruptors
AWS came up first in ‘06 but was slow on the uptake.
Partially because no one really believed that a glorified book store knew anything about hosting (of course they did - it was the world’s largest bookstore and more!) and because on-demand pricing was new and somewhat unpredictable.
It was a new paradigm and no one really understood it.
So when the Kernel-based Virtual Machine (KVM) came about a year later, it was more than welcome.
It offered hardware based isolation (think mini dedicated servers), and came with traditional monthly or annual pricing + a battle tested route to server management and customization options.
But what really is the difference between KVM and the cloud? I mean really?
Ah, the age-old debate: KVM or the Cloud? Think of it as choosing between a Shelby GT500 (Eleanor, IYKYK) and a Tesla.
The Shelby - a beast of raw power - was a pain to handle, with mysterious quirks and a near-taboo status. But oh, the satisfaction of the drive when you figure it all out!
The Tesla, on the other hand, does everything for you, right down to reminding you to keep your eyes on the road.
Both get you places, but in very different ways. Let’s explore some of the arguments, shall we?
- Managed Infrastructure
AWS takes care of everything: snapshots, backups, disaster recovery. Oh, and Identity and Access Management (IAM)?
It’s like having a bouncer at your server's front door, checking IDs and ensuring only the right people get in.
It’s security, convenience, and peace of mind wrapped into one.
Sure, IAM is great, but let’s not kid ourselves. Who needs a bouncer for a house party with three guests? KVM’s simpler admin and manager roles are perfectly fine for most setups.
And backups?
KVM providers have had that covered since the Jurassic era of shared hosting. Snapshot backups? Yep, got those too.
DIY isn’t scary when it saves you a fortune.
- Ecosystem Integration
Cloud machines integrate with everything: S3 for storage, RDS for databases, Lambda for serverless computing. No assembling required.
For the most part KVM has that covered. Need a master/slave redundant database server? Spin up more KVM instances.
I mean with providers like Racknerd offering ridiculously low priced instances - less than a buck a month, and with docker rescuing you from hair-pulling configuration mayhem, it really isn’t as difficult as you think.
Still, if a hands-free dedicated managed database server is all you need now, you have more options. Digital Ocean has managed databases.
In fact, here’s $200 in credits for you on DO for a 6 month period.
Where AWS really shone, was S3. And quite frankly it was revolutionary for it’s time. There was nothing like it. Your only option was to grab a dedicated machine with tons storage or pay a super premium price for a high end KVM instance.
But that too has changed now. We have services like Wasabi and Cloudinary with generous free tiers and multiple integrations, not to mention free image optimizations and other goodies built in.
Wasabi is a cheaper, S3-compatible storage solution with no egress fees, while Cloudinary offers image optimisations out of the box.
- Redundancy and Uptime
With multi-availability zones and built-in failover, AWS keeps your services up and running no matter what. Add some DDoS protection, and you’re practically invincible.
Wait. So KVM can’t handle redundancy? Well Yes and No. And the real answer lies in which provider you choose.
Many enterprise-grade KVM hosts offer robust failover systems and DDoS protection. Sure, AWS automates it all, but at what cost? Your kidney?
With KVM, you can achieve redundancy without needing Jeff Bezos-level funding - just a little planning and maybe an extra instance or two. Which brings me to the Elephant in the Server Room.
- Cost
Cloud’s pay-as-you-go model lets you scale up and down dynamically. You’re only billed for what you use → super cost-effective!
Is it, though? That pay-as-you-go pitch sounds great until your bill looks like you stood up, walked to the bar, and rang the bell. Oh dear God - how a little alcohol (or a surprise spike in resource usage) can really mess you up!
My experience
With all that said and if you asked me, the fundamental appeal of AWS wasn’t its backups, managed services, or even its redundancy. It was scalability. Infinite scalability, or so it seemed.
And let me tell you, I fell for it.
I was an early adopter, hopping on the AWS bandwagon in 2010. Here’s why:
I had this shiny new app that I thought was going to blow everyone away. It felt like I was sitting on a rocket ship just waiting to launch.
My biggest fear? Scalability. What if traffic exploded? What if the app actually became the next big thing?
Enter AWS. Suddenly, I could scratch the itch of my over-engineering mind with the promise of infinite resources, and I worried less.
But here’s the hard truth:
Scaling Issues Are Rarely Real Problems
Most startups never hit traffic numbers high enough to test scalability. If you had a product launch, you’d also have a backup plan ready in case of high traffic. A single KVM instance would manage this just fine.
Scaling problems are what I call a “happy problem” - something to worry about after you’ve actually succeeded (with your backup in place of course!)
It’s Not Fire-and-Forget
Scaling on AWS isn’t as magical as the marketing suggests. You don’t just “turn on” infinite scalability and forget about it.
There’s a learning curve to figuring out how to scale efficiently. Why else do newer services like ECS or Fargate even exist? Because traditional EC2 scaling isn’t as straightforward as AWS would have you believe.
Cost vs Reality
- Many of us end up looking at the bill and asking, “Sheesh, would a small KVM machine as a load balancer and two larger KVM instances serving traffic have been cheaper?” The answer is often yes.
So in retrospect, many of my earlier apps didn’t need AWS at all, but boy was it good to know it was there.
Ultimately, its your decision to make. For me, I spun up an instance on RackNerd some two years ago and it has been up ever since.
I host 2 domains on it, complete with DDoS protection, wildcard SSL certs and complete control over my node|python|docker
services. The cost? $16.98 per year (I scored a sweet Black Friday deal and have been paying the same since!)
Stay tuned for more articles about my setup - and if you stick around long enough, I’ll share how I’m running a super decent inference server with the setup above without costing a cent more
Subscribe to my newsletter
Read articles from Jason Joseph Nathan directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Jason Joseph Nathan
Jason Joseph Nathan
Yo! I’m J, your go-to geek at Geekist. With nearly two decades under my belt, I craft high-performance software that’s as sleek as it is functional, specialising in JavaScript/TypeScript and modern full-stack solutions. Beyond code, my world revolves around music, mentoring budding developers, and cracking up my two wonderful daughters. Whether jamming out to Punjabi beats with my wife or leading dynamic teams across continents, I’m all about mixing passion with innovation. Here at Geekist, I share top-notch tutorials, tech wisdom, and a bit of humor to spice up your dev journey. So, whether you’re looking to skill up or just hang out, you’re in the right place. Welcome to our community of creators and thinkers!