この手に、大いなる力を。

Google App Engine - Google Code
ぶっ飛んだサービスが始まりました。すごいよこれ。Googleを支える超大規模なグリッド上に、自作のアプリケーションを収容して運用できる。
従来だったら共有サーバを借りたり、場合によっては専用サーバを1台借りてその運用から全部やらなきゃいけなかったのが、Googleのサーバ群で運用できるのでそんな手間が一切かからない。おまけに、リクエストが殺到してリソースが足りなくなったら自動的に必要な分だけ負荷分散をかけてくれるそうで、小さくはじめても勝手に要るだけ育つ。
処理が走るのはリクエストに応答するだけで、long-pollでクライアントを掴みっぱなしにしたり夜間バッチでデータを生成するってことは出来ないみたいなのが注意点かな。普通にブラウザからリクエストされたらなんか作って返す、ってカタチのアプリケーションを組むなら問題はない。
あと、現在はPythonで書かれたアプリケーションのみ動かせる。とはいえ他言語も対応の予定があるみたいだから、近いうちにRubyもいけるようになるかな?
バッチ処理は出来ないから、ウチのアプリケーションだと読書びよりと月燈火はアウト、カケラの樹は乗せられる。Rubyサポートが入ったら乗せ替え考えようか。
でもそれ待つだけなのもアレだし、Pythonも覚えるかなあ。


初回枠は1万アカウントで、既に埋まって招待待ちになってる。けど、Analyticsの時みたいに思いっきり待たされるかと思ったら半日しないうちにインビテーションが来た。かなり速いペースで拡張していってるみたいだから、興味を持ったらサインアップしておくのがいいと思う。


既にTechCrunch Japaneseに解説記事が載ってるけど、What Is Google App Engine? - Google App Engine - Google Codeをざっと途中まで訳したので載せておきます。
4/10追記: id:hamatsu1974さんが全訳されたのでそちらをどうぞ。

Google App Engineとは何か

Google App Engineを使えばあなたのウェブアプリケーションGoogleのインフラ上で実行できます。App Engineアプリケーションは容易に開発、メンテナンスが出来、トラフィックやデータ保存領域を必要に応じて簡単に拡張できます。App Engineを使えば、サーバの管理は必要有りません。あなたは単にアプリケーションをアップロードすれば、すぐにユーザにサービスを提供できるようになります。

アプリケーションを提供するのに、無償のappspot.comドメインが使え、またGoogle Appsを使ってあなたが持っているドメインを使うことも出来ます。アプリケーションは全世界に向けて公開することも出来ますし、あなたの組織内のメンバーに限定することも出来ます。


App Engineを始めるのに費用はかかりません。無償のアカウントでサインアップし、アプリケーションを開発して公開するのになんの費用も義務も必要有りません。無償アカウントでは500MBのデータ保存領域と、月に500万ページビューを支えるのに十分な演算能力と帯域幅が使用できます。

Google App Engineのプレビューリリースの期間中は、無償アカウントのみが利用できます。近い将来には、追加の計算機資源を購入できるようになる予定です。

アプリケーション実行環境

Google App Engineは、巨大なデータや高負荷状態でも安定して稼働するアプリケーションの開発を容易にします。この環境には次のような能力があります。

  • 一般的なウェブ技術をフルサポートした動的なページ配信
  • 問い合わせ、並び替え、トランザクションをサポートした永続ストレージ
  • 自動スケーリングと負荷分散
  • Googleアカウントを使った認証APIとメール送信API
Google App Engineの環境を全て再現したローカルの開発環境

Google App EngineアプリケーションはPythonプログラミング言語を使って実装されています。実行環境はPython言語の全てと主な標準ライブラリを全て含んでいます。

現在はPythonGoogle App Engineでサポートされる唯一の言語ですが、我々は将来的にはさらに多くの言語をサポートしたいと思っています。

サンドボックス

アプリケーションは安全な、 下層のOSへのアクセスが制限された環境で実行されます。この制限はApp Engineがアプリケーションへのリクエストを必要に応じて複数のサーバで処理するために必要なものです。サンドボックスはあなたのアプリケーションを、ハードウェアやOS、物理的な場所から独立した安全で信頼できる環境へと隔離します。

サンドボックス下での制限の例は次の通りです。

  • アプリケーションは他の計算機にインターネット経由でのURLアクセスやメール送受信、API経由でのみアクセスできます。他の計算機からはアプリケーションに標準的なポートでのHTTP(かHTTPS)でのみアクセスできます。
  • アプリケーションはファイルシステムに書き込みできません。ファイルの読み込みは可能ですがアプリケーションのコードと共にアップロードされたモノのみです。データを保存する場合はApp Engineのデータストアを使用する必要があります。
  • アプリケーションのコードはリクエストに対してのみ走り、数秒のうちに応答を返す必要があります。サブプロセスを生成したり、応答を返した後での処理は出来ません。
Python実行環境

App EngineはPythonプログラミング言語を使った実行環境を提供します。他のプログラミング言語と実行環境は将来のリリースでの追加を考えています。

Python実行環境はPython2.5.2を使用しています。

この環境はPythonの標準ライブラリを含んでいます。もちろん、ソケットを開いたりファイルを書き込んだりなどサンドボックスの制限に引っかかるようなライブラリ呼び出しは成功しません。利便性のため、標準ライブラリの中でもApp Engineの実行環境でサポートされないいくつかのモジュールは無効になっており、importすると例外が発生します。

アプリケーションはPythonで記述する必要があり、Cでの拡張はサポートされません。

訳したのはここまで。この段落の残りの概要は、こんな感じ。