Linode is cheaper than GCP and AWS
Analyse the costs and benefits instead of following the herd of other startups
Linode is cheaper than Google Cloud and AWS. Let’s compare the prices of various services:
MySQL
First, let’s look at the managed MySQL service. A database with 256 GB memory1 costs almost the same on all three services:
What if we need only 64 GB memory?
What if we need only 16 GB memory?
The conclusion so far is that managed databases cost the same on AWS, GCP and DigitalOcean.
VM
Let’s pick the cheapest VM that has at least 256 GB memory and 32 vCPUs 2. This is what it costs per vCPU:
If you’re running a memory-bound workload that requires 256 GB memory and isn’t particular about the CPU, this is what it costs per GB of memory:
If you’re running a CPU-bound workload that requires 40 vCPUs and isn’t particular about the memory, this is what it costs per vCPU:
Let’s say you don’t need such gigantic VMs. Maybe you need only 16 GB memory and 2 vCPUs. In that case, this is what it costs per vCPU:
Or maybe you have a compute-intensive workload that requires 2 vCPUs and isn’t particular about the memory. This is what it costs per vCPU:
Object Storage
The summary is that:
Linode is cheaper than GCP and AWS
Some other factors that go into the decision of cloud provider are:
Linode is much cheaper than the alternatives.
Linode and DigitalOcean also have much more predictable pricing than AWS and GCP, where one person woke up to a $72,000 bill overnight.
Do you trust Google? In my case, they threatened to terminate my startup’s account for an unpaid bill of less than a dollar, that too unpaid because their systems failed to charge my credit card.
Are you using high-level abstractions like FaaS, App Engine or App Runner? These are not available on Linode or DigitalOcean. If I were to stick with GCP or AWS, this would be the biggest reason why. If, on the other hand, you told me we can use only VMs and self-host everything, then I’d lean towards Linode.
Linode and DigitalOcean are much simpler than AWS or Google. Their huge complexity is a turn off. Selecting the right EC2 instance can take you a week to understand all the tradeoffs. The EC2 user guide is 1600 pages! That’s a waste of time that you could otherwise spend generating business value.
Are you operating at scale? Saving half off $1000 a month isn’t worth it, but saving half off millions of dollars a month is more than enough to pay for the increased DevOps cost of using lower-level abstractions.
Even if you’re not operating at scale yet, does your business model require you to? For example, if you’re building the next WhatsApp, it will either succeed with 100 million users or fail. If you have a high number of users, the difference between Linode and GCP or AWS will be hugely different.
Based on all these factors, you should decide between GCP, AWS and Linode.
I’ve assumed the following:
MySQL, since it’s cheaper than Postgres on RDS.
32 vCPUs.
DigitalOcean offers 7025 GB of free storage, so I’ve configured AWS and GCP to match. AWS and GCP charge separately for storage, which I’ve included its price in the estimate.
We’re also assuming that you’re going to backup your database, and that the backups take the same amount of space as the database itself.
We’re using SSD storage.
We’re using NVMe, except for Google, which doesn’t offer it.
All databases are configured with a hot standby for failover.
Pricing is on-demand for maximum flexibility, not using a reserved instance, savings plan, etc.
Some services charge differently based on the region. In such cases, we’re using the cheapest datacenter for each service.
We don’t need a specific CPU architecture (ARM vs x64), specific CPU model, high network bandwidth, or any other such exotic features.
Linode doesn’t offer a managed database service.
I’ve assumed the following:
When we pick an instance that has a certain number of vCPUs, only instances that can sustain full use of those vCPUs indefinitely are counted. Not, for example, AWS’s t4g.nano, where you can burst to 2 vCPUs, but only for a while, after which you’re throttled to 0.1 vCPU. I’m counting that as 0.1, not 2.
Shared instances where the provider doesn’t commit to a certain CPU allocation are excluded.
Only the latest generation instances are considered.
DigitalOcean offers instances that support NVMe at a higher price; only such instances are considered.
DigitalOcean offers 10 TB free transfer, and Linode offers 11 TB. AWS and Google offer no free transfer, so I’ve configured them with 10 TB transfer to match DigitalOcean.
GCP offers premium egress, where the data is carried on the Google backbone as long as possible, and standard egress, where the data is carried on the slower public Internet as long as possible. I’ve considered both options.
DigitalOcean offers 250 GB storage and 1 TB storage, so I’ve configured the rest to match.