Google_App_Engine
[Wikipedia|▼Menu]
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "Google App Engine" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2024年2月)

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つであり、ウェブアプリケーションPHPPythonJavaGoを使用して開発し、Googleのインフラストラクチャー上で実行し、バージョン管理することができる。Google Cloud Platformの一部。
概要

PHP用、Python用、Java用、Go用にそれぞれソフトウェア開発キット (SDK) が用意されている。Java用のSDKはSDK単体のものと、Eclipseプラグインが同社より提供されており、Google Web Toolkitの開発と統合されている。このほか、Java用には有志によりNetBeans用とIntelliJ用のプラグインがそれぞれ作成されていて、そちらでも開発は可能である。またJavaに対応していることから、Java仮想マシン上で稼働するJythonJRubyScalaなども(自ら導入作業等を経れば)開発することができる。

GAE上で動くウェブアプリケーションはデータベースとして同社のBigTableAPIを通じてデータを格納するもので、同社のインフラのスケーラビリティを利用することができる。
他のアプリケーションホスティングとの相違

Google Compute EngineやAmazon EC2などのスケーラブルホスティングサービスと比較すると、GAEのインフラの方がよりアプリケーションを作成しやすいが、実行できるアプリケーションの種類は限定される。

GAEのインフラにより、数百万ヒットまでスケールするアプリケーションを作成するための開発・運用の問題をかなり軽減できる。Google側にてクラスタへのデプロイ、モニタリング、フェイルオーバー、そして新インスタンスの実行を必要に応じて行う。

他のサービスにおいては、ユーザーがUnix系ソフトウェアはほぼ全てインストール、設定が可能であるのに対し、GAEのデベロッパーは言語として、PythonあるいはJavaを使用し、限られたAPIを使用することを要求される。現在のAPIにより次の機能が実現できる。

BigTableという非リレーショナルなデータベースへのデータの格納および抽出

HTTPリクエストの送信

電子メールの送信

画像処理

キャッシング

cron

XMPP通信

既存のウェブアプリケーションはほとんどリレーショナルデータベースが必要なので、修正なしではGAEで実行することはできない。

日ごと、および一分ごとのクォータにより以下のリソースが制限される。

帯域

CPU使用量

リクエスト数

並列リクエスト数

APIを呼び出す回数

また、個々のリクエストは実行に30秒以上かかったり、10MB以上のデータを返す際には終了させられる。

ただし、SDKのver.1.4.0以降は、バックグラウンドのリクエストにおける 30秒制限の撤廃(10分まで中断されずに実行し続ける)、API 呼び出しのサイズを1MBから32MB増加(URLFetchレスポンスサイズ制限、Memcacheのバッチget/put呼び出し、Image APIのrequest/response、Mail API の送信添付ファイルのサイズ制限)が行われた。
SQLとGQLの違い

この節には独自研究が含まれているおそれがあります。問題箇所を検証出典を追加して、記事の改善にご協力ください。議論はノートを参照してください。(2023年5月)

GAEのデータストアはSQLのようなシンタックスを持ち、GQLと呼ばれる。GQLにおけるSelect句は単一のテーブルにのみ実行可能である。GQLは敢えてJoin句をサポートしていない。これはクエリが複数のマシンに及ぶ時に非効率であることが知られているからである[1]。その代わりにReferenceProperty()を使用することにより、1-NおよびN-Nのリレーションが作成可能である[2]。このshared-nothingのアプローチにより、ディスク障害時もシステムへの障害を防ぐことが可能である。

select句のwhere節は単一のカラムのみに対し、>, <=, <, <=操作を実行することが可能である。したがって、単純なwhere節のみが構築可能である。リレーショナルデータベースからデータストアへ移行する際に、開発者はデータ操作のパラダイムシフトを要求される。

GAEは各データストアセルから返される最大の行数を1000に制限している。結果のソーティング順序があるプロパティにより表せる場合において、この制約は人が読むために作成されたウェブアプリケーションには影響しない(単一ページに1000レコード表示することはまずないからである。なお、ページングや、キャッシングなどの機構は組み込み可能である)。アプリケーションが各オペレーションにおいて1000レコード以上必要な場合、独自のクライアントサイドソフトウェアを使用するか、Ajaxページを使用することにより無制限の行に対し操作が可能となる。この場合クエリの結果セットに対しオフセットを行うため、時間がかかるという制約を受けることになり、長い結果セットではリクエストタイムアウトが発生することがある。

DB2Microsoft SQL ServerMySQLOraclePostgreSQLとは違い、データストアAPIはリレーショナルなSQLではない。

しかしながら、従来のリレーショナルデータベースに慣れたものからすれば対極に位置するBigTableは扱いに苦労するものであり、SQLライクに扱えるようにするフレームワークが幾つか作られている。Googleもこの点については問題点として認識しており、2011年秋にMySQL互換データストアであるGoogle Cloud SQLを発表し[3]、GAEの内部データベースとして取り扱えるようにした。
競合サービス

この節には独自研究が含まれているおそれがあります。問題箇所を検証出典を追加して、記事の改善にご協力ください。議論はノートを参照してください。(2023年5月)

当サービスはAmazon Web Servicesと競合する。これはアマゾンのサーバにおいてファイルホスティングや、コード実行を可能とするアプリケーションサービスの集合である。他の競合としてはマイクロソフトAzure Services PlatformセールスフォースForce.comが挙げられる。また、Google App Engine用に開発されたアプリケーションを実行するためのオープンソースのフレームワークとしてはAppScaleがある。
歴史

2008年4月:プレビューリリース版を公開

2009年2月:有料版のサービスを開始

2009年4月:Javaアプリケーションに対応

2011年5月:
Go言語に対応

関連項目

Google

Google Cloud Platform

Platform as a Service (PaaS)

AppScale

クラウドコンピューティング


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:43 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef