もしあなたが,「オバマ大統領のために,米国民が誰でも質問を投稿できるWebサイトをすぐに立ち上げてほしい」と頼まれたら,どのような見積もりを作成するでしょうか。機能数は少なくていいのですが,ピーク時には全米から毎秒700件ものDBアクセスが集中し,かつ,サーバー障害に対応する冗長性も必要です。

 おそらく大手のSIerであれば,ミッドレンジのUNIXサーバーをクラスタリング構成してOracle RACを載せるでしょう。納期は半年,金額は数億円というところでしょうか。腕に自信のある中堅SIerなら,memcached(分散キャッシュ)やMySQLのレプリケーション機能を組み合わせてクラスタリング構成を組み,納期は3カ月,金額は数千万円といった見積もりを出すかもしれませんね。

画面1●ホワイトハウスの投票サイト「Open for Questions
[画像のクリックで拡大表示]
 筆者なら,納期は1カ月,金額は200万~300万円の見積もりを作成します。なぜなら,米Googleのクラウド・サービス「Google App Engine(以下,App Engine)」を使えば,クラスタ構築の初期費用ゼロで上述の要件を満たすWebサイトを構築できるからです。これは決してハッタリではなく,実際に今年の3月24日,ホワイトハウスがApp Engineを用いて開発した投票サイト「Open for Questions」(画面1)が2日間だけ一般公開されました。同サイトでは,合計で10万件の質問の投稿と180万件の投票を受け付け,その結果を受けてオバマ大統領が記者会見を行っています。

 App Engineの最大の特徴は,Googleの各種サービスと同等の高いスケーラビリティと可用性を,誰でも簡単に手に入れられる点です。Open for Questionsサイトも一般公開されているApp Engineをそのまま利用しており,「特別な作り込みは行っていない」と,Googleのエンジニアは説明しています。ホワイトハウス側の技術者がオープンソースの投票サイト・ソフトウエア(Google Moderator)をベースにチューニングを加え,自らApp Engineにデプロイ(配置)したとのことです。

 負荷分散や高可用性のためのクラスタリング構成や高性能なサーバーの導入は一切不要で,Oracle RACやmemcached,クラスタウエアなどを駆使して複雑なシステム基盤を作り上げる必要はありません。おそらく,このOpen for Questionsサイトは(200万~300万円とは言いませんが)相当な低コストと短納期で実装されたものと推測されます。

図1●Open for Questionsサイトのトラフィックの推移
引用元:「From Spark Plug to Drive Train: Life of an App Engine Request」Alon Levi,Google I/O 2009
[画像のクリックで拡大表示]
 では,App Engineによって“お手軽”に構築されたWebシステムは,いったいどの程度のスケーラビリティを備えているのでしょうか。図1は,Open for Questionsサイトのトラフィック推移を示したグラフです。

 このグラフに示されるように,サイトへのアクセス数はCNNやGoogleホームページでの告知に合わせて次第に上昇し,投票締め切り時間にはデータベースに対して毎秒700件もの膨大な検索処理が実行されています。トラフィックの急激な増加にもスムーズに対応し,じつに見事なスケーラビリティを達成した事例といえます。ちなみにGoogleでは,Open for Questionsサイトへの負荷がピークに達した際にも,App Engineが収容する他のアプリケーションには一切影響がなかったと説明しています。