※ 記事は執筆時の情報に基づいており,現在では異なる場合があります。
最初に「Google App Engine」を簡単に説明しましょう。Google App Engineを一言でまとめると,「面倒な準備をせずに無料で使えるWebアプリケーション開発/実行環境」となります。
タダでGoogleのリソースを活用できる
このGoogle App Engineを利用すれば,米Googleが運用している膨大なサーバー群はもとより,Googleのサービス基盤となっている分散ファイルシステム「GFS(Google File System)」やデータベース管理システム「BigTable」を使ったWebアプリケーションをタダで公開できます。
では,どうして,GFSやBigTableといったGoogleのインフラを活用できるのでしょうか。そのカギを握るのが,Google App Engineが提供する,Pythonの実行環境と各種ライブラリです(図1)。
Webアプリケーションの開発者は,プログラミング言語Pythonを使い,Google App Engineが提供する各種ライブラリを呼び出すWebアプリケーションを記述します。完成したら,それをアップロードするだけでGoogleのサーバー上で動作可能です。Python実行環境や各種ライブラリはGoogleのサーバー側で準備が整っています。
このため,開発者に必要なのは,開発キット(Google App Engine SDK)の入手と,無償のユーザー登録だけ。Webアプリケーションを公開するために,従来のようにサーバー・マシンやネットワーク回線,OSやアプリケーションの実行環境を一から手配する必要はありません。もちろん,アプリケーション・サーバーを運用管理する手間も省けます。
リソース使用権には制限がある
このように開発者は,タダで手軽にGoogleの膨大なコンピュータ・リソースを使えますが,その使用権には制限があります。
まず,登録ユーザー一人当たりに割り当てられるストレージ容量は500Mバイト。そして,公開できるアプリケーションの数は10個までです。1アプリケーション当たりの最大ファイル数は1000個まで,1ファイルの最大サイズは1Mバイトまでとなっています。
1日単位の制限もあります。ネットワーク回線のデータ送受信量や,プロセサのクロック・サイクル*1などです。表1にその制限を挙げました。アプリケーションが動作し始めると,この割り当て数を消費していくわけです。
後述するDatastore APIなど,API呼び出しにかかっている制限を超えると例外が発生し,通信回線などコンピュータ・リソースにかかっている制限を超えるとアプリケーションが止まります。とは言っても,1日単位の制限は翌日になればリセットされてゼロに戻り,再びアプリケーションが動き出すようになっています。