It has been awhile since I have written anything about Google Cloud Computing. I started to take a look at Google Compute Engine over a year ago but I was stopped because it was in limited preview and I could not access it. It looks like GCE has been made generally available since May so I thought I’d check back to see what has happened.
To use GCE you sign into Google’s Cloud Console using your Google account. From the Cloud Console you can also access the other Google cloud services: App Engine, Cloud Storage, Cloud SQL and BigQuery. From the Cloud Console you can create a Cloud Project which utilizes the various services.
Figure 1. Google Cloud Console
Unlike App Engine, which lets you create projects for free, GCE requires billing to be enabled up front. This, of course, will require you to create a billing profile and provide a credit card number. After that is done you can walk through a series of steps to launch a virtual machine instance. This is pretty standard stuff for anyone who has used other IaaS offerings.
Figure 2. Creating a new GCE instance
The choice of machine images is certainly much more limited than other IaaS vendors I’ve used. At this time there seems to be only four available and they are all Linux based. Probably Google and/or the user community will add more as time passes. It is nice to see the per-minute charge granularity which, in actual fact, is based on a minimum charge of 10 minutes and then 1 minute increments beyond that. The smallest instance type I saw, though, was priced at $0.115 per hour which makes GCE considerably more expensive than EC2, Azure and Rackspace. When you click the Create button it only takes a couple of minutes for your instance to become available.
Connecting to the instance seemed to me to be a little more complicated than other providers. I am used to using PuTTY as my ssh client since I work primarily on a Windows machine. I had expected to be able to create a key pair when I launched the instance but I was not given that option. To access the newly created instance with PuTTY you have to create a key pair using a third party tool (such as PuTTYgen) and then upload the public key to GCE. You can do this through the Cloud Console by creating an entry in the instance Metadata with a key of sshKeys and a value in the format <username>:<public_key> where <username> is the username you want to create and <public_key> is the actual value of the public key (not the filename) you create. This can be copied from the PuTTYgen dialog. A bit of extra work but arguably a better practice anyway from a security perspective.
Figure 3. Creating Metadata for the public key
After that is done it is straightforward to connect to the instance using PuTTY.
Figure 4. Connected to GCE instance via PuTTY
At this point I do not believe that Google Compute Engine is a competitive threat to established IaaS providers such as Amazon EC2, Microsoft Azure or Rackspace. To me the most compelling reason to prefer GCE over other options would be the easy integration with other Google cloud services. No doubt GCE will continue to evolve. I will check back on it again soon.