Google Compute Engine

Google I/OGoogle Compute Engine の発表があった。Google App EngineがPaaSなのに対して、Compute EngineのほうはIaaS。要するにAmazon EC2型の仮想計算機を提供する形のクラウドだ。

ただのIaaSかよ

個人的には結構意外、というか残念だった。確かにPaaSのGoogle App Engineではできないことは多々あるので、別の枠組みは欲しいのだけど、ただの仮想計算機という、最強ではあるけど、ある意味なにも考えていないような抽象化でなく、もうすこし別の抽象界面をGoogleなら見つけてくれるのではないかと思ってたのだ。
例えば、Native Clientのバイナリを性能保証して動かすようなサンドボックスとか。I/Oまわりがなかなか大変だろうけど、httpまわりはApp Engineでやればいいので、適当にAPIを切ってやればそこそこ汎用のものができそうなのに。

どんなサービスか

EC2と同様に、仮想計算機インスタンスを提供するサービス。インスタンスは今のところ下記の4種類。GCEU (Google Compute Engine Unit)という謎の単位は2.75GCEU が Hyper Thread on の Sandy Bridgeのワンコア相当だそうだ。まあ、よくわからないけど、きっとこれがAmazonのEC2Compute Unitに相当する、という主張なんだろう。こちらは、2007の1.0GHz-1.2GHzのOpteron相当という話だが。

#core GCEU mem LocalDisk Price
n1-standard-1-d 1 2.75 3.75GB 420GB $0.145/h
n1-standard-2-d 2 5.5 7.5GB 870GB $0.29 /h
n1-standard-4-d 4 11 15GB 1770GB $0.58 /h
n1-standard-8-d 8 22 30GB 2x1770GB $1.16 /h


ちょっとおもしろいのは、Projectという概念があり、サービスはProjectに対して提供される。Projectのメンバにはviewer, owner, editor のロールがあり、それぞれできることが異なる。インスタンスはいずれかのProjectに属する。

Projectには、複数のNetworkを持つことができ、個々のNetworkに複数のインスタンスを持つことができる。一つのNetwork内のインスタンスは基本的に自由に通信することができる。Firewallでいろいろ制限をかけることもできる。

インスタンスやその他諸々の制御は、gcutil というCLIプログラムで行う。当然APIも定義されているので、そのうちブラウザからアクセスできるようになるんだろう。

仮想計算機のイメージはデフォルトでUbuntu 12.04 LTS。イメージを変更したものを起動イメージにするには、イメージをファイルに書き出して登録する必要がある。ファイルの作成にはイメージの中にはじめから用意されているimage_bundle.py というプログラムを用いる。できたファイルをGoogle Cloud Storageに移し、さらにイメージコレクションに追加する。これには、やはりイメージの中に用意されている gsutil コマンドを用いる。

ディスクは、EC2のようにインスタンスが落ちると消えてしまうephemeral diskとpersistent diskがある。なんと、どちらもかならず暗号化して書き込んでいるとのこと。計算負荷高そうだが。。インスタンスにはかならず10Gのephemeral diskが割り当てられているそうだ。上に示したリストはそれにpersistent diskを追加したもの。

お値段

AWSとどっちがどうなのか、だれでも知りたいところだと思うが、値段の比較は直接対応するインスタンスタイプがないのでなかなか難しい。GCEの n1-standard-1-dは、1時間0.145ドルだが、これは、AWSのStandardのmediumの1時間0.16より安い。さらに、GCEのほうは、EBSみたいなものもついているので更にお得だし、CPU的にも2.75 : 2.00 でちょっと速い。

さすがに後攻なので、値段的には相当頑張っている、ということなんだろう。しかし、AWSにはスポットインスタンスとか予約とかもあるので、実際に安くなるかはわからない。

所感

AzureにもLinuxが立つようになったというし、Compute Engineの投入で、3強がIaaSでがっぷり四つ。とはいえ、AWSにはEC2と連携することを前提とした豊富なサービスがある。Azureにもあるけど、あれはLinuxから使えるのかな???

今後は単純な仮想計算機の値段の勝負ではなくて、システム全体の使いやすさや機能が問題になりそう。たとえば、App EngineのSQLサービスはCompute Engineから使えるんだろうか?App EngineからCompute Engineに認証付きでアクセスする方法とか用意されるんだろうか?期待。