Proxyrack - April 2, 2024
There are many benefits to working in the cloud for software companies. Working in the cloud means it can be easier to deploy code and scale up your resources to meet current needs. Those are great advantages. But gaining those advantages comes with a cost—specifically, cost. Buying that flexibility and ease of use raises recurring costs in ways that impact your bottom line every month. For many businesses, that trade-off makes sense. That's especially true if you're eligible for something like AWS Activate credits for startups, where the additional cost doesn't hit your bottom line at all, and you benefit by not hiring more engineers to support that infrastructure.
But at Proxyrack, those same benefits aren't present. As a proxy provider, Proxyrack moves an enormous amount of traffic across the globe. The demands of providing proxies to the world also means needing to provide a quick response to ad hoc demands for that data. That also means powerful servers with high-bandwidth networks feeding ad hoc demands from customers for data all around the world.
In this post, we're going to slice up cost estimates from the AWS cost calculator to do the math on how Proxyrack is saving a million dollars a month over serving the same traffic if they were to route it through AWS.
Currently, Proxyrack colocates 112 servers. They're not homogenous, but the median server is something very close to a Xeon 2690 X2 server. Most of these servers provide 56 threads to the operating system. RAM totals aren't a key consideration for the way that these servers work. Proxyrack also pays for 100 Gbit synchronous network connectivity that is dedicated entirely to their use. Their p95 usage level is about 67 Gbits/second, which means that their network usage still has room to grow before they need to consider expanding that capacity. They serve approximately 700,000 connections every 10 seconds. In short, they move a lot of data very efficiently at a very high volume all around the world.
What does Proxyrack pay for that connectivity? About $30,000 a month. That's all inclusive: it covers the colocation space, the electricity usage, and the network bandwidth. The hardware is leased, so there's no need to factor in things like the depreciation of value with that hardware. The end result is that even though they're working on bare metal servers, Proxyrack gets a very predictable, sustainable cost for their hardware without breaking the bank.
We'll start with the biggest piece of the pie straightaway. As a proxy provider, Proxyrack moves a mammoth amount of internet traffic. Most months, it's about 33 petabytes. Go back and read that number again. Really think about what that means. Most web applications move a tiny fraction of that amount. Fortunately for our AWS cost calculation, that data moves in both directions, but AWS only charges us for outbound traffic. Exactly how that data slices up can be difficult to calculate, but we can pretty fairly assume that about half of that data is outbound.
That still leaves us with 16,500 gigabytes of outbound traffic to price. As you might expect, that's a pretty hefty bill from AWS. Let's price that out using the AWS pricing calculator:
16,500 GB/month of inbound traffic: $0
16,500 GB/month of outbound traffic: $848,691
That's a pretty hefty price tag. Instantly, we can see that the cost of adopting AWS is more than 25x the cost of self-hosting. Given the very high price involved here, it's likely that Proxyrack could negotiate a lower price tag for this amount of throughput, but that doesn't necessarily matter. Proxyrack's primary growth engine involves people using their proxies to make internet connections. So, even at a lower price, the networking costs for AWS would likely eliminate any profit margin.
*Note: since writing this article monthly traffic has increased and total bandwidth as you can see is 37 Petabytes
Obviously, AWS networking costs are monumental for a company like Proxyrack. Their whole business is tunneling loads of network data, so that's to be expected. But the story isn't much better when it comes to actual hardware. As we mentioned, the hardware that Proxyrack uses isn't homogenous. So, we had to do a little guesstimation to find the right hardware to price out in the AWS cost calculator. In the end, this is what felt like the best approximation:
c7gn.8xlarge 32 VCPU, 64 GB RAM, 100 Gigabit network
That approaches the same number of operating system threads and provides enough RAM and network throughput to allow each server to operate as it does in the Proxyrack environment. What does the price tag for that hardware come to? $123,161. Once again, we're more than 4x the cost that Proxyrack is paying monthly, just for the hardware necessary to run the business. Savvy readers will notice that this is using static hardware, and that's a fair criticism. In this case, we priced out the direct comparison. If we were to assume that Proxyrack were to only use about 80% of that elastic computing power per month, we might be able to save a few tens of thousands of dollars off the bottom line. But Proxyrack's use case is not conducive to elastic computing: they serve very high throughput numbers pretty much around the clock, meaning that there's rarely time to scale servers down.
These are "smaller" line items that are included in the AWS cost that Proxyrack currently doesn't pay anything to use. But each of them is by itself a substantial cost compared to their current monthly costs.
Data storage: 3,000 TB/month: $65,072
Data access: 3,000 TB/month: $2,150
Load balancing: 70,000 requests/second: $16,369
As you can see, added up, these don't touch the CPU or networking costs. But data storage alone is more than enough to double the current fixed cost. And load balancing requests across 112 instances is enough to equal half of what Proxyrack pays for their entire colocation budget today.
It's simply not possible to get Proxyrack's margin on a cloud provider anywhere near what they currently enjoy.
We threw quite a few numbers at you in this post, but it's pretty easy to add them up. When we total a basic set of costs from AWS, we come out to $1,055,443 per month to replicate Proxyrack's functionality on AWS. The end result is that Proxyrack reasonably saves 7 digits of cost every month by keeping their head out of the cloud. While it's true that there are ways to optimize those costs somewhat, it's simply not possible to get Proxyrack's margin on a cloud provider anywhere near what they currently enjoy.
Very often, young companies approach their software by assuming that the flexibility they get out of the cloud will allow them to scale their company without thinking about it. They throw piles of cloud resources at problems and assume that they'll figure out a better way to fix things down the road. For some companies, this works. With other companies, they fail before this ever really becomes a problem. For a third class of company, this is a pretty terrible idea, because by the time that they realize they have a problem, disentangling their infrastructure from the cloud provider is extremely difficult. Nobody wants to stop shipping new features for a year while you rebuild your entire deployment pipeline on bare metal.
It's wise to spend some time early in your company's life thinking about whether the cloud makes sense for your business. It doesn't for Proxyrack. Does it make sense for you?
This post was written by Eric Boersma. Eric is a software developer and development manager who's done everything from IT security in pharmaceuticals to writing intelligence software for the US government to building international development teams for non-profits. He loves to talk about the things he's learned along the way, and he enjoys listening to and learning from others as well.