Review: Google Compute Engine rocks the cloud
Google's new compute cloud offers a crisp and clean way to spin up Linux instances and easily tap other Google APIsFollow @peterwayner
After you get past the differences over RAM and disk space, the Google machines are meant to be essentially the same as the machines from Amazon or Rackspace -- or even the machines you might buy on your own. Like Amazon and Rackspace, Google makes it easy to start off with Ubuntu; after that, you're talking to Ubuntu, not Google's code. There are differences in the startup and shutdown mechanisms, but these aren't substantial. More substantial is Google's inability to snapshot persistent storage, as you can in Amazon, but Google promises this is coming soon.
If you're migrating from Amazon or Rackspace, you'll need to rewrite your scripts because the APIs are full of linguistic differences, even if they offer most of the same features.
Google Compute Engine ins and outs
Another big part of the equation is bandwidth. Google doesn't charge for ingress, but it has a fairly complicated model for egress. Shipping data to a machine in the same zone in the same region is free, but shipping it to a different zone in the same region is one penny per gigabyte. Then the cost for letting the data "egress" to the Internet depends upon whether it's going to the Americas/EMEA or the APAC (Asia and the Pacific). For what it's worth, egressing the data to some website visitor from the APAC is almost twice as expensive as egressing it to someone in the United States. The costs are set on a sliding scale with discounts for big egressers.
While the complexity of the pricing table will send the purchasing managers to their calculators, it's interesting what Google is trying to do with this scheme. By making intermachine communications free, Google is no doubt banking on people using the racks in the same zones to actually work together on solving problems. In other words, Google is giving us the tools for stitching together our own supercomputers.
In general, Google is doing a good job of making some of the dangers of the cloud apparent. Like compute instances in Amazon, Rackspace, and other IaaS clouds, each Google instance comes with "ephemeral disk," a name that makes the storage sound more fragile than it really is. Keep in mind that the file system that comes with your cloud computer -- be it on Amazon, Rackspace, or Google -- is not backed up in any way unless you code some backup routines yourself. You can run MySQL on your cloud box, but the database won't survive the failure of your machine, so you better find a way to keep a copy somewhere else too.
Calling the storage "ephemeral" makes it obvious that the data might go elsewhere during a real failure or even a "maintenance window." If anything, the name might overstate the dangers, but it all becomes a gamble of some form or another. The solution is to purchase separate "persistent disk" space and store your information there. Or you might want to put it in Google Cloud SQL, the BigQuery data store, or one of the other services offered by Google.
If words like "ephemeral" still sound off-putting, the documentation says Google will negotiate service-level agreements for enterprise customers that begin with promises of 99.95 percent uptime.
Google is also making the dangers of location apparent. One section of the documentation addresses just how you should design your architecture around potential problems. The various zones and regions may go down from time to time, and it's your responsibility to plan ahead for these issues. Google makes the costs of shipping the data transparent, so you can come to intelligent decisions about where to locate your servers to get the redundancy you need.
Ready integration with other Google services is one of Compute Engine's main attractions. It's just one of 46 services that you can access through Google's Developer API.