読者です 読者をやめる 読者になる 読者になる

Google App Engineを試してみた

dev

巷で話題のGoogle App Engineですが、知人からご紹介いただいてアカウントを手に入れることができましたので、早速試してみました。
まずはチュートリアルということで、こちらから:
http://code.google.com/appengine/docs/gettingstarted/
試してみてわかったのですが、最後の"Uploading Your Application"以外はローカルで実行できる(Pythonで作られたアプリケーションサーバーが提供されます)ので、興味のある方はSDKをダウンロードして試してみるとよいのではないでしょうか。
Googleにアップロードすると、外部公開用のURLが割り当てられ、Googleが提供する環境でアプリケーションが動くようになります。早速アップロードしてみました。
http://helloworld-nobusue.appspot.com/
管理ツールからいろいろ参照できるのが便利ですね。

ダッシュボード

データビューア

はまりどころ

WindowsXPのコマンドシェルで実行すると、チュートリアルの最後のstatic_dirを設定するところが動作しません。詳細はこちらを参照してください。
http://d.hatena.ne.jp/Aoba/20080410/1207842114
Googleのサーバーにあげてしまえば問題ないです。

感想

Pythonに慣れないのは仕方がないとして、Railsなどと同じく動的言語による開発の特性がまんま当てはまります。サーバーを再起動せずにサクサク開発を進められる反面、何か問題があったときの対応はけっこう大変です。一番苦労するのは、エラーメッセージから原因箇所を特定するところでしょうか。
アプリケーションフレームワークは特に規定されておらず、Pythonベースのものならなんでも使えます。ただし、開発者の利便性のためにDjangoがバンドルされていますので、事実上はこれが標準ということなのでしょう。
データベースまわりは、Googleのデータストアを利用するためのAPIと、Google製ORMが用意されています。デフォルトで使えるデータ型を見ると、Googleのサービスをベースにしたアプリケーションを開発するために有用なものが揃っていますね。
http://code.google.com/appengine/docs/datastore/typesandpropertyclasses.html
あと、Googleのユーザーアカウントを持っているユーザーに対しては、ログインさせることでユーザー情報を参照することができます。(そのための専用のAPIも提供されています。)これは便利かも。

使いどころ

何といっても、Googleの提供するインフラ(サーバーリソース、巨大なデータストア、ユーザー情報)を利用できるのは大きなメリットだと思います。スクリプトベースでアジャイルに開発したアプリケーションを、そのままスケーラブルなプラットフォームで提供できるというは魅力的です。
開発に使える言語がPythonのみ、というのがネックでしょうかね。。。アプリケーションの設定には言語の指定もあったので、ひょっとしたら将来は別の言語も使えるようになるかもしれませんが。