Google App Engineってなに?


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。




※このページは翻訳の途中です。

Google App Engineってなに?

Google App EngineはGoogleのインフラストラクチャを使用して、あなたのWebアプリケーションを走らせることができます。
App Engineアプリケーションはビルド、メンテナンス、データやトラフィックの増大に対するスケーリングが超簡単にできてしまいます。
App Engineを使えば、メンテナンスするべきサーバーはもうどこにもありません。
あなたのアプリケーションをアップロードして、ユーザーにサービスを提供するだけです。

あなたは appspot.com 上にアプリケーションが使うドメイン名を自由につけて使用するか、 Google Apps に独自のドメインを割り当てることができます。
あなたはアプリケーションを全世界に公開するか、あなたの活動のメンバーにアクセスを制限することができます。

App Engineをはじめるのにお金はかかりません。
フリーのアカウントにサインアップしさえすれば、何のチャージも義務もなく、アプリケーションを開発して世界にパブリッシュできます。
フリーのアカウントでは500MBのストレージ、十分なCPU、月に500万ページビューまで使用することが出来ます。

Google App Engineがプレビューリリースの間はフリーのアカウントだけが利用可能です。
近いうちに追加のリソースを購入することが出来るようになるでしょう。

アプリケーション開発環境

Google App Engineは、大量のデータやトラフィックを扱うことになるような場合でも、安定して稼動するアプリケーションを簡単に構築することが出来ます。
開発環境には以下の機能があります。

  • ダイナミックなWebを提供し、一般的なWebテクノロジーをフルサポート
  • クエリ、ソート、トランザクションによる永続的なストレージ
  • 自動的なスケーリングとロードバランシング
  • Googleアカウントを使ったユーザー認証とメール送信のAPI群
  • Google App EngineをローカルPC上でシミュレートするフル機能のローカル開発環境

Google App Engineアプリケーションは Python言語 を使うように実装されています。
ランタイム環境はPython言語をフルサポートし、Pythonのほとんどの標準ライブラリを含んでいます。
現在、PythonはGoogle App Engineでサポートされている唯一の言語ですが、
将来たくさんの言語をサポートすることを楽しみにしています。

サンドボックス

アプリケーションはOSへの限られたアクセスを提供されたセキュアな環境で実行されます。
これらの制限があることでApp Engineに、いろいろなサーバーをまたがったアプリケーションへのWebリクエストを処理することを可能にし、トラフィックに合わせて、サーバーを起動させたり停止させたりすることが出来るようになります。
サンドボックスはあなたのアプリケーションを、ハードウェア、OS、Webサーバーの物理的な場所からも独立した、信頼できるセキュアな環境に分離させます。

例えば、セキュアなサンドボックス環境で制限されていることは
  • アプリケーションはインターネット上にある他のコンピュータにアクセスするには、提供されたURLのフェッチ、Eメール、API群を使用するしかありません。
    他のコンピュータからアプリケーションにアクセスするにはHTTPかHTTPSを標準ポートでアクセスすることしか出来ません。
  • アプリケーションはファイルシステムに書き込みが出来ません。
    アプリケーションはアプリケーションのコードによってアップロードされたファイルしか読むことしか出来ません。
    アプリケーションはリクエストの間保持するすべてのデータにApp Engine datastoreを使用しなければいけません。
  • アプリケーションコードはWebリクエストのレスポンスとしてのみ動作し、数秒以内にレスポンスを返さなければいけません。
    リクエストハンドラからサブプロセスを生成したり、レスポンスを返した後にコードを実行することは出来ません。

Pythonランタイム環境

App EngineはPython言語を使ったランタイム環境を提供します。
他のプログラミング言語とランタイム環境設定は将来的にリリースされるでしょう。

Pythonランタイム環境はPythonのヴァージョン 2.5.2を使用しています。

環境には Pythonの標準ライブラリ を含んでいます。もちろんサンドボックスを壊すようなライブラリメソッドは制限されています。
ソケットをオープンしたりファイルに書き込んだりするようなことをしても失敗します。
利便性のために標準ライブラリのうちのいくつかのモジュールのコアな機能はランタイム環境でサポートされておらず、それらをインポートしようとした時にエラーになるでしょう。

アプリケーションコードは全てPythonで書かれていなければいけません。
C言語による拡張はサポートされていません。

Python環境は datastore Googleアカウント URLフェッチ Eメール サービスのリッチなPython APIを提供します。
App Engineはまた、webappと呼ばれる簡単にアプリケーションの構築を開始するためのシンプルなPython Webアプリケーションフレームワークを提供します。

利便性のためにApp Engineには DjangoというWebアプリケーションフレームワーク のヴァージョン0.96.1を含んでいます。
気をつけるのはApp EngineのdatastoreはDjangoのいくつかのコンポーネントが必要とするリレーショナルデータベースではないということです。
いくつかのコンポーネントのひとつのDjangoテンプレートエンジンを使うには他にもう少し努力が必要です。
App EngineでDjangoを使う際のTipsの 記事 を見てください。

あなたはPure Pythonで書かれていてサポートされていないライブラリを必要としないサードパーティのライブラリをあなたのアプリケーションと一緒にアップロードすることが出来ます。

これ以上のPythonランタイムに関する情報はPythonランタイム環境?を見てください。

データストア

App Engineはクエリエンジンとトランザクション機能を持つ、パワフルな分散データベースストレージを提供します。
分散Webサーバーがトラフィックに合わせて成長するように、分散データベースもデータ量によって成長します。

App Engineのデータストアは従来のリレーショナルデータベースとは違います。データオブジェクト(または「エンティティ」)には、種類とプロパティのセットがあります。クエリを使って、指定した種類のエンティティをプロパティの値によってフィルターにかけ、ソートした状態で取得することができます。 プロパティの値は サポートされた値 ならばどれでも指定することが出来ます。

The Python API for the datastore includes a data modeling interface that can define a structure for datastore entities. A data model can indicate that a property must have a value within a given range, or provide a default value if none is given. Your application can provide as much or as little structure to the data as it needs.

The datastore uses optimistic locking for concurrency control. An update of a entity occurs in a transaction that is retried a fixed number of times if other processes are trying to update the same entity simultaneously. Your application can execute multiple datastore operations in a single transaction which either all succeed or all fail, ensuring the integrity of your data.

The datastore implements transactions across its distributed network using "entity groups." A transaction manipulates entities within a single group. Entities of the same group are stored together for efficient execution of transactions. Your application can assign entities to groups when the entities are created.

For more information about the datastore, see the Datastore API reference.
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。