App Engine の概要

App Engine アプリは、1 つ以上のサービスからなる単一のアプリケーション リソースで構成されています。各サービスは、各種ランタイムを使用し、異なるパフォーマンス設定で動作するように構成できます。それぞれのサービス内で、そのサービスのバージョンをデプロイします。デプロイされた各バージョンは、そのバージョンに構成したトラフィックの処理量に応じて、1 つ以上のインスタンス内で実行されます。

アプリケーションのコンポーネント

App Engine アプリは、アプリケーション リソースを作成する際に Google Cloud Platform プロジェクトの下に作成されます。この App Engine アプリケーションは、アプリを構成するサービス、バージョン、インスタンス リソースが含まれている最上位コンテナです。App Engine アプリを作成すると、設定、認証情報、アプリのメタデータのコレクションと一緒に、アプリのコードを含むすべてのリソースが、選択したリージョン内に作成されます。

各 App Engine アプリケーションには、少なくとも 1 つのサービス(default サービス)が含まれており、そのサービスのバージョンをいくつでも保持できます。

次の図に、複数のサービスで動作する App Engine アプリの階層を示します。この図では、アプリの 2 つのサービスに複数のバージョンが含まれており、そのうち 2 つのバージョンが複数のインスタンス上でアクティブに実行されています。

アプリのサービス、バージョン、インスタンスの階層グラフ

Cloud Datastore などの他の GCP サービスは、App Engine アプリ全体で共有されます。詳細については、ウェブサービスの構造化をご覧ください。

サービス

App Engine のサービスを使用して、大規模なアプリを、App Engine 機能を安全に共有し、相互に通信できる論理コンポーネントに分解します。通常、App Engine サービスはマイクロサービスのように動作します。したがって、アプリ全体を単一のサービスで実行したり、複数のサービスを設計およびデプロイして、一連のマイクロサービスとして実行したりできます。

たとえば、顧客のリクエストを処理するアプリには、次のような異なるタスクをそれぞれ処理する個別のサービスが含まれていることがあります。

  • モバイル端末からの API リクエスト
  • 内部の管理タイプのリクエスト
  • 課金パイプラインやデータ分析などのバックエンド処理

App Engine の各サービスは、アプリのソースコードと、対応する App Engine 構成ファイルで構成されています。サービスにデプロイする一連のファイルは、そのサービスの単一バージョンを表し、そのサービスに対するデプロイを行うたびに、同じサービス内に追加のバージョンを作成することになります。

バージョン

それぞれのサービス内にアプリの複数のバージョンを用意することで、ロールバック用、テスト用、その他の一時的なイベント用といった、そのアプリの各種バージョンをすばやく切り替えることができます。トラフィックを移行または分割することで、特定のバージョンのアプリにトラフィックをルーティングできます。

インスタンス

サービス内の各バージョンは、1 つ以上のインスタンスで実行されます。デフォルトでは、App Engine が負荷に合わせてアプリのスケーリングを行います。アプリは、一貫したパフォーマンスを提供するために、稼働しているインスタンスの数を増やしたり、アイドル状態のインスタンスを最小限に抑えてコストを削減するために、稼働インスタンスの数を減らしたりします。インスタンスの詳細については、インスタンスの管理方法をご覧ください。

アプリケーション リクエスト

アプリの各サービスの名前やそうしたサービス内の各バージョンの名前は、一意でなければなりません。こうした一意の名前は、URL によってトラフィックを特定のリソースにターゲティングおよびルーティングするために使用できます。次に例を示します。

http://my-version.my-service.my-project-id.appspot.com
https://my-version-dot-my-service-dot-my-project-id.appspot.com

受信ユーザー リクエストは、トラフィックを処理するように構成されているサービスまたはバージョンにルーティングされます。特定のサービスやバージョンに対してリクエストをターゲティングおよびルーティングすることもできます。詳細については、サービス間の通信をご覧ください。

アプリケーション リクエストのロギング

アプリケーションがリクエストを処理する際には、ロギング メッセージを stdoutstderr に書き込むこともできます。アプリのログの詳細については、アプリケーション ログの書き込みをご覧ください。

制限

各アプリケーションのサービス、バージョン、インスタンス(手動スケーリング サービスの場合)の数には制限があります。

説明 制限
アプリケーションごとの最大サービス数 5
アプリケーションごとの最大バージョン数 5 *
手動スケーリングによるバージョンあたりの最大インスタンス数 20

* 外部 HTTP ロードバランサによって使用されるバックエンド サービスなど、バックエンド サービスは最大バージョン数の制限に含まれる場合があります。

すべてのプロジェクトに上記の制限があるわけではありません。時間とともに、Google Cloud Platform の使用量が多くなると、制限も大きくなる可能性があります。使用量の大幅な増加が見込まれる場合には、事前に GCP Console の App Engine の [割り当て] ページから、割り当て量の調整をリクエストできます。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Go の App Engine フレキシブル環境