App Engine フレキシブル環境の既知の問題

リージョン ID

REGION_ID は、アプリの作成時に選択したリージョンに基づいて Google が割り当てる省略形のコードです。一部のリージョン ID は、一般的に使用されている国や州のコードと類似しているように見える場合がありますが、このコードは国または州に対応するものではありません。2020 年 2 月以降に作成されたアプリの場合、REGION_ID.r は App Engine の URL に含まれています。この日付より前に作成されたアプリの場合、URL のリージョン ID は省略可能です。

詳しくは、リージョン ID をご覧ください。

既知の問題の一覧や新しい問題の報告については、公開バグトラッカーをご覧ください。

  • gcloud app deploy でアプリケーションをデプロイした後、https://PROJECT_ID.REGION_ID.r.appspot.com でアプリケーションがサービスを開始するまでに 1~2 分かかる場合があります。その間、HTTP 503 エラーが表示されることがあります。

  • プロジェクトに外部 IP へのアクセスを制限する組織のポリシーが含まれている場合、外部 IP アドレスを持つ App Engine フレキシブル環境アプリをデプロイできません。たとえば、組織のポリシーは次のようになります。

    • constraints/compute.vmExternalIpAccess の有効なポリシーが DENY_ALL に設定されている。
    • constraints/compute.vmExternalIpAccess の有効なポリシーで、特定の VM インスタンスのみが許可されるように設定されている。

    こうした制約は自動的には検出されず、デプロイがタイムアウトして失敗する可能性があります。gcloud beta resource-manager org-policies describe compute.vmExternalIpAccess --project=my-project --effective コマンドを実行して、プロジェクトの組織ポリシーを確認できます。特定のプロジェクトの組織のポリシーをオーバーライドすることもできます。

    ただし、このような組織のポリシーが設定されている場合でも、内部 IP アドレスのみを使用する限定公開の App Engine フレキシブル環境アプリはデプロイできます。

  • gcloud app deploy を使用して App Engine フレキシブル環境に既存のサービスの新しいバージョンをデプロイした後で、App Engine ダッシュボードの [概要] グラフに表示される [件数/秒] 指標の値が大幅に減少する可能性があります。この指標は、その後 5~10 分の間に、予想されるリクエスト数に徐々に戻ります。

    これは、アプリケーションが処理するリクエスト数が少なくなるという意味ではありません。新しいバージョンのアプリケーションをデプロイする場合、新しいバージョンのリクエスト処理の準備ができてから新しいインスタンスの指標が使用可能になるまで、時間差があります。

    この指標が新しいバージョンのデプロイによる影響を受けないようにするには:

    1. gcloud app deploy --no-promote を使用して、新しいバージョンをデプロイします。
    2. デプロイが完了してから 15 分待ちます。
    3. トラフィックを新しいバージョンに移行します

    --no-promote を使用してデプロイしても、デプロイ完了後 15 分以内にトラフィックを割り当てると、この指標が影響を受ける可能性があります。

  • App Engine フレキシブル環境では、アプリに常に HTTPS を使用させるリクエストを自動的にリダイレクトするように app.yaml を構成することはできません。これは、secure 設定を使用できる App Engine スタンダード環境と異なります。

    別の方法として、X-Forwarded-Proto ヘッダーの値を解析して、アプリケーション コード内のリダイレクトを処理することもできます。また、クライアントに Strict-Transport-Security ヘッダーの使用を促すこともできます。

  • ユーザー管理のサービス アカウントを App Engine フレキシブル環境バージョンに割り当てると、agent.googleapis.com 接頭辞の付いた指標に対する料金がプロジェクトに課金される場合があります。通常、これらのエージェント指標の料金はプロジェクトに課金されません。この問題が解決されるまで、App Engine のデフォルト サービス アカウントを引き続き使用することをおすすめします。

  • IAP を使用して VM インスタンスへの SSH 接続を確立できません。

インスタンス数の予期しない減少

  • まれに、ゾーン障害が原因で予期せずインスタンス数が減少したり、インスタンスのグループ全体が応答しなくなったりする場合があります。これを回避するには、システムがインスタンスの最小数を下回らないように、アプリケーションをオーバープロビジョニングすることをおすすめします。デプロイ時に、App Engine フレキシブル環境アプリケーションの min_num_instances サイズを設定できます。App Engine フレキシブル環境のインスタンス最小数に影響する可能性があるイベントの一部を以下に示します。

    1. フレキシブル環境のインスタンスに対する更新のロールアウト
    2. ゾーン障害(在庫切れの問題、リージョンにおいて選択した CPU の処理能力の上限に達した場合など)

    App Engine フレキシブル環境では、3 つのゾーンを使用してインスタンスを分散します。このような構成では、必要数より 50% 多くのインスタンスをプロビジョニングすることをおすすめします