最近、サービス提供事業者も導入企業も増えているPaaS(パース)型のクラウドコンピューティング・サービスでは、従来のSaaS(サース)型とは違って、自社の独自アプリケーションを動かすことができます。そのうえ、利用者数の急増に自動的に対処してくれる点なども好評で、導入企業の多くが「従来は不可能だったことが実現できる」と口をそろえます。今回(本連載の第2回)は、主なPaaS型サービスの特徴と、ユーザー企業がそれらを選んだ理由を紹介していきます。

 PaaSに関しては、グーグルの「Google App Engine」、セールスフォース・ドットコムの「Force.com」と「Heroku(ヘロク)」、日本マイクロソフトが提供する「Windows Azure Platform」に加えて、米アマゾン・ウェブ・サービシズの「Amazon Web Services(AWS)」を取り上げる。

 AWSのサービスラインアップのうち、仮想マシン貸しサービスの「Amazon EC2」はIaaS(アイアース)型のクラウドコンピューティング・サービスだが、「Amazon Elastic MapReduce(EMR)」などEC2を補強するサービスはPaaS型に分類できる。AWSは2011年1月に、Javaアプリケーションに対応するPaaS「AWS Elastic Beanstalk」の提供も開始し、PaaSのラインアップを拡充している。

【Google App Engine】 圧倒的な拡張性

 Google App Engine(GAE)の特徴は、その拡張性の高さだ。GAEは、アプリケーションの負荷に応じて、システムが自動的に拡張する「自動スケーリング機能」を備えている。アプリケーションサーバーに対するリクエスト数などを監視し、負荷が高まると、自動的にアプリケーションサーバーのプロセス数が増える。

 Amazon EC2も、仮想マシンの台数を自動的に増やす「Auto Scaling」機能を備える。しかし、仮想マシン単位ではなくプロセス単位で処理能力を増減させるGAEのほうが、システムはより機敏に拡張する。

 そのうえ、GAEのデータベース機能である「データストア」は、グーグルが開発した分散データベース「BigTable」がベース。I/O(データ入出力)処理やクエリー処理を、グーグルが運用する大量のサーバーで並列処理するため、拡張性が高いのである。

 ソーシャルアプリケーションの開発を手掛けるバスキュールの田中謙一郎取締役は、「GAEで運用するアプリケーションのユーザー数が、2日間でゼロから100万人に増えても、設定不要でシステムの能力が拡張した」と語る。

 同社とソーシャル・ネットワーキング・サービス(SNS)大手のミクシィが、2010年12月にGAEを使って運営した期間限定アプリケーション「mixiクリスマス」は、登録ユーザー数が、12月1日のサービス開始から2日間で累計100万人に、1週間で同200万人に達した。

 その後も毎日100万人のユーザーがログインし、1秒間に最大600件のリクエストを処理した。このような膨大な処理を、GAEは難なく処理した(図1)。その間、グーグルが運用するアプリケーションサーバー群のインスタンス(リクエスト処理を担うプロセス)数は、朝方には数十個だったのが、混雑する昼休みには500個まで自動的に増えた。

図1●1日100万ユーザーが利用する「mixiクリスマス」を支えた「Google App Engine」
図1●1日100万ユーザーが利用する「mixiクリスマス」を支えた「Google App Engine」
Google App Engineは、負荷に応じてアプリケーションサーバーの「インスタンス(リクエスト処理を担うプロセス)」数が自動的に増減する。「mixiクリスマス」は1日100万ユーザーが利用したが、問題なく処理をこなした。
[画像のクリックで拡大表示]

業務アプリもGAEで運用

 横浜市にあるソフト開発会社、プロフィットは、運送会社が顧客向けに提供する運送料金見積もりシステムをGAE上に構築した。同社の選択理由も、拡張性の高さだ。

 同社システムソリューション部の石井賢司氏は、「特定の顧客向けに開発するシステムだったが、開発費を半額にする代わりに、他の運送会社にもSaaSとして提供できる契約にした。そこでユーザー数が増えることを見込んで、GAEを採用した」と語る。現在は10社の運送会社が同システムを利用するが、問題なく稼働している。

 GAE上で業務アプリケーションを開発するに当たっては、「Slim3」というGAE用のアプリケーション・フレームワークを使った。Slim3はそれ自身がJavaで書かれたフレームワークで、GAEに様々な機能を追加する。

 GAEのデータベースであるデータストアは、一般的なリレーショナルデータベースに比べて、検索時のフィルタリングやソート機能が不足しているほか、トランザクション処理において一貫性が保たれる範囲が狭い。Slim3を使うことで、インメモリーフィルター機能や、GAE標準よりも範囲の広いトランザクション処理機能(グローバルトランザクション)などが実現する。プロフィットの石井氏は、「Slim3によって、GAE上の開発がかなり容易になった」と語る。