SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Google App Engineで開発するスケールするアプリケーション

Google App Engineで開発するスケールするアプリケーション(前編)

Google App EngineとTwitterの連携アプリケーション構築


Google App Engineのインフラ・サーバ構成

 次にスケーラブルな環境を提唱するGoogle App Engineのサーバ群は、どのように構成されていて、それぞれがどのような役割を担っているかをみてみましょう。図8に、Google App Engineで提供されるサーバ群を示しました。

図8:Google App Engineのサーバ構成
図8:Google App Engineのサーバ構成

(1)Front End

 HTTPリクエスト受信とレスポンス送信を担当します。受け付けたリクエストを、動的コンテンツの場合は AppServer、静的コンテンツ(HTML,画像、CSSなど)の場合はStatic File Serverに割り振り、ロードバランサの役割を果たします。ユーザーのWebブラウザからApp Engineに向けて送信されたHTTPリクエストは,ユーザーから最も近いGoogleデータセンターに到着した後,Google内部のネットワークを経由し,リクエストがFront Endに到着します。

(2)AppServer

 アプリケーションサーバです。一般ユーザーがpythonまたはJavaで実装し、Google App Engine上にデプロイしたアプリケーションを実行します。システムの負荷に応じて、App Serverの割り当て数は増減します(自動スケーリング)。

(3)App Master

 アプリのデプロイ管理、バージョン管理、Front EndにAppServerの位置を通知します。

(4)Static File Server

 静的ファイル(HTML、画像、CSSなど)を扱います。

(5)Datastore

 アプリケーションが作成したデータを保存します。バックエンドはBigtableで、Bigtableをラップし使いやすくするためのAPIが提供されています。Datastoreに保存されたデータはGFSの仕組みによって3箇所のノードに同一のデータが保存されるので、データの消失リスクはほとんどありません。

(6)Memcache

 アプリケーションが、一時的に使用できるメモリ領域です。Datastoreへのデータ保存よりも高速に動作するので、リクエストをまたがった一時的なデータを保存するのに最適です。

Google App Engineで使用できるAPI・サービス

 Google App Engineでは、Datastoreにアクセスして、データを操作する以外にも、さまざまな処理が実行できるようなAPIをいくつか用意しています。これらを使用することでWebアプリケーションで必要なさまざまな機能を実装することができます。

Google App EngineのAPI・サービス
サービス名 説明
URLフェッチAPI HTTPリクエストで外部ホストと通信ができるAPI
Images API 画像データの加工、変換処理を実行できるAPI
メール送受信 メールの送受信を実行できるAPI
Cron Google App Engine上で設定した時間にプログラムを動作させることができるサービス
Task Queue キューのサービスです。キューに処理要求を格納することで、バックグランドで処理が実行されます。

次のページ
Google App Engineでアプリケーションを実行するまで

修正履歴

この記事は参考になりましたか?

Google App Engineで開発するスケールするアプリケーション連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 佐藤 治夫 (株式会社ビープラウド)(サトウ ハルオ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4591 2009/12/27 14:06

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー