yaml 構成ファイルを整理する

ここでは、App Engine 用のアプリのサービスと関連リソースを構造化する方法を説明します。

ディレクトリ構造

App Engine サービスの各バージョンは、app.yaml 構成ファイルで定義されています。単純なアプリでは、app.yaml ファイルの定義がデプロイの最小要件になります。app.yaml ファイルは、デプロイ記述子として機能し、特定のバージョンのサービスについて、そのスケーリングのタイプと、CPU、ディスク、メモリのリソースを定義します。複数のバージョンのサービスをデプロイする場合は、同じディレクトリ内に複数の yaml ファイルを作成して、各バージョンの構成を表すことができます。

yaml 形式の構成ファイルは、Eclipse Jetty 9 ランタイムと Java 8 ランタイムで使用します。

ファイルの編成は、使用する Java ランタイムに応じて異なります。アプリ内のサービスごとに、WAR ファイルまたは JAR ファイルが必要である場合があります。詳細については、該当の Java ランタイム デベロッパー ガイドをご覧ください。

インスタンスの稼働率に関する設計上の考慮事項

ハードウェアやソフトウェアの障害のため、事前の警告なくインスタンスが途中で終了したり頻繁に再起動したりする場合があり、このような障害の解決に長い時間がかかることもあります。アプリケーションはこのような障害に対処できる必要があります。

インスタンスの再起動によるダウンタイムを回避するには、次のような手法が効果的です。

  • インスタンスの再起動や新規インスタンスの起動にかかる時間を短縮する。
  • 長時間実行される計算では、チェックポイントを定期的に作成して、その状態から再開できるようにする。
  • アプリを「ステートレス」にして、インスタンスに何も保存されないようにする。
  • 非同期タスクの実行時にキューを使用する。
  • 手動スケーリングに対応するようにインスタンスを構成する場合:
    • 複数のインスタンス間で負荷分散を行う。
    • 通常のトラフィックの処理に必要な数よりも多くのインスタンスを構成する。
    • 手動スケーリング インスタンスが使用不可の場合にキャッシュ内の結果を使用するよう、フォールバック ロジックを作成する。

インスタンスの詳細については、インスタンスの管理方法をご覧ください。

default サービス

すべての App Engine アプリケーションには default サービスが含まれています。アプリの初期バージョンを default サービスにデプロイする必要があります。その後、追加のサービスを作成してアプリにデプロイできるようになります。

デフォルト サービスは、app.yamlservice: default の設定を使用して指定できます(この設定は任意です)。

GCP プロジェクトを使用するアプリに送信されたリクエストは、default サービスに送信されます(たとえば、https://[PROJECT_ID].appspot.com)。他のサービスをターゲットに設定する方法の詳細については、サービス間の通信をご覧ください。

オプションの構成ファイル

以下の構成ファイルを使うと、個々のアプリに含まれるすべてのサービスに適用されるオプション機能を制御できます。各オプション機能の詳細については、次のトピックをご覧ください。

データとファイルの保存に関する考慮事項

App Engine から、Cloud DatastoreCloud SQLCloud Storage などの他の GCP サービスに簡単にアクセスできます。

外部またはサードパーティのデータベースがご使用の言語でサポートされ、App Engine インスタンスからアクセスできる場合は、そのデータベースを使用することもできます。

ファイルを GCP または外部に保存する方法の詳細については、データとファイルの保存についてをご覧ください。

静的コンテンツの提供方法を選択することもできます。App Engine 内のアプリからそのアプリの静的コンテンツを直接提供したり、Cloud Storage などの GCP オプションで静的コンテンツをホストしたり、サードパーティのコンテンツ配信ネットワーク(CDN)を使用したりできます。静的コンテンツの提供方法の詳細については、静的ファイルの提供をご覧ください。

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

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

Java の App Engine フレキシブル環境に関するドキュメント