Exiting the Cloud: A Case for 10x Cost Savings and Enhanced Infrastructure

Cloud Computing

Learn how one developer achieved 10x cost savings and superior performance by exiting the cloud. This article debunks common cloud myths and presents compelling, affordable self-hosting alternatives.

The author recently migrated all projects off the cloud, resulting in a 10x reduction in monthly AWS costs and thousands of dollars in savings. The monthly AWS bill, previously around $1,400, was reduced to less than $120 for what are described as superior, more robust servers.

"Fear of managing servers has a price: 10x your monthly infra bill"

This announcement garnered significant attention, revealing two key observations. Firstly, many developers were intrigued by the prospect of similar cost reductions and sought guidance on how to achieve them. Secondly, and more notably, a significant portion of the responses were not just uninterested, but highly confrontational. This reaction was unexpected, given the author's belief that the move represented a positive outcome from both a technical and business perspective: a 10x cost decrease, a 2x performance increase, and liberation from vendor lock-in.

The author also highlights their work on RailsFast, a Ruby on Rails SaaS template for AI and "vibe coding." This template is designed to provide a solid and secure foundation for AI businesses, capable of running thousands of users on a $3/month server, complete with automatic backups. Its development leverages insights gained from scaling projects like PromptHero to over 4 million monthly visitors and creating Ruby gems with over 100,000 downloads.

The savings achieved allowed for more financial flexibility and enabled the provision of better service to users. However, many held strong opinions against this approach.

You’ve Been Misled

The author suggests that many developers have been misled, not necessarily out of their own money, but their employer's, which might explain their indifference. It was observed that most individuals expressing objections to the migration had titles like "devops," "cloud engineer," "serverless guy," or "AWS certified." These individuals, it's argued, often lack personal stake in the cloud costs, as they do not pay the bills themselves. They, therefore, do not experience the financial burden imposed by cloud providers.

For them, using AWS is convenient. It solves immediate problems while also offering a "shiny object" status due to its technical complexity. It enhances their perceived intelligence among peers, fosters dependencies that make them less replaceable, and contributes to substantial paychecks. Such professionals, it's argued, lack the incentive to make the most efficient decisions for their employers; instead, they might benefit from increasingly complex and convoluted infrastructure, securing their roles. Consequently, the truth—that servers are not inherently expensive—is rarely vocalized by this group.

Affordable Server Options

One viable alternative to major cloud providers is renting servers from companies like Hetzner. While the author notes no affiliation with Hetzner, their pricing is highlighted as superior to other options like Digital Ocean, which was also considered.

Here’s a look at the pricing:

Bare-metal servers with 80 cores can be rented for under $190 a month. In contrast, comparable compute-heavy AWS instances (C5-C6 families) with similar vCPUs typically cost between $2,500 and $3,500 monthly, an increase of 13x to 18x. Even with reserved instances, which can reduce the price to around $1,300/month, AWS remains 7x more expensive, often requiring a $46,000 upfront payment and a 3-year contract.

For those not requiring such large servers or wishing to avoid the one-time setup fee, VPS options are available:

A 48-vCPU machine can be rented for approximately $300/month, without setup fees or long-term contracts, offering flexibility to scale down if needed. Alternatively, an 8-core, 32GB RAM machine sufficient for most projects (unless handling millions of requests daily) costs around $50 a month.

Purchasing Servers for Long-Term Savings

For even greater long-term savings, purchasing servers outright is an option:

Source: The Server Store

A decent rack-mounted server with 44 CPUs, 256GB RAM, 2TB NVMe SSD, and other features can be acquired for under $1,000. Such an investment could power an application for years, often at a lower cost than a single month of cloud services.

While buying servers entails additional considerations like electricity, internet, and cooling costs, the fundamental point remains: quality servers are inexpensive.

Organizations can also rent rack space in a datacenter, which provides reliable power, internet, cooling, and security. Resources like DatacenterMap can help locate facilities:

The process involves contacting the datacenter to secure shared space or a dedicated secure room (a datacenter cage) for servers:

Equipment such as racks, switches, cables, and servers are then purchased, shipped, and installed within the allocated space:

However, this level of infrastructure management is generally too complex and cumbersome for small developers, typically requiring dedicated engineering resources and negotiation with datacenters. It is more suited for medium-to-large enterprises. For most small teams, simply renting an already mounted server from a provider like Hetzner is more practical and cost-effective, as these providers also handle hardware maintenance and replacements.

Datacenter operations offer insights into how the internet fundamentally works, mirroring the underlying infrastructure of major cloud providers like AWS, which are essentially vast networks of these facilities.

Is This Still the Cloud?

A common critique received was, "but isn’t that still the cloud?" or "you didn’t actually exit the cloud, you just changed cloud providers."

This argument, while frequent, is seen as missing the central point. The core argument is the value in actively managing one's own servers versus passively accepting the cloud as a default solution. It highlights the potential for 10x-100x cost savings by utilizing a simple Linux machine instead of expensive managed AWS services. The author suggests that many developers are deterred by the perceived complexity of servers and only need encouragement to realize they can set up affordable alternatives to costly services like RDS. In reality, most applications do not require the expensive, managed services offered by large cloud providers and can function perfectly well on a few Linux boxes.

Ultimately, the significant metric is whether more money is retained or transferred to cloud providers' stockholders. The debate over whether a self-hosted server in a datacenter constitutes "the cloud" is considered semantic. Whether it's VPS, bare metal, on-prem, or colocation, the fundamental requirement is a physical location for servers. Renting rack space for a personally owned server effectively achieves the same outcome as renting a server from a provider like Hetzner, often with more complexity and cost for small developers.

The author perceives the "this is still the cloud" mindset as a form of gatekeeping, pushing for unnecessary levels of self-sufficiency (e.g., "build your own rack, hook the ethernet cable yourself"). This perspective is described as toxic and lazy, deflecting from the central argument: servers are not actually expensive, and those who claim otherwise are likely promoting cloud managed services. Companies like AWS or Vercel are seen as imposing a 10x to 100x markup on these services.

The Cloud Isn't Being Used Wrong, It's Just Expensive

There's a tendency for cloud advocates to gaslight developers, implying that their struggles with cloud costs stem from their own misuse or lack of understanding, rather than the inherent expense of the services. Phrases like "You’re using the cloud wrong," or "It’s expensive because you’re doing it poorly" are common.

Such advice often comes from individuals who have never personally managed servers for their own projects over an extended period. Many in the industry today began their careers directly in the cloud ecosystem, lacking hands-on experience with alternatives. They may struggle to provide concrete examples of their own projects' scale, user base, and costs.

The author, despite managing servers since 2006 and having experience optimizing AWS costs (reducing a $5k/month bill by more than half), found that even with careful optimization, serverless computing, and reserved instances, the cloud remained prohibitively expensive. Reserved instances, in particular, were identified as worsening the problem by creating vendor lock-in, which contradicts the goal of cost reduction and flexibility.

After extensive frustration and exploration, the conclusion was that the cloud is simply too expensive. Developers are encouraged to investigate alternatives rather than blindly accepting the fear-mongering and gaslighting common among cloud proponents.

The Underlying Dynamics of Cloud Resistance

The strong backlash against the idea of leaving the cloud points to two main conclusions:

  1. Livelihoods depend on it: If the arguments against pervasive cloud adoption gain traction, the roles of many "devops" and "cloud engineers" could be jeopardized. The industry is shifting from a decade-long trend of building everything in the cloud to a counter-trend of keeping things off-cloud, which naturally creates defensiveness among those whose careers are intertwined with cloud platforms.
  2. Irrational discussion: The debate often descends into irrationality, a phenomenon likened to Stockholm syndrome or the sunk cost fallacy among deeply entrenched cloud users. AWS, in particular, is described as having a strong, cult-like following, where certifications emphasize sales pitches over pragmatism, evangelists instill fear of alternative solutions ("servers are dangerous!"), and cloud roles become central to professional identity. This environment makes it easy to adopt cloud services but difficult to exit.

When confronted, AWS proponents often resort to dogmatic arguments, reiterating sales-page talking points without critically evaluating their actual needs or the utility of specific features. This dynamic makes rational discussion nearly impossible, regardless of the demonstrated cost savings or performance improvements.

Arguments quickly devolve into fear-mongering: warnings about hackers, malware, hardware failures, downtime, maintenance costs, and the necessity of extensive busywork like failure scenarios, recovery plans, availability management, and infosec. However, the author, with 15 years of server management experience, asserts that most of these fears are overblown and largely a product of successful cloud marketing campaigns.

The Evolution of Web Development

Many developers today are unfamiliar with the historical context of server management. Historically, running one's own servers—whether VPS, hosting services, bare metal in datacenters, or in-house—was standard practice, and developers were comfortable with SSHing into machines.

The shift began in the early 2010s with deliberate marketing efforts by companies to promote enterprise technology to early-stage startups, aiming for early lock-in. AWS notably offered credits to startups, actively engaging accelerators to onboard new companies. The strategy involved making initial infrastructure free or extremely cheap, then escalating costs as startups grew, ensuring retention within the ecosystem.

This trend, further fueled by years of zero interest rates, led to the current state of web development in 2024. However, a counterculture movement, notably led by David Heinemeier Hansson (DHH) and the Rails community, is now advocating for a more pragmatic approach aligned with the realities of most software businesses.

The Cloud Is Not Universally Necessary

Many in the industry are disconnected from the typical scale of most software businesses. They often think in terms of Fortune 500 companies, believing that enterprise-level requirements—such as high availability, multi-zone replication, automatic failovers, and distributed Kubernetes clusters—are the norm. The reality, dictated by power law distribution, is that only a tiny fraction of software businesses require such extensive infrastructure.

This chart illustrates a power law distribution, where a very small number of companies are large, while the vast majority are small. For instance, in the United States, small businesses constitute 99.9% of all businesses, and in the European Union, SMEs (under 250 employees) represent 99%. Most small applications do not fall into the rare 0.1% category that demands hyper-scale solutions. Most businesses, even those requiring significant computing power, can scale vertically very effectively without the cloud up to a very high point.

Developers frequently overestimate scaling requirements and define "high traffic" at a very low bar. For reference, the author's two-server setup handles millions of requests daily for millions of monthly visitors. Other indie makers, like Levels.io, operate effectively on a single server. Many developers lack experience running projects with actual production traffic on a single server.

Similarly, other technical requirements are often overestimated. While advanced features exist for specific use cases (e.g., Netflix's global video streaming needs), they are rare. A small application with a thousand users sending JSON objects around does not require distributed systems, CDNs, or edge computing. The tendency to equate one's project with the scale of Netflix leads to incorrect technical decisions, such as believing distributed servers are needed to shave off a few milliseconds of latency for a small user base.

The author recalls a conversation with an entrepreneur whose mobile app with approximately a thousand users faced the challenge of estimating high and unpredictable monthly AWS costs. The advice was simple: "Bro, just get a server. You don’t need the cloud."

Server Reliability

Many harbor misconceptions about datacenter operations, perceiving servers as fragile and prone to failure. Some even fear that a lightning strike could obliterate an entire datacenter and their business.

However, modern datacenters are engineered with extensive protections and redundant systems to ensure uptime. This includes redundant power sources, cooling, internet connections, fire suppression, and physical security (typically N+1 redundancy at minimum, often 2N). The idea that AWS machines are somehow magically immune to problems that other datacenters face is unfounded, as AWS itself operates within datacenters.

While disasters can occur (e.g., OVH 2021 fire), backups are crucial for recovery. In approximately 15 years of server management, the author has experienced very few downtimes, none exceeding a few minutes. Servers are generally reliable.

Server Management is Not a Full-Time Job

Experienced server administrators know that most effort is concentrated during initial setup; after that, servers tend to be remarkably stable. Hardware failures are rare, and a properly configured server can run flawlessly for years with minimal intervention. Managing one's own servers does not require a five-person DevOps team or even a dedicated "server guy"; it can be done independently. Modern AI tools like Claude and ChatGPT possess extensive knowledge of Linux systems and can guide users through setup and ongoing management.

Despite claims that the author was overly optimistic when sharing their experience, they have been managing servers since 2006, starting with basic PHP script uploads to FTP servers, learning WordPress, and eventually delving into Linux, even requesting Ubuntu CD-ROMs for installation on personal computers. This foundational experience proved invaluable for understanding web development basics.

The Value of Linux Proficiency

A consequence of the cloud era is that newer generations of developers may lack foundational hardware knowledge and hands-on Linux experience. Many are accustomed to vendor-specific, one-command solutions to infrastructure problems, leading to magical assumptions about how servers work. While "serverless" abstracts away the underlying hardware, it still involves code running on numerous boxes. While some new developers do learn Linux, the average bootcamp graduate often lacks the practical experience that earlier generations of "FTP hackers" possessed.

This knowledge gap is being capitalized upon by companies like Vercel, whose pricing models for services like data transfer are significantly higher than self-hosting alternatives. For example, Vercel charges $150/TB (with 1TB included), whereas Hetzner offers 20TB free and then €1.19/TB. This disparity highlights the cost of ignorance when fundamental server operations are not understood.

Daniel Lockyer, a software engineer, echoed this sentiment via a tweet, highlighting Vercel's high data transfer costs compared to Hetzner.

Achieving Security and Confidence

Even for those new to server management, the current technological landscape offers unprecedented support. AI tools like Claude and ChatGPT are highly knowledgeable about Linux and can provide step-by-step guidance for setup, understanding, and making changes, eliminating the need to hire specialists. This makes server management less daunting and infrequent.

In an era where code generation might commoditize programming, the ability to deploy code on cheap production servers and make it useful to end-users could become a crucial differentiator for developers.

Regarding security, it's a valid concern but manageable. The notion that running one's own server is inherently less secure than AWS instances (as if EC2 instances are magically protected) is a fallacy. Setting up security correctly is not overly difficult; following guides and best practices, such as using strong SSH keys instead of password authentication, can address 90% of security needs. AI can also assist in hardening Linux servers.

For an additional layer of protection, services like Cloudflare can be implemented. By proxying the server's IP through Cloudflare's DNS, the server's direct IP is hidden, and users gain DDoS protection, edge caching, and a top-tier DNS service, often for free. Taking the plunge into self-hosting is encouraged, as developers will likely find themselves capable and well-supported.