Google検索サービスのインフラストラクチャを基盤にした「Google App Engine」。各種ライブラリやアプリケーション・フレームワークが提供される。データを永続的に保管するサービスがあり,それをデータベースのように利用可能。その一方で,「リクエストの処理は30秒以内」といった制約がある。

 米Googleが提供する「Google App Engine(以下,GAE)」は,Webアプリケーションの開発・実行環境を提供するサービスです。基本的にはGoogle検索サービスと同じシステム基盤なので,スケーラビリティに優れた実行環境であるといえるでしょう。GAEの上でアプリケーションを開発する際,何がポイントとなるのでしょうか。その基本を,今回と次回の2回に分けて解説します。

 今回はGAEの概要編で,まずGAEの全体像を説明します。そのうえで,開発の手続きと環境,提供されるライブラリとフレームワーク,データベース・サービスの概要,アプリケーション開発にかかわる制約,などを解説します。

GAEの概要

 GAEを含むサービスの全体像を図1にまとめました。データベースやOSなどのインフラストラクチャの上に,各種ライブラリとアプリケーション・フレームワークが提供されています。GAEにはWebアプリケーションの開発・実行環境がそろっていて,開発者はインフラストラクチャのことを考えずにWebアプリケーションの開発に専念できます。Webアプリケーションへのアクセスが増えた場合,ロードバランサやデータベースのパーティショニング,追加のハードウエア投資などについて頭を悩ます必要はありません。アクセスが増えると自動的にサーバーが増え,自動的にロードバランスされます。

図1●Google App Engineを含むサービスの全体像
図1●Google App Engineを含むサービスの全体像
[画像のクリックで拡大表示]

 また,GAEがデータの保存用に提供する「Datastore」というライブラリは,もともとスケーラビリティに重点を置いた設計になっているので,多数のアクセスがある場合でも高い性能を出すことができます。

 アプリケーションを開発する際,GAEの利用は無料です。開発したアプリケーションも一定のリソース・サイズまでは無料で動作させることができ,無料プランを超えて利用したい場合は,有料プランを選んで多数のアクセスを処理することができます。通常であれば,アクセスが増えてくるとインフラストラクチャを見直す必要がありますが,GAEではアクセス増になって有料プランに移行したとしても,インフラストラクチャに頭を悩ます必要はありません。

開発の手続きと環境

 GoogleがGAEを発表したのは2008年4月です。当初,GAEがサポートする言語はPythonのみでしたが,2009年4月にはJavaのサポートが発表されました。現時点では,JavaとPythonの2種類の開発言語をサポートしています。

図2●Google App Engineを用いたアプリケーション開発の流れ
図2●Google App Engineを用いたアプリケーション開発の流れ
[画像のクリックで拡大表示]

 図2は,GAEでWebアプリケーションを開発する際の流れを示しています。(1)GAEのアカウントを取得し(無償で取得できます),(2)開発用のローカルPCにGAEのソフトウエア開発キット(SDK)をダウンロードします(注1)。そして,(3)ローカルPCでアプリケーション開発を行い,(4)作成したアプリケーションをGAEにアップロードします。

 執筆時(2009年5月)の最新版SDKは,Python版がバージョン1.2.2で,Java版がバージョン1.2.1です。Python版,Java版ともに,SDKにはローカル環境で動作確認するための開発用サーバー環境(疑似実行環境)が含まれています。アプリケーションを開発してテストする際,この開発用サーバーで動作を確認することができます。

 Python版は基本的にテキスト・エディタでの開発になりますが,サードパーティ製のプラグインを使用してEclipse上で開発することができます。Java版は,GoogleからEclipse用のプラグインがリリースされています。GUIの開発環境が必要なら,このプラグインを使用するとよいでしょう。もちろんJava版でも,テキスト・エディタでの開発は可能です。