Webサービスのスケールか、汎用分散処理か

グーグルとアマゾンのクラウドの違い

2008/05/29

 米グーグルは現地時間の5月27日、これまでプレビュー版として一部ユーザーに公開していたWebアプリケーションプラットフォームサービス「Google App Engine」(GAE)を、一般向けに公開すると発表した。同時に2008年後半に導入予定の料金体系も明らかにした。

 これまで通り500MBのストレージ、月間500万ページビューまでの利用であれば無料。それを超える分については、1CPUコア1時間当たり10〜12セント、1GB・1カ月当たり15〜18セントかかる。通信帯域の月額は受信について1GB当たり9〜11セント。送信については1GB当たり11〜13セントとなっている。

 この価格設定はAmazon Web Services(AWS)と極めて類似している。例えば「Amazon EC2」(Elastic Compute Cloud)は、1.7GBのメモリ、1CPUコア、160GBのストレージのインスタンスを1時間使った場合の価格が10セント。GAEの1コア当たり10〜12セントというのと、ほぼ同額だ。通信帯域の月額を見ても、Amazon EC2では受信について1GB当たり10セント(GAEは9〜11セント)、送信は1GB当たり10〜17セント(GAEは11〜13セント)とほぼ同じ水準。先行するアマゾンのクラウドサービスの料金体系をグーグルが意識しているのは明らかだ。

Google App EngineはWebアプリケーションに特化

 GAEもAWSも、ともに小規模な企業、あるいは個人の開発者にクラウドコンピューティングを提供するサービスだ。両者は価格体系も非常に似ている。

 しかし、GAEとAWSは想定している利用方法がかなり異なるようだ。最大の違いは汎用性だ。

 GAEはWebアプリケーション作成に特化したプラットフォームを提供している。これに対しAWSは、より汎用的なコンピューティングプラットフォームを提供するものだ。

 GAEで利用できる開発言語は今のところPythonだけで、SDKにはRubyに対するRuby on Railsに相当する、Python向けWebアプリケーション作成フレームワーク「Django」が含まれている。Django以外のフレームワークを使うこともできるが、いずれにしてもPythonを使ってWebアプリケーションを作成することに変わりはない。SDKをインストールしたローカルPCで開発し、それをGAEにアップロードすることでWebサービスを立ち上げることができる。

 GAE上の開発にはグーグルが提供するAPI群も利用できる。SQLライクなGQLでデータベース機能を提供する「Datastore API」、画像の回転やリサイズを行う「Images API」、メールの送信を行う「Mail API」、メモリ上にデータをキャッシュすることでレスポンスを高速化する「Memcache API」(名前から分かる通り、グーグルはmemcachedに相当する機能と説明している)、HTTP関連の「URL Fetch API」、ユーザーアカウントやログイン情報を管理するための「Users API」などが利用できる。

 GAE上で稼働するWebサービスは、グーグルのインフラ上で大規模利用に耐えるほどスケールする、というのがグーグルの売り文句だだ。グーグルでは具体的な数値を示していないが、例えばGAE上で作ったWebサービスをFacebook上で公開するなどで、今日思いついたWebサービスが、1週間後にグーグルのインフラ上で数百万人に使われるということもあり得るだろう。

 GAEはWebアプリケーション作成を行う人にとって必要十分なプラットフォームを提供しているが、それ以外の用途に使うという汎用性はない。

Amazon Web Servicesは分散処理もできる汎用プラットフォーム

 Amazon EC2はよりPCに近い仮想環境を提供する。開発言語どころか、どのOSを使うかも自由だ。アマゾンやアマゾンのパートナー企業が公開しているAMI(Amazon Machine Image)と呼ぶ仮想OSイメージを使うことで、Red Hat Linux、Ubuntu、SolarisなどのOSが利用できる。ユーザー自身がイメージを作成することもでき、あらかじめカスタマイズしたイメージを用意しておけば、同一の開発環境を100台用意するといったことも可能だ。

 AWSにはAmazon EC2のほかにも、仮想ストレージ(Amazon S3)、仮想データベース(SimpleDB、AmazonSQS)などがあり、これらを組み合わせることさまざまな目的に利用できる。

 AWSでできてGAEにできないのは、次のような利用方法だ。

 米大手新聞のニューヨークタイムズは2007年9月18日にWebサイトの一部コンテンツで適用していた有料サービスを廃止し、すべて無料としたが、同時に、すでにパブリックドメインとなっている過去の記事をデジタルアーカイブとして公開した。このとき、1851年から1980年までの過去記事の1100万枚のスキャン画像、合計4TBにもなるTIFF画像をPDF化するのにAWSを使ったという(リンク)。すでにAWSのユーザーだったというニューヨークタイムズの技術担当者は、Amazon EC2上に100インスタンスを生成。24時間以下で1100万枚の画像から1.5TB分のPDFを作ることに成功したという。

 分散処理には「Hadoop」と呼ばれるJavaで書かれたオープンソースの分散処理フレームワークを使ったという。Hadoopはヤフーの技術者が中心に開発を進めているソフトウェアで、グーグルが持つ分散処理の技術基盤「MapReduce」のオープンソース版と言われている。MapReduceはグーグルの中では検索インデクスの作成をはじめ、多くの処理で利用していると言われている。

 MapReduceもHadoopも、並列化に必要な処理や技術についてプログラマが詳しく知らなくても、分散処理を実現できるよう設計されている。例えば、分散して各ノードに配布したタスクが何らかの理由で処理を完了しなかった場合でも、複数にコピーしたデータを自動的に別のノードに再配備するなど耐障害性を備えている。

 ニューヨークタイムズの技術担当者は、AWS上でHadoopを使うという手法を実際に実行する際、パニックになることもあったという。誰もやったことがない新しい手法だったからだ。しかし、こうした事例は今後も増えてくるだろうし(Hadoopの事例集)、潜在的なニーズは大きいと思われる。たった1人のプログラマが240ドルの利用料を払い、4TBの画像データを1日で処理できてしまう時代になったのだ。

クラウド(雲)の形はけっこう違う

 グーグルもアマゾンも自社のインフラを“プラットフォーム”として外部に提供していることに違いはない。料金体系も、「クラウド」という宣伝文句もそっくりだ。

 グーグルはGAEの一般公開に当たって、「クラウドコンピューティングのパワーを、より多くの開発者に提供する」と説明している。しかし、GAEは実際にはスケーラビリティが高いWebアプリケーションプラットフォームではあっても、AWSのように汎用性のあるクラウドコンピューティングサービスとは異なる。グーグルは生に近いOSやファイルシステムはすべてフレームワークの下に隠蔽しているし(例えばPythonからローカルファイルの読み書きはできない)、MapReduceや分散ファイルシステムのGFSを開発者に直接公開しているわけでもない。その代わりグーグルはGears(旧称Google Gears)を提供して、クライアント側でもWebアプリケーションの使い勝手を高めるなど、徹底して「Webの開発プラットフォーム化」の道をばく進している。

 「クラウドコンピューティング」と総称される新しいサービスが登場してきているが、実際の個々のサービスは異なった形態のクラウドを提供している。どういう形態のクラウドが、どれだけの市場やユーザー(開発者)を獲得するのか、またどう進化していくのか、今後も要注目だ。

(@IT 西村賢)

情報をお寄せください:

アイティメディアの提供サービス

キャリアアップ


- PR -
ソリューションFLASH

「ITmedia マーケティング」新着記事

「マーケティングオートメーション」 国内売れ筋TOP10(2024年12月)
今週は、マーケティングオートメーション(MA)ツールの売れ筋TOP10を紹介します。

2024年の消費者購買行動変化 「日本酒」に注目してみると……
2023年と比較して2024年の消費者の購買行動にはどのような変化があったのか。カタリナマ...

FacebookやXなど主要SNSで進む「外部リンク制限」の実態 唯一の例外は?
ソーシャルメディアはかつてWebサイトへの重要な流入経路であった。しかし、最近は各プラ...