Google Cloud Platform and Amazon Web Services comparison

The “Google Cloud vs AWS” topic is a common discussion argument among our members. Many people think that Google Cloud Platform is the biggest and strongest competitor to the AWS supremacy, as we have discussed already on our blog too some time ago. On the other side, they also know about the impressive numbers that AWS has on its side, and the huge advantage compared to its competitors. So, many people are wondering who will be the winner of this Google Cloud vs AWS competition, to better understand what platform they should focus their learning efforts on.

In this article we will try to tackle the Google Cloud vs AWS questions with a thorough and reasoned discussion about the major differences between these two major platforms. We will see what the strength and the weaknesses of both are, how to take advantage of them, and how to start learning both.

google cloud vs aws

Google Cloud vs AWS: the available services

One of the biggest differences among the two platforms is the amount of services being available on each. From this point of view, AWS is the clear winner. The quantity and quality of the services available on AWS is extremely broad and wide, and it builds up a huge set of opportunities for many different needs. There are specific tools for media transcoding and Streaming, a managed Directory Service, 4 different relational and NoSQL databases, and even a Desktops in the Cloud service that provides remote Windows desktops. The various services are really well integrated, and they provide a very comprehensive cloud service. If you don’t mind locking yourself into a single vendor, AWS has no rivals with regard to the completeness of its platform and the productivity level that you can reach thanks to it.

google cloud vs aws

On the other side, Google Cloud Platform’s list of product is way smaller, and mostly focused on classic IaaS and PaaS services. The latter is probably the area where Google focused most of its efforts, given that Google App Engine has been the first service ever launched in GCP. Nevertheless, you can find the usual IaaS computing, object storage, relational and non relational databases too, and a few more sertvices for DNS and Endpoints. The difference among the two competitors is huge here. How much it impacts on your architecture mostly depends on what your needs are. Chances are that the services provided by GCP can suffice for most common needs, and as we will see very soon, Google Compute Engine has many strength and pros that AWS is lacking.

google cloud vs aws

One area where Google is particularly strong is Big Data, though. It comes as no surprise that a company like Google could profuse all of its experience in the area making some excellent products. And BigQuery really is, by the way. It allows you to analyze massive amounts of data in a really short time, even providing real-time insights about your datasets. And quite surprisingly for such a complex service, it’s also easy to get started with it.

Why GCE may be better than EC2

An area where Google might beat AWS is the IaaS computing platform, probably the most important service for both. EC2 is an amazing service, despite its many quirks, but Google really did an excellent job in creating a valid competitor.

For example, one thing that I really appreciated in GCE is how the “Pay per use” concept is taken to the extreme. The OPEX model is a major strength point of any cloud service, as I strongly remarked in my course “Introduction to Cloud Computing“. So why should I round up the the usage of my EC2 instance to the hour and pay for the whole fee if I used it for a smaller fraction of time? Google Compute Engine bills in minute-level increments (apart for a 10 minutes minimum charge), so you always pay exactly for what you use. You can imagine how convenient this approach can be in a situation when you need to quickly scale a complex infrastructure due to small bursts of traffic.

Speaking about traffic spikes, another huge advantage of Google Compute Engine is that its Load Balancers don’t need any pre-warming. Actually, AWS Elastic Load Balancer is not as elastic as it seems. It’s just not meant to handle a large number of requests. What you need instead is to ask for the so called pre-warming to AWS. After that, ELB can be configured to have a minimum scaling. That’s why on AWS you usually associate ELB with AutoScaling, another service in the platform. GCE balancers can scale instantly as soon as they notice a sudden traffic spike instead. Google promoted that with a great emphasis in a blogpost last year. In my opinion, the availability of this feature by default is another major point that might make GCE more interesting than EC2 in many scenarios.

Other nice GCE features too can be very interesting in same cases. For example, GCE’s persistent disk can be attached to multiple instances in read-only mode, an opportunity that is not available in AWS and allows to distribute data to a large workforce effectively. Also, GCE has a way better integrated networking compared to AWS. VPC is powerful, but is quite an external tool: it came two years after EC2. The latter wasn’t conceived to support a strong networking, a feature that has been added later on as a distinct service. Networking is a first class citizen on GCE instead, so much that you can create firewalls, subnets, routes and whatnot even before starting the instance. Quite a nice things, I have to say

So, is AWS hopeless?

Definitely not. Despite the comparison in the paragraphs above may seem strongly leaning towards GCE, AWS still has many cards to play in the Google Cloud vs AWS challenge. First and foremost, Google still lacks the widespread geographical distribution that AWS has. Just three regions (US, Europe and Asia), three Availability Zones each, versus 11 regions, and a couple dozens of AZ, including the brand new datacenter AWS just launched in Frankfurt, not including the allegedly new region in Ohio. And a much larger choice of Operating Systems and AMIs, a wider range of instance types and families, the availability of spot and reserved purchasing plans: all of them go to the advantage of AWS EC2.

Let’s consider two other services like Beanstalk and Google App Engine. They are two very common PaaS services, actually App Engine has been Google’s flasgship for months before GCE landed,  and despite App Engine is a really great service that is being used by many developers, still Beanstalk seems slightly more interesting. Google App Engine is limited to Java, Python, PHP and Google’s Go, and like many classic PaaS platforms, you have small options to tune the underlying infrastructure. Beanstalk is probably half-way between a pure PaaS and a IaaS. At the price of a slightly bigger management overhead, you get a way more customizable service, and possibly even a looser vendor lock-in.

Google Cloud vs AWS: who’s the winner?

We could discuss this for days. Comparing complex platforms like GCP and AWS is not easy. I’m personally fond of AWS, and that would probably be my favourite choice, mostly because of the large variety of services available there. Nevertheless, I had a chance to play a little bit with GCE recently, and I’ve been impressed by the clean interface of the management console and by the bonus features I wrote you about. I don’t think I’d suggest anybody to migrate away from AWS, but there might be many cases where GCP can provide a better alternative to AWS. As always, it’s all about what you need to do, how you want to do it, what are your limits and constraints. That’s why it’s important to have a good knowledge about all the available options to make a wise choice, and that’s why CloudAcademy still is your best friend in the process of learning cloud computing, thanks to the courses that we recently launched about GCP and the many others that we have available on AWS. Learn both, practice with both, then make your choice. That’s probably the best way to understand what is the best cloud platform around.

  • Paul Penrose

    Really nice post. A couple comments, though:

    1) “If you don’t mind locking yourself into a single vendor, AWS has no rivals with regard to the completeness of its platform and the productivity level that you can reach thanks to it.” This is not a valid statement as it relates to ANY cloud vendor based off that way you are positioning it. Vendor lock in exists with any Cloud vendor at some very high level simply by the fact that I have to use their management tools to access my gear, go lower and there is even more lock in however the real question is the level of friction to migrate from one to another and here I feel AWS is relatively open but obviously this depends on the extend of your usage of the wide range of services.

    2) “Also, GCE has a way better integrated networking compared to AWS. VPC is powerful, but is quite an external tool: it came two years after EC2. The latter wasn’t conceived to support a strong networking, a feature that has been added later on as a distinct service. Networking is a first class citizen on GCE instead, so much that you can create firewalls, subnets, routes and whatnot even before starting the instance.” This is bold statement to make and I feel your explanation falls short. I am not exactly sure why you feel GCE is better here as these features are also a part of AWS.

    • Hi Paul, and thank you for your comments! Here are my answers to you:

      1) I see your point, and I guess I have been too harsh in writing the first sentence. What I meant is that the more AWS-provided services you use for your infra, the more it will be difficult for you to get out of it if you want to change your provider. I mean: with Google I will probably need to set up my own tools for the services that Google lacks, so it will be easier for me to get out of it (at the price of spending way more time to set up my infastructure). On the other hand, If I start using cloudwatch, and then cloudalert, and then cloudtrail, and then Elastic Transcoder, and then SES, and so on, it will be difficult to pull my stuff out of that, although it was way easier for me to build the whole thing. Hope that makes sense now.

      2) No, never meant to say that GCE is better than AWS. I just wanted to remark that GCE had a strong support for networking since its inception, while VPC was added to EC2 at a later stage (which someway even brought to the distinction between EC2-Classic and EC2-VPC, etc). Also, networking related setting are better integrated in the GCE area in the GCP console, while on the AWS console you have some settings under EC2 and the VPC dashboard too. This doesn’t necessarily makes GCP better, and VPC is quite powerful indeed, but still I thought this was a nice thing to point out in the comparison, as it also tells something about how these two platform was built over time.

  • midsizesite

    I’m curious to see a comparison of customer support, particular for critical situations where there are component or service failures and which cause outages.

    • Very good point. I actually never had an opportunity to get in touch with customer support of both, but I guess that could be very interesting addition to this post, or even a nive follow-up.

    • I have never used GCE so I can not speak on their customer service. But… AWS does have great CS. They’re always more than willing to help you out and you can usually get someone on the phone within 10 minutes or so. They have paid technical support plans which I used when starting out. I would recommend using the tech support plans to a friend but once you are familiar with the platform it becomes an added expense you do not need to be paying.

  • Husain

    It would also be nice if you included Azure in the comparison.

  • Can you set up Cron jobs on BigQuery? Then feed into your AWS RDS databases? I would like to see comparisons between AWS spot instances and BigQuery as RDS and EC2 are starting to cost me an arm and a leg…

  • Guest

    You gotta make the date on this stuff more apparent.

  • jjack2684

    You probably didn’t this back then. AWS launch a compute service called Lambda on November 2014. One feature of it is “pay-as-you-use”, in which case you just submit your code and run. Don’t need to manage your EC2 fleet at all.

  • Иммануил Мотоциклов

    although Google cloud throwing $500 coupons – seems it takes more than these gimmicks to attract new or even better matured clients. Amazon is just better in the way they handle serious business. Example – customer support: amazon’s engineers vs. “community forum” and so-called Google professional yapping around. Maybe Azure in the future, Amazon stays today rock solid.

  • Thanks Andrea for such a wonderful post. AWS really has versatile range of services in it’s armory, and why not it’s a Big Old Daddy in market, but sometimes some of its services goes down which affects other services also as they have dependencies.

  • praveen sambu

    what do you think if a company like airbnb has to choose between AWS or GCE services, which one should they go for?

  • Roberto Marchetto

    Great job! The use of a platform rather than another greatly depends on the use case, here is my argumentation https://goo.gl/nfmknl

  • ARUN BHATT

    Is there any limit on how many instance can be created in GCE??