この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)
出典検索?: "Google App Engine"
Google App Engine開発元Google
初版2008年4月7日 (16年前) (2008-04-07)
最新版1.9.27 / 2015年9月30日 (8年前) (2015-09-30)
プログラミング
言語PHP, Python, Java, Go
サポート状況開発中
種別ウェブ開発
公式サイトcloud.google.com/appengine/
テンプレートを表示
Google App Engine (GAE) は、Googleの提供するサービスの1つであり、ウェブアプリケーションをPHP・Python・Java・Goを使用して開発し、Googleのインフラストラクチャー上で実行し、バージョン管理することができる。Google Cloud Platformの一部。 PHP用、Python用、Java用、Go用にそれぞれソフトウェア開発キット (SDK) が用意されている。Java用のSDKはSDK単体のものと、Eclipseのプラグインが同社より提供されており、Google Web Toolkitの開発と統合されている。このほか、Java用には有志によりNetBeans用とIntelliJ
概要
GAE上で動くウェブアプリケーションはデータベースとして同社のBigTableにAPIを通じてデータを格納するもので、同社のインフラのスケーラビリティを利用することができる。 Google Compute EngineやAmazon EC2などのスケーラブルホスティングサービスと比較すると、GAEのインフラの方がよりアプリケーションを作成しやすいが、実行できるアプリケーションの種類は限定される。 GAEのインフラにより、数百万ヒットまでスケールするアプリケーションを作成するための開発・運用の問題をかなり軽減できる。Google側にてクラスタへのデプロイ、モニタリング、フェイルオーバー、そして新インスタンスの実行を必要に応じて行う。 他のサービスにおいては、ユーザーがUnix系ソフトウェアはほぼ全てインストール、設定が可能であるのに対し、GAEのデベロッパーは言語として、PythonあるいはJavaを使用し、限られたAPIを使用することを要求される。現在のAPIにより次の機能が実現できる。 既存のウェブアプリケーションはほとんどリレーショナルデータベースが必要なので、修正なしではGAEで実行することはできない。 日ごと、および一分ごとのクォータにより以下のリソースが制限される。 また、個々のリクエストは実行に30秒以上かかったり、10MB以上のデータを返す際には終了させられる。 ただし、SDKのver.1.4.0以降は、バックグラウンドのリクエストにおける 30秒制限の撤廃(10分まで中断されずに実行し続ける)、API 呼び出しのサイズを1MBから32MB増加(URLFetchレスポンスサイズ制限、Memcacheのバッチget/put呼び出し、Image APIのrequest/response、Mail API の送信添付ファイルのサイズ制限)が行われた。 この節には独自研究が含まれているおそれがあります。問題箇所を検証し出典を追加して、記事の改善にご協力ください。議論はノートを参照してください。(2023年5月) GAEのデータストアはSQLのようなシンタックスを持ち、GQLと呼ばれる。GQLにおけるSelect句は単一のテーブルにのみ実行可能である。GQLは敢えてJoin select句のwhere節は単一のカラムのみに対し、>, <=, <, <=操作を実行することが可能である。したがって、単純なwhere節のみが構築可能である。リレーショナルデータベースからデータストアへ移行する際に、開発者はデータ操作のパラダイムシフトを要求される。 GAEは各データストアセルから返される最大の行数を1000に制限している。結果のソーティング順序があるプロパティにより表せる場合において、この制約は人が読むために作成されたウェブアプリケーションには影響しない(単一ページに1000レコード表示することはまずないからである。なお、ページングや、キャッシングなどの機構は組み込み可能である)。アプリケーションが各オペレーションにおいて1000レコード以上必要な場合、独自のクライアントサイドソフトウェアを使用するか、Ajaxページを使用することにより無制限の行に対し操作が可能となる。この場合クエリの結果セットに対しオフセットを行うため、時間がかかるという制約を受けることになり、長い結果セットではリクエストタイムアウトが発生することがある。 DB2、Microsoft SQL Server、MySQL、OracleやPostgreSQLとは違い、データストアAPIはリレーショナルなSQLではない。 しかしながら、従来のリレーショナルデータベースに慣れたものからすれば対極に位置するBigTableは扱いに苦労するものであり、SQLライクに扱えるようにするフレームワークが幾つか作られている。Googleもこの点については問題点として認識しており、2011年秋にMySQL互換データストアであるGoogle Cloud SQL この節には独自研究が含まれているおそれがあります。問題箇所を検証し出典を追加して、記事の改善にご協力ください。議論はノートを参照してください。(2023年5月) 当サービスはAmazon Web Servicesと競合する。これはアマゾンのサーバにおいてファイルホスティングや、コード実行を可能とするアプリケーションサービスの集合である。他の競合としてはマイクロソフトのAzure Services Platform、セールスフォースのForce.comが挙げられる。また、Google App Engine用に開発されたアプリケーションを実行するためのオープンソースのフレームワークとしてはAppScaleがある。
他のアプリケーションホスティングとの相違
BigTableという非リレーショナルなデータベースへのデータの格納および抽出
HTTPリクエストの送信
電子メールの送信
画像処理
キャッシング
cron
XMPP通信
帯域
CPU使用量
リクエスト数
並列リクエスト数
APIを呼び出す回数
SQLとGQLの違い
競合サービス
歴史
2008年4月:プレビューリリース版を公開
2009年2月:有料版のサービスを開始
2009年4月:Javaアプリケーションに対応
2011年5月:Go言語に対応
関連項目
Google
Google Cloud Platform
Platform as a Service (PaaS)
AppScale
クラウドコンピューティング