今回のテーマは「Google App Engine」

Googleが2008年4月に発表した「Google App Engine」。簡単に言えばPythonの実行環境を提供するというものだが、詳細を見てみるとその可能性の高さが感じられる。たとえば、Webアプリケーションを開発した際に最も厄介になるであろう、サーバやネットワークの用意といった心配が必要がない。データベースは専用のものが用意されており、認証システムもGoogleアカウントを簡単に利用できる。

そしてローンチしたサービスにとって次第に問題になってくるサーバの増設やスケーラビリティについてもまったく考える必要がない。Googleの持つ強固なシステム上でサービスが提供されるので、まずサーバが落ちる心配もなく、サービスの開発に専念することが可能だ。

まさにWebシステムの開発者が自己表現するためのシステムがGoogle App Engineと言える。今回はそんなGoogle App Engineの持つ魅力と可能性の一端を知ることができるWebアプリケーションおよびオープンソース・ソフトウェア(OSS)を紹介したい。これを見れば、きっとPythonを習得したいと思うようになるはずだ。

今回紹介するOSS・Webアプリ
Google Solutions Marketplace』 開発したWebアプリケーションを販売する
Perl App Engine』 Google App EngineでPerlを実行
GAEDav』 擬似的GDriveの実現
Bloog』 Google AppEngineをブログに



開発したWebアプリケーションを販売する

名称 Google Solutions Marketplace
URL http://www.google.com/enterprise/marketplace/

Google App EngineはWebシステム開発者が自分たちの提供するサービスを構築、運用する場と思われているが、それは一面でしかない。もうひとつの見方として、Webアプリケーションを開発し、提供・販売する場としての面も持っている。それを実現するのが『Google Solutions Marketplace』だ。

「Google Solutions Marketplace」。現状ではGoogle App Engine以外のアプリケーションがメイン

Google Solutions Marketplaceではサードパーティ製システムをメインに提供しているが、Google App Engine上で動作するWebアプリケーションもギャラリーに並ぶようになってきた。Google Solutions Marketplaceの中では、Google Checkoutを使った販売も行われている。同様の仕組みがGoogle App Engine製ソフトウェアではまだ見られないが、課金条件が明確になった今、間もなく登場してくるだろう。

利用するにはGoogle Appsの登録が必要で、自分のドメインを指定すればすぐにインストールが完了する。たとえば、グループウェアやプロジェクト管理、 CRMといったWebアプリを開発して提供すると、すでにGoogle Appsを導入している企業がすぐにそのWebアプリを利用できるようになる。

Google App Engineを使ったWebアプリケーション。Add it Nowから簡単にインストール可能

これまでは自作のWebサービスを運用するためのシステムとして考えられてきたが、これからは若干考え方が変わるかもしれない。ソフトウェアにくらべて販売という意識がそれほど強くないWebアプリだが、Google Solutions Marketplaceがその考えを変えてくれそうだ。




Google App EngineでPerlを実行

名称 Perl App Engine
URL http://code.google.com/p/perl-appengine/

Perl App Engine』はまだ正式版というレベルではないが、活発に開発が進んでいる興味深いプロジェクトだ。Google App Engineは、サーバサイドではPythonのみが利用できる。Java/ Perl/ PHPなど他の言語への対応を要望する声はあるが、いまのところ実現していない。そのような状況の中でGoogleの開発者が取り組んでいるのがPerl App Engine、PerlをGoogle App Engineの中で動かそうというプロジェクトだ。

サンプルアプリケーション。API実装のテスト

Google App Engineではクラウド上でサービスを実行するために様々な制約や、Google独自のシステムが必要となっている。それをPythonと同レベルで実現できれば、Perl on Google App Engineの可能性も見えてくるだろう。

こちらもテストアプリケーション。Perlで書かれたWebサーバ上で実行される

すでにGoogle App Engine同様にクラウド環境でサービスを立ち上げるものとしては、Java/ Ruby/ PHPなどが存在している。現状ではPerlで実現できるものは存在していないと思われるので、Perl App Engineにかかる期待は大きいと言えそうだ。




擬似的GDriveの実現

名称 gaedav - Google Code
URL http://code.google.com/p/gaedav/

Google App Engine上では実際に役立つものはもちろんとして、Googleの持つテクノロジを利用した面白い試みも数多く行なわれている。Google App Engineをプロキシのようにしてしまうものや、XMPP(チャット)機能をつけるものなど多彩だが、『GAEDav』はなんとGoogle App EngineをWebDAVにしてしまうソフトウェアだ。

Mac OS XのFinderで開いたところ。速度は遅い

現状すべての機能を実現できているわけではない。だが、立ち上がっているWebDAVサーバを実際にマウントし、ファイルを閲覧することができる。ファイルの書き込みはできないが、GAEDav自体はオープンソース・ソフトウェアなので、自分だけのWebDAVサーバを持つのは容易だ。

ブラウザからのアクセス。ファイルとディレクトリが区別されて表示される

速度面を考えると日常的な利用は難しいと思うが、これはある意味"GDrive"と言えるかもしれない。Googleのもつストレージシステムを自分のものにできてしまう、そんな面白いシステムだ。今後の開発が気になるソフトウェアだ。




Google App Engineをブログに

名称 Bloog
URL http://github.com/DocSavage/bloog/tree/master

Google Solutions Marketplaceの持つ可能性については前述のとおりだが、『Bloog』もまた異なる可能性を秘めている。BloogはGoogle App Engineを使ったブログエンジンだ。つまりWebサービスを提供するための基盤ではなく、個人がBloogをGoogle App Engine上に展開し、ブログを書けるようになる。さらに独自ドメインでの運用も可能だ。

Google App Engineを使ったブログエンジン。カスタマイズはコードを直接変更する必要がある

現状ではブログを提供しようと思ったらASPのサービスか、サーバを借りたり、自前で立てたりする必要があった。ASPではない場合はそのデータの管理やサーバのメンテナンスも行なう必要がある。だが、Google App Engineを使うBloogであればそのように煩わしい作業に時間をとられることはない。しかもよほどのアクセス数にならない限りは無料で提供できる。

現状は独自のブログエンジンレベルではあるが、たとえばXML-RPCを実装してブログエディタから登録できるようになったり、「Movable Type」や「WordPress」のデータをインポートできるようになったらどうなるだろう。きっと多数のユーザがBloogを使ってGoogle App Engine上でブログを書き始めるはずだ。

エディット画面。ブラウザ上で完結する

Google App Engineの持つ可能性はここにも感じられる。Webサービスを開発するのではなく、ただホスティングレベルでの使い方が生まれる可能性もあるのだ。そうなればCMSや、Webアルバム、コーポレートサイトですらGoogle App Engine上で動くようになってくるかもしれない。そこには十分な安全性と、ネットワークの高い品質、強固なシステムが基盤として提供されている。

いかがでしたか?

これまでのWebシステムの開発ではサーバの用意、ネットワークやデータベースなどを気にして開発を行なう必要があった。もちろん大型のシステムであれば今後もそのような手順を踏む必要があるが、簡易的なシステムやちょっとしたWebサービスを提供しようと思った時に、そのつどインフラ整備を気にかけるのは非常に面倒なことだ。

Google App Engineを知ればそのような煩雑さからは解放され、純粋に実現したいシステムを開発できるようになる。最近では有料オプションについても発表された。SLAについては現在検討中のレベルであるが、近い将来きっと発表されるだろう。そうなればビジネスレベルでのWebアプリケーションの提供、販売などが容易になる。Google App Engineには今のうちからぜひ触れておこう。

著者プロフィール:MOONGIFT 中津川 篤司(なかつがわ あつし)

1978年生まれ。オープンソース紹介サイト「MOONGIFT」管理人。プログラマ、SE、ITマネージャを経て、オープンソースのビジネス活用を推進する。現在は独立し、Webサービスのコンサルティング、プロデュースを行う。