A Tale of Two Clouds: Amazon vs. Google

In recent years, AWS has become the de facto standard cloud provider. As we’ll see in this article, it may be worth jumping off the bandwagon and taking a serious look at the Google Cloud.

Last updated on August 20, 2018.

Having used both Amazon Web Services (AWS) and Google Cloud Platform (GCP) for several projects, here I’ll highlight the differences between the two solutions as they relate to pricing, cloud products, instance configurations, and free trials.

Google Cloud wins on pricing

Google’s Cloud is the clear winner when it comes to compute and storage costs. For example, a 2 CPUs/8GB RAM instance will cost $69/month with AWS, compared to only $52/month with GCP (25% cheaper). As for cloud storage costs, GCP’s regional storage costs are only 2 cents/GB/month vs 2.3 cents/GB/month for AWS. Additionally, GCP offers a “multi-regional” cloud storage option, where the data is automatically replicated across several regions for very little added cost (total of 2.6 cents/GB/month). Make sure to check out the AWS Cost Calculator and the GCP Cost Calculator for more detailed calculations.

Previously, AWS’ cost structure was pay-per-hour, whereas GCP had a pay-per-minute model in place, with a 10 minute minimum charge. This was an important differentiator if you used the cloud to launch relatively short, on-the-fly analyses, where the rounding to the nearest hour would increase your costs (e.g. an 2.01-hour analysis would have cost 3 hours on AWS). Recently, however, both AWS and GCP announced a pay-per-second billing model. Starting October 2nd 2017, AWS will implement a pay-per-second billing for Linux VMs. And starting September 26 2017, GCP will offer pay-per-second billing for all VM types and OSes. (Keep in mind that if you often do sub-10 minute analyses using VMs, serverless options may be better suited since VMs are relatively slow to boot and serverless functions are billed at every 100ms).

Furthermore, GCP provides a better approach to discounted long-term usage: Instead of requiring users to reserve instances for long periods of time as AWS does, GCP will automatically provide discounts the longer you use the instance — no reservations required ahead of time. This is known as sustained-use discounts and can yield an additional 30% discount if the VM ends up running for the entire month.

In addition, GCP offers committed-use discounts of up to 57%, where customers can reserve a total amount of CPUs and RAM per month, regardless of the number of VMs, their configuration or even geographical zones.

And if reserving instances makes sense for your needs, GCP now also offers additional discounts for reserved instances.

AWS wins on market share and offerings

In terms of user adoption, AWS is the clear market leader, having cornered nearly half of the Infrastructure-as-a-Service (IaaS) market. With its first-mover advantage and nearly 5 years head-start, AWS offers a lot more cloud products and options. In contrast, GCP is fairly new to the scene, and although it offers comparable solutions, it still lags behind.

For example, if you need a fully-managed cloud SQL solution, GCP offers a managed MySQL solution (and PostgreSQL in beta), whereas AWS also offers the option to use Aurora, MariaDB, Oracle, and Microsoft SQL Server. As another example, AWS offers a “serverless” compute product called AWS Lambda, which allows you to run code on-the-fly without having a dedicated instance waiting around for requests. Although GCP offers a similar product (Google Cloud Functions), it only supports serverless functions written in Node.js and Python. That said, GCP is working on Serverless Containers, a product in Alpha that would allow you to run entire containers as functions without having to worry about which languages/runtimes/binaries are supported (sign up for the alpha).

In terms of worldwide accessibility, AWS has many more data centers around the world. One important thing to keep in mind if you’re doing business in China: You can access GCP instances from China, but access to hosted files on Google’s Cloud Storage (equivalent to Amazon S3) is blocked in China (outside Hong Kong).

Google Cloud wins on instance configuration

In terms of VM size, GCP now offers the largest VMs on the market (as of May 2018). The largest GCP instance features 160 CPUs/3.75TB RAM whereas AWS’ largest VM comes with 128 CPUs and a whopping 4TB of RAM! Note that GCP has been catching up quickly: prior to March 2017, the largest VM on GCP only had 32 CPUs, and prior to May 2018, the largest VM featured 96 CPUs and 1.4 TB RAM.

Next, GCP is a lot more flexible when it comes to instance configuration. Along with predefined instance types similar to AWS, GCP also allows you to customize how many CPUs and how much RAM to use. For example, instance type n1-standard-1 comes with 1 CPU and 3.75GB RAM, but you can choose to have an instance with 1 CPU and, say, 1.75GB of RAM. Or 4.25GB. Or 5GB. You get the idea. If your compute needs fit between the available machine types, a custom machine type can result in significant price reductions.

Next, if you do a lot of on-the-fly analysis that can easily be done in small chunks, you’ll want to explore the cheaper, temporary instances that both cloud solutions offer. You may be familiar with AWS’ spot instances, where you bid how much you’re willing to pay to run an instance (generally much cheaper than non-spot rates), and you lose the instance if the market price exceeds your bid (AWS also offers spot blocks, where you specify the timing needed ahead of time).

GCP has a similar offering, but without the bidding, called preemptible instances. These machines can run for up to 24h but may be interrupted by Google at any time if they need the compute power. When the instance is preempted, GCP runs your predefined shutdown script, which gives you 30 seconds to save the current state of your analysis. The upside of no bidding is that launching preemptible instances is much more easily automated, and that pricing is predictable, with up to 80% off regular GCP pricing! To illustrate this, see the chart below comparing historical pricing for a VM with 16 CPUs/64 GB RAM on both AWS and GCP:

GCP’s pre-emptible VMs are cheaper than AWS spot instances, don’t fluctuate in price, and don’t require bidding. On the other hand, GCP provides less predictability as to when your VM will be shut down.

Google Cloud wins on the free trial

AWS offers a very generous 1-year-free trial. The trial is more than enough to get your feet wet, including 750 hours/month of a small 1 CPU/1GB RAM instance with 30GB disk storage, 750 hours/month of a similarly-sized managed database instance (e.g. MySQL), and 5GB of cloud storage (enough for a small web server running constantly for a year). But that’s just the beginning: The AWS free trial offers a lot of other free products, so make sure to check out the full list on the AWS website for details.

Until March 2017, Google Cloud only offered a 60-day, $300 credit trial, which felt less like a trial and more like a $300 discount. Recently, however, GCP extended their $300 credit to last for 12 months, and added a Free Tier that isn’t time-limited. For example, you can get an instance with 0.2 CPU/0.6GB RAM with 30GB disk storage and 5GB cloud storage, all for free. If they keep this up, you’ll be able to run a small website on the GCP for free, for forever (but that’s a topic for another blog post). Make sure to visit the GCP website for details.

Another reason why GCP’s trial wins is that the “credits” model is much better suited for cloud novices, as it forces you to think about how much things cost even during the trial. In my experience, this reduces billing surprises once the trial is over.

Google Cloud wins on UX

GCP has done a great job making The Cloud™ more usable, and undoubtedly features better UX in their dashboards/wizards. Also, gone are the days of region-specific dashboards, launching VMs without knowing their cost, or deleted VMs lingering in your dashboard for 30 mins (why AWS, why?!).

The bottom line

At the end of the day, it is true that AWS offers a lot more cloud products, but quite frankly, unless your applications specifically require them, I find that less is more when it comes to cloud options. For those who are new to the cloud scene, having fewer, consolidated options can also be a blessing by offering a much gentler learning curve.

In my experience, the Google Cloud’s intuitive interface, coupled with cheaper costs, flexible compute options and preemptible instances make the Google Cloud Platform a very attractive alternative to AWS.

So if you’re starting a new project, I would highly recommend you give Google’s Cloud Platform a serious try.

If you enjoyed this article, check out Move Fast and Break the Cloud, the next article in this series, where I benchmark VM boot times on Google Cloud.