Google Cloud just announced a TON of new database related features. Datastore, BigTable, and Cloud SQL Gen 2 are all out of beta!

What really caught my eye was the fact the SSD Persistent Disks just got a huge IOPS boost at no additional cost! At 25,000 IOPS, you basically start to forget that this is a network attached disk that has built-in redundancy and ultra-fast backups.

So then I got to thinking: how do Google Cloud IOPS compare to other clouds, namely AWS and Azure?

Spoiler: Google Cloud blows them out of the water!

Disclosure: I am super biased because I work for Google, but I tried to be as impartial as possible. Also, I am using the numbers stated on websites. I haven’t benchmarked anything myself. If you can make a better AWS or Azure configuration or if I am doing something wrong, please let me know!

AWS vs GCP

Amazon’s EBS volumes come in a variety of flavors. The Provisioned IOPS SSD is what I’m going to be looking at. The maximum IOPS you can provision is 20,000 per volume.

With Google Cloud Persistent Disk, you can get 25,000 IOPS per volume. Just make sure you have enough CPU and disk size to drive the IOPS, and you are good to go.

So let’s look at some comparisons. I want a beefy database server with 500GB of disk space:

Wow. Just Wow.

You get more IOPS for less than 1/3 the cost!

You could literally launch three instances on Google Cloud for the price of one on AWS.

Now let’s push the limit to get the max IOPS from each provider:

Again!

You get more IOPS for less than 1/3 the cost!

With AWS, the instance does have 4 more CPU cores, but for the same price you can literally launch three 32 core machines on Google Cloud!

Even if you pay $18,000 up-front (!!), AWS is still more expensive! That’s crazy!

Why is Google Cloud so much cheaper?

Two reasons:

Instance costs are lower on GCP. Even without the automatic sustained use discounts, Compute Engine is just cheaper than EC2 in general Provisioned IOPS on AWS are very expensive. With Google Cloud, your disks get IOPS provisioned automatically based on disk size. This is why we had to overprovision disks to get our targeted IOPS. However, AWS makes you pay extra for IOPS, and it shows!

EDIT: It was pointed out to me that you can attach Provisioned IOPS EBS volumes to smaller instances than you could on GCP. @fittedcloud attached a 20K IOPS disk to a t2.small instance, and got the full disk performance. This would cost $1,381.54 a month, and you instance only gets 1 CPU and 2 GB RAM. Again, this is because provisioned IOPS are very expensive!

Azure vs GCP

Each Azure instance comes with a disk, but it is a temporary disk that will be wiped if the instance is deleted or moved. Instead, you need to use Premium SSD Storage if you want the same type of persistent network attached storage that AWS and GCP give you.

The funny thing about Premium SSD Storage is it comes in pre-set chunks. Unlike AWS or GCP, you can’t specify exactly how many IOPS or disk space you want. This also means you have to stripe together disks in RAID to actually get the same level of IOPS that GCP and AWS give you, which is super annoying. It is also confusing which instance can do what and how to set it up.

That being said, let’s take a look at the pricing:

Update: Azure pricing is a bit off, the total should be $1,456.24/month because we are using 8 disks in RAID, not 10.

Again!

You get more IOPS for about 1/3 the cost!

I think we’re seeing a trend here.

To Azure’s credit, it is cheaper and faster than the AWS instance we configured in the first section. However, Google Cloud’s price is just so much lower it’s crazy!

Why is Google Cloud so much cheaper?

Two reasons:

Instance costs are lower on GCP. Even without the automatic sustained use discounts, Compute Engine is just cheaper than Azure VMs in general Getting IOPS on Azure is clunky. Azure makes you stripe together multiple disks to get the IOPS performance you need. This means you have to stripe together 8 volumes to get similar performance. With Google Cloud, you get a ton of IOPS automatically. No need to stripe volumes (which FYI won’t really help on GCP anyway).

Conclusion

I feel like I’m taking crazy pills. Google Cloud is consistently 1/3 the price as AWS and Azure while offering the same or better IOPS performance!

I’m not an expert on AWS or Azure. If you can configure a better machine on these platforms, let me know in the comments!

Also, GCP is not perfect. The max Persistent Disk IOPS per instance is 25k. There are certain (very expensive) instances on AWS and Azure that can go higher.