4月8日にGoogle App EngineというサービスがGoogleから公開されました。Google App Engineは、ひとことでいうとWebアプリケーションを簡単に開発して公開することができるホスティング環境です。なぜこんなに注目されているのかというと、あなたが作成したWebアプリケーションをGoogleのインフラ上で動かすことができるからです。しかも無料で。
通常、大量のアクセスをさばくには、複雑なシステムと専門のエンジニアが必要です。しかし、Google App Engineを使えば、負荷分散や障害時の切り替えといったことは自動で行ってくれます。Googleが検索技術で培った「BigTable」や「GFS」といった機能を開発者がほとんど意識することなく使えます。このGoogle App Engineを使えば、文字通り「優れたアイデア」と「少しのプログラム開発力」さえあれば、魅力的なサービスの運営ができてしまうということになります。
さて、これを読んでGoogle App Engineでの開発を初めてみたくなりましたか? この記事では、PythonやDjangoを使ったことがない人でも理解しやすいように説明していきますので、ぜひ実際に動かして試してみてください。本当に簡単にWebアプリケーションが作成できることが分かっていただけると思います。
その他の特徴は、次のとおりです。
- アプリケーションごとに500MBのストレージ、月に500万ページビューまで利用可能
- 無料(正式リリース後は有料オプションで上記の上限超過にも対応)
- 現時点で開発言語は Python のみ対応(Djangoベース)
- SDKをダウンロードすることでローカルで開発可能、デプロイも簡単
- 管理用ダッシュボードが用意されていてCPU使用率、ログなどを閲覧可能
それでは、実際にGoogle App Engine SDKを使ってみましょう。OSは、Windows、Mac OS X、Linuxに対応していますが、ここではWindows環境を想定して話を進めていきます。
Pythonのインストール
Google App Engineを利用するにはPythonというプログラム言語が必要です。まず、最初にPythonをインストールします。
最新版のpython-2.5.2.msiをダウンロードし、実行します。インストーラーが立ち上がるので、一般的なソフトウェアと同じように「Next」ボタンを押していけばインストールは完了します。
SDKのインストール
Google App EngineのSDKは次のURLからダウンロードできます。Windows用、Mac OS X用、Linux用がありますので、それぞれの環境に合ったものをダウンロードしてください。ここでは前述の通り、Windows環境を想定して話を進めていきます。
GoogleAppEngine_1.0.1.msiをダウンロードして、実行します。
こちらも「Next」ボタンを押していけばOKです。
Google App Engineのインストールはこれで終了です。Webアプリケーションのための開発環境が整いました。開発用にWebサーバを用意したりする必要がないので、非常に簡単です。
デモアプリケーションを動かしてみる
それでは、Google App Engineをインストールしたフォルダに含まれているデモアプリケーションを動かしてみましょう。Windowsのスタートメニューからコマンドプロンプトを立ち上げて次のように入力します。
アップデートの確認をするかどうか聞かれるので"Y"と入力してEnterを押します。
すると開発用のWebサーバが起動します。ブラウザを立ち上げて"http://localhost:8080"にアクセスしてみてください。次のような画面が表示されるので、何か文字を入力して「Sign Guestbook」ボタンを押してみてください。今入力した文字列が表示されるはずです。終了するには、Ctrl+Breakを押します。
簡単なアプリケーションを作ってみる
次に"Hello, world"と表示する簡単なアプリケーションを作ってみましょう。
C:\Program Files\Google\google_appengineにmyappフォルダを作成します。そして、そのフォルダ内に"helloworld.py"というファイルを以下の内容で作成します。一点気をつけなければならないのは、Pythonは行頭のスペースが意味を持ちます。他の言語で{}でくくるところをインデントで表現しますので、注意してください。
ここで、中身を簡単に説明しておきましょう。
- 1~2行目:
- Webサーバと通信するためのWSGIという標準インタフェースを利用可能にします。また、Google App EngineのWebフレームワークを読み込みます。この部分は決まり文句と思えばよいでしょう。
- 9~13行目:
- ここにURLとの対応を記述していきます。上の場合ですと、'/'にアクセスしてきた場合にはMainPageクラスが呼び出されるように、ハンドラを登録します。
- 4~7行目:
- 実際の処理をwebapp.RequestHandlerを継承したクラスとして記述します。GETメソッドで呼び出された場合はクラスのget()メソッドが、POSTメソッドで呼び出された場合はクラスのpost()メソッドが実行されます。今回は、Content-Typeの値に'text/plain'をしていますが、省略した場合は'text/html'が出力されますので記述しなくてもOKです。最後に、self.response.out.writeによって'Hello, Wolrd!'という文字列を出力します。
そして、同じフォルダに"app.yaml"というファイルを次の内容で作成します。
アプリケーションに関する情報をYAML形式で記述します。アプリケーション名は、ここではmyappとしますが、実際にGoogle App Engine上に公開する際は、他と重複しないユニークな値にします。重要なのは、handlers:行以下で、URLとどのプログラムを実行するかの対応を記述します。正規表現が利用可能で、この場合はすべてのリクエストをhelloworld.pyで処理することを意味しています。
ここまでで、ファイル構成は次のようになっているはずです。
それでは、実際に動かしてみましょう。先ほどと同様にコマンドプロンプトから、次のコマンドを実行します。
ブラウザを開いて、http://localhost:8080/ にアクセスしてみましょう。「Hello, world!」と表示されましたでしょうか? とてもシンプルなアプリケーションですが、簡単に作れることが分かって頂けたと思います。
ここで、アプリケーションを終了させないまま先ほどのhelloworld.pyを編集してみてください。例えば、次のように"Hello, Japan!"に変更にします。
そして、ブラウザの再読み込みボタンを押してください。表示が変わったのが確認できると思います。このようにプログラムに変更を加えるとすぐに反映されるので、開発も簡単です。
以上で、Google App Engineの基本的な使い方は終わりです。次回は、もう少し複雑な登録/削除/編集ができるアプリケーションを作成してみましょう。お楽しみに。