App Engine フレキシブル環境の最新リリースへのアップグレード

このページは、app.yamlvm:true を設定したフレキシブル環境を使用し、最新のリリースへのアップグレードを希望しているデベロッパーを対象にしています。アップグレードに伴って、既存のアプリの構成を変更する必要があります。

スタンダード環境からフレキシブル環境へのサービスの移行で取り上げている App Engine スタンダード環境からのアップグレードについては説明していません。

フレキシブル環境へのアップグレード

マネージド VM 環境からフレキシブル環境にアップグレードするには:

  1. app.yaml 構成ファイルで、非推奨の vm: true エントリを env: flex に置き換えます。次に例を示します。
    runtime: go
    env: flex
    
  2. 重要な変更の一覧を参照して、app.yaml に対してその他の変更が必要かどうかを確認します。
  3. アップグレード時には、新しい機能が使用できるように変更することを検討してください。
  4. 必要な変更を行ったら、アプリの新しいバージョンを App Engine にデプロイします

    たとえば、app.yaml ファイルがあるアプリのルート ディレクトリから、次のコマンドを実行します。

    gcloud app deploy

  5. 共有コア マシンタイプ

    1 vCPU 未満の共有コア マシンタイプは、App Engine フレキシブル環境でサポートされません。共有コアマシンを使用している場合は、env:flex に移動するときに、少なくとも 1 つのコアを持つようマシンをアップグレードする必要があります。また、App Engine スタンダード環境にアプリを移動することもできます。

    ウォームアップ リクエスト

    /_ah/warmup リクエストは、App Engine フレキシブル環境でサポートされていません。

    アプリをウォームアップするには、アプリケーションのウォームアップが完了した時点でのみ完了ステータスを返すヘルスチェック ハンドラを実装します。

    たとえば、キャッシュの初期化後に完了ステータスを返す準備チェックを作成して、準備が整うまでアプリがトラフィックを受信しないようにすることができます。

    静的ファイル

    app.yamlhandlers: セクションで定義する静的ファイルは、他の App Engine インフラストラクチャからではなく、App Engine インスタンスから直接提供されます。インターフェースと動作は同じですが、ファイルの処理に伴い、App Engine インスタンスでわずかな CPU とその他のリソースが消費されます。

    隠れたリソース

    フレキシブル環境のデプロイ(Cloud Load Balancing、Compute Engine インスタンス、マネージド インスタンス グループなど)の背後にある基盤となるリソースは、App Engine アプリケーションとそのインスタンスの抽象化を詳しく指定するため、Google Cloud Platform Console に隠されています。個々のインスタンスは、[インスタンス] ページ上の GCP Console に表示され、管理されます。

    インスタンスは、デバッグのために SSH からロック解除し、アクセスすることができます。gcloud compute instances コマンドを使用する代わりに gcloud app instances 使用します。GCP Console の [インスタンス] ページから SSH 接続を初期化することもできます。

    重要な変更

    App Engine フレキシブル環境にアップグレードするには、コードと設定ファイルを少し変更する必要があります。このセクションでは、env: flex 設定でアプリをデプロイする前に注意が必要なサポート終了日と変更点について説明します。

    ライブラリのサポート終了

    次のライブラリとその関連サービスは、2016 年 11 月 15 日に非推奨になりました。フレキシブル環境では使用できません。

    app.yaml の変更

    app.yaml ファイルで、非推奨の設定 vm:true をフレキシブル環境の設定 env:flex に置き換えます。

    認証の変更

    非推奨となった他の構成設定を削除するか置き換えるために、app.yaml ファイルを更新する必要もあります。

    • セキュア ハンドラ
      handlers の下での secure 設定は App Engine フレキシブル環境でサポートが終了しました。SSL リダイレクトが必要な場合には、アプリケーション コードを更新し、X-Forwarded-Proto ヘッダーを使用して http トラフィックをリダイレクトできます。また、HTTP Strict Transport Security レスポンス ヘッダーも使用できます。
    • ログイン ハンドラ
      handlers の下での login 設定は App Engine フレキシブル環境でサポートが終了しました。ユーザー サービスの移行のガイドに従ってください。

    環境変数の変更

    次の環境変数は削除または名前変更されました。存在する場合は、代わりの環境変数を示しています。

    非推奨の環境変数 新しい環境変数(該当する場合)
    APPENGINE_LOADBALANCER
    APPENGINE_LOADBALANCER_IP
    GAE_AFFINITY
    GAE_APPENGINE_HOSTNAME
    GAE_MINOR_VERSION
    GAE_LONG_APP_ID GOOGLE_CLOUD_PROJECT
    GAE_MODULE_INSTANCE GAE_INSTANCE
    GAE_MODULE_NAME GAE_SERVICE
    GAE_MODULE_VERSION GAE_VERSION
    GAE_PARTITION
    GAE_VM
    HOSTNAME
    MEMCACHE_ENV_DEBIAN_FRONTEND
    MEMCACHE_ENV_PORT
    MEMCACHE_NAME
    MEMCACHE_PORT
    MEMCACHE_PORT_11211_TCP
    MEMCACHE_PORT_11211_TCP_ADDR
    MEMCACHE_PORT_11211_TCP_PORT
    MEMCACHE_PORT_11211_TCP_PROTO
    MODULE_YAML_PATH
    SERVER_SOFTWARE
    USE_MVM_AGENT

    リクエスト ヘッダーの変更

    次の HTTP リクエスト ヘッダーが変更されました。

    • すべてのリクエストから削除されたヘッダー:

      • X-GOOGLE-REAL-IP
      • X-APPENGINE-API-TICKET
      • X-APPENGINE-AUTH-DOMAIN
      • X-APPENGINE-DATACENTER
      • X-APPENGINE-DEFAULT-VERSION-HOSTNAME
      • X-APPENGINE-HTTPS
      • X-APPENGINE-REQUEST-ID-HASH
      • X-APPENGINE-REQUEST-LOG-ID
      • X-APPENGINE-USER-IS-ADMIN
      • X-APPENGINE-USER-IP
    • すべてのリクエストに含まれるヘッダー:

      • X-FORWARDED-FOR
      • X-CLOUD-TRACE-CONTEXT
      • X-FORWARDED-PROTO

    Memcache サービス

    Memcache サービスは現在、App Engine フレキシブル環境では利用できません。近日中に Memcache サービスのアルファ版が提供されます。サービスが提供されたときに通知を受け取ることをご希望の場合は、この早期アクセス フォームに入力してください。

    アプリケーション データを直ちにキャッシュする必要がある場合、サードパーティのフルマネージド サービスである Redis Labs Redis Cloud を利用できます。このサービスにアクセスするには、Redis Labs Redis を使用したアプリケーション データのキャッシュ保存をご覧ください。

    タスクキュー

    第 1 世代のスタンダード環境の外部で push タスクキュー サービスを使用するには、Cloud Tasks API ベータ版を使用します。

    別の作業で pull され、処理されるタスクやメッセージをキューに追加するなど、pull キューを使用する多くの場合に、Cloud Pub/Sub は、類似の機能や配信の保証を提供するため、最適な代案になります。

    URL ルーティングの変更

    フレキシブル環境で実行されるアプリで、特定のインスタンスにトラフィックをルーティングすることはできません。たとえば、インスタンス instanceID にリクエストを送信することはできません。

    https://instanceID-dot-versionID-dot-serviceID-dot-app-id.appspot.com

    アップグレードで注意が必要な新機能

    アプリをアップグレードする場合、次の改善点に注意してください。

    料金の変更

    App Engine フレキシブル環境では、新しい料金モデルが導入されています。現在 vm:true を使用しているお客様には 1 年間、元の Compute Engine の料金が適用されます。フレキシブル環境の新しい料金については、フレキシブル環境のインスタンスの料金をご覧ください。

    ヒント: フレキシブル環境では費用制限はサポートされません。予算の作成とアラートの設定を検討する必要があります。

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

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

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