Google Compute Engine vs. Amazon Web Services


I’ve been a customer of AWS for a long time. But I am also a great fan of Google and it’s products. I was among the first people who tried out Google App Engine(GAE) when it came. It’s another matter that GAE disappointed me with all the restrictions it places on the developers because the java applications are running in a sandbox sort of environment. That made me gravitate towards the EC2 instances of AWS. Even after so many years  and with so many competitors in the fray I can’t find a credible competitor to the value proposition of EC2 instances offered by AWS. I have evaluated Rackspace in the past. It is way too expensive than AWS. Just read about Google Compute Engine today and I promptly jumped in to evaluate it. Just to see what my most favorite company has to offer to me. Will it be good enough to make me shift from AWS?

Here’s what I came back with after my evaluation of the Google Compute Platform:

  • Among the many things that Google has got all wrong is the consistency of information. It is so hard to find all pages related to a product in one place. It is spread across many different domains and urls. Sometimes, it becomes a pain to find the google projects console from some documentation page of Google Compute Engine(GCE). Even the documentation is spread out. It gives me a feeling that once you close your browser you will not be able to find the same page again.
  •  I didn’t get it why google had to make it’s own command line tools to like gcutil, etc to work with the virtual machines? With so many steps to do with such command line tools it makes it difficult for the first time user to comprehend the import of the steps. Also, the repeatability of the steps become difficult.
  • Don’t lose heart already. There is a browser based console for GCE. You can start a new instance here like AWS, which the regular AWS users have come to like and rely on. Instead of a wizard like approach to start an instance that AWS takes GCE lays it out in one page. You check all your options and then click on the “Start Instance” button. I chose an N1-Standard-1 type of a VM.
  • You will then have to use a gcutil command to ssh into your server which has been assigned an “Ephemeral” IP address. I like the AWS approach of using the ssh command with a key file option directly. The gcutil command is long and takes time getting used to.
  • I quickly installed an apache server to check how fast the VM installs it and what are the response times. Well, the apache installed quickly like it was supposed to. And promptly I put the Ephemeral IP address of my instance in a browser to see if I see the “It Works!” page. And I found out the GCE, by default, closes all ports for incoming traffic!
  • Okay, this paranoia is something I can live with. But like AWS offers a way in the AWS console to open certain ports I thought GCE would offer me something like that in its console. But I didn’t find one. The google documentation says that we could use iptables to open ports. Well, even tinkering with iptables for 5 minutes with documentation from the net didn’t help me open the port 80.
  • I promptly deleted my instance, at this point.

Disappointing, is what I can say of my experience with GCE.

Price-wise, AWS takes the cake again. If you purchase a reserved instance AWS works out “at least” half the cost of GCE instances. The only good thing about GCE is that it bills a person by the minute after the first ten minutes of usage.

Summary: I am not migrating from my AWS instances any time soon.