一番かんたんなGoogle App Engineの使い方

第1回じめてのGoogle App Engine、まずはHello, World!

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」ボタンを押していけばインストールは完了します。

図1 Pythonインストール
図1 Pythonインストール

SDKのインストール

Google App EngineのSDKは次のURLからダウンロードできます。Windows用、Mac OS X用、Linux用がありますので、それぞれの環境に合ったものをダウンロードしてください。ここでは前述の通り、Windows環境を想定して話を進めていきます。

図2 Download the SDK
図2 Download the SDK

GoogleAppEngine_1.0.1.msiをダウンロードして、実行します。

図3 SDKインストール
図3 SDKインストール

こちらも「Next」ボタンを押していけばOKです。

Google App Engineのインストールはこれで終了です。Webアプリケーションのための開発環境が整いました。開発用にWebサーバを用意したりする必要がないので、非常に簡単です。

デモアプリケーションを動かしてみる

それでは、Google App Engineをインストールしたフォルダに含まれているデモアプリケーションを動かしてみましょう。Windowsのスタートメニューからコマンドプロンプトを立ち上げて次のように入力します。

> cd "c:\Program Files\Google\google_appengine"
> dev_appserver.py demos\guestbook
Allow dev_appserver to check for updates on startup? (Y/n):

アップデートの確認をするかどうか聞かれるので"Y"と入力してEnterを押します。

dev_appserver will check for updates on startup. To change this setting, edit C:\Documents and Settings\user/.appcfg_nag
INFO     2008-04-17 22:36:50,123 appcfg.py] Checking for updates to the SDK.
WARNING  2008-04-17 22:36:50,502 datastore_file_stub.py] Could not read datastore data from /tmp/dev_appserver.datastore
WARNING  2008-04-17 22:36:50,502 datastore_file_stub.py] Could not read datastore data from /tmp/dev_appserver.datastore.history
INFO     2008-04-17 22:36:50,523 dev_appserver_main.py] Running application guestbook on port 8080: http://localhost:8080

すると開発用のWebサーバが起動します。ブラウザを立ち上げて"http://localhost:8080"にアクセスしてみてください。次のような画面が表示されるので、何か文字を入力して「Sign Guestbook」ボタンを押してみてください。今入力した文字列が表示されるはずです。終了するには、Ctrl+Breakを押します。

図4 デモアプリケーション
図4 デモアプリケーション

簡単なアプリケーションを作ってみる

次に"Hello, world"と表示する簡単なアプリケーションを作ってみましょう。

C:\Program Files\Google\google_appengineにmyappフォルダを作成します。そして、そのフォルダ内に"helloworld.py"というファイルを以下の内容で作成します。一点気をつけなければならないのは、Pythonは行頭のスペースが意味を持ちます。他の言語で{}でくくるところをインデントで表現しますので、注意してください。

helloworld.py
import wsgiref.handlers
from google.appengine.ext import webapp

class MainPage(webapp.RequestHandler):
  def get(self):
    self.response.headers['Content-Type'] = 'text/plain'
    self.response.out.write('Hello, World!')

def main():
  application = webapp.WSGIApplication(
                                       [('/', MainPage)],
                                       debug=True)
  wsgiref.handlers.CGIHandler().run(application)

ここで、中身を簡単に説明しておきましょう。

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"というファイルを次の内容で作成します。

app.yaml
application: myapp
version: 1
runtime: python
api_version: 1

handlers:
- url: /.*
  script: helloworld.py

アプリケーションに関する情報をYAML形式で記述します。アプリケーション名は、ここではmyappとしますが、実際にGoogle App Engine上に公開する際は、他と重複しないユニークな値にします。重要なのは、handlers:行以下で、URLとどのプログラムを実行するかの対応を記述します。正規表現が利用可能で、この場合はすべてのリクエストをhelloworld.pyで処理することを意味しています。

ここまでで、ファイル構成は次のようになっているはずです。

図5 helloworldファイル構成
図5 helloworldファイル構成

それでは、実際に動かしてみましょう。先ほどと同様にコマンドプロンプトから、次のコマンドを実行します。

> dev_appserver.py myapp

ブラウザを開いて、http://localhost:8080/ にアクセスしてみましょう。⁠Hello, world!」と表示されましたでしょうか? とてもシンプルなアプリケーションですが、簡単に作れることが分かって頂けたと思います。

図6 helloworldアプリケーションの実行
図6 helloworldアプリケーションの実行

ここで、アプリケーションを終了させないまま先ほどのhelloworld.pyを編集してみてください。例えば、次のように"Hello, Japan!"に変更にします。

self.response.out.write('Hello, World!')self.response.out.write('Hello, Japan!')

そして、ブラウザの再読み込みボタンを押してください。表示が変わったのが確認できると思います。このようにプログラムに変更を加えるとすぐに反映されるので、開発も簡単です。

以上で、Google App Engineの基本的な使い方は終わりです。次回は、もう少し複雑な登録/削除/編集ができるアプリケーションを作成してみましょう。お楽しみに。

おすすめ記事

記事・ニュース一覧