2009年10月27日火曜日

商用クラウドコンピューティング

Amazonはバーチャル・サーバーの仕組みを、「一つのパワフルなサーバーを複数のバーチャル・サーバーとして小分けしてレンタルする」ことに使ってはいるものの、「サーバーを完全にバーチャルにしてハードウェアと切り離し、ハードウェアに問題があってもサービスには一切支障をきたさない」というレベルまでは使っていない。バーチャル・サーバーと呼ぶのであれば、「ハードの問題」とか「特定のCPUから別のCPUへの引っ越し」とかを見えなくしてほしい。
ec2を使っても「データベースのお守り」は自分でしなければならないこと。バックアップとか修復とか、それなりの手間はかかる。そして当然だが、データベースのスケーラビリティの問題を解決するのもサーバーの借り手の責任である。一つのデータベースで足りているうちは良いが、ユーザーが増えて複数のデータベースに分けなければならない段階になると、パーティショニングやリプリケーションやらといろいろと複雑な問題を解決しなければならない。
クラウドコンピューティングを「サーバー運営のアウトソース」という意味で見た時に、Amazon と Google では、セルフサービスの学食とフルサービスのレストランの違いぐらいがある。
「ハードウェアの故障にどう対応しよう」「ユーザーが増えた時にデータベースをどう分けよう」などのことは心配せずに、サービス作り・ソフトウェア作りに100%集中したいのであれば、Google App Engineの方が格段の「おもてなし」である。
自分でOSのインストールまでできるAmazonと比べると以下のような制限がある:

1. Goolgle App Engine上のアプリケーションはサンドボックスの中で走る。OSのインストールはもちろんだめだが、それだけでなく、さまざまなリソースへのアクセスはかなり制限される(「ファイル」を作ることができない、デーモン・プロセスを起動したり、TCP/IPソケットを開きっぱなしにすることもできない)。基本的に、「入って来たHTTPリクエストを高速にステートレスに処理する」ことしか出来ない。

2. データベースはGoogleのDatastore(Big Table)を使わなければならない。MySQLやOracleのようなリレーショナル・データベースとは違い、スキーマレスのオブジェクト・データベースなので、リレーショナル・データベースに関するノウハウはほとんど使えない。作ったアプリケーションを他の環境(例えばAmazon ec2)に大きな変更を加えずに持って行くことは不可能。

3. 公式にサポートされている言語は、PythonとJava(Javaの上でRubyやPHPなどの他の言語を動かすことは可能)。

商用で評価できる状態になってきた、クラウドだが、そろそろ勝負がつき始めている.今からはじめるのは遅いと思うのだが

0 件のコメント: