Google Compute Engine
Google I/Oで Google 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を追加したもの。