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.

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, AWS announced that it would implement a pay-per-second billing for Linux VMs, starting October 2nd 2017, placing it on par with GCP in terms of cost structure (unless you often do sub-10 minute analyses using VMs, in which case 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 is currently in Beta release and only supports serverless functions written in Node.js.

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 large instances, AWS is the clear winner. The largest GCP instance is 64 CPUs/416 GB RAM, whereas AWS offers instances with 128 CPUs and a whopping 2TB of RAM!

That said, 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!

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.

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, pay-per-minute pricing, 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.

* 2017/03/13: clarified that S3 does not provide multi-regional cloud storage.
* 2017/09/18: included details about EC2’s new pay-per-second billing model.
* 2017/09/23: added details about committed-use discounts