すべてのプロダクト
Search
ドキュメントセンター

Serverless App Engine:アプリケーションのカナリアリリースの実行

最終更新日:Sep 03, 2024

複数のインスタンスを含むアプリケーションをアップグレードする場合は、ビジネス要件に基づいてカナリアリリースまたは段階的リリースを使用して、アプリケーションインスタンスを異なるバージョンにアップグレードできます。 このトピックでは、カナリアのリリース方法について説明します。 このトピックでは、アプリケーションのカナリアリリースを実行する方法と、アプリケーションをロールバックする方法についても説明します。

前提条件

カナリアリリースを実行するアプリケーション内のインスタンスの数が1より大きい。

背景情報

カナリアリリースは、元の展開バージョンが使用可能なままである場合に、新しいバージョンのパフォーマンスをテストするために使用される展開方法です。 カナリアリリースは、システムの安定性を確保するのに役立ちます。 カナリアのリリース中に、できるだけ早い機会にエラーを特定して修正できます。

アプリケーションの安定性を確保するために、カナリアリリースのアプリケーションインスタンスの数は、アプリケーションインスタンスの総数の50% を超えることはできません。 残りのアプリケーションインスタンスは、特定のバッチでリリースされます。 アプリケーションインスタンスの最初のバッチがリリースされた後、次のバッチをリリースするかどうかを指定できます。 次のバッチを手動でリリースする前に、新しいバージョンのビジネスデータを収集して、次のバッチをリリースするかどうかを決定できます。

次の種類のカナリアリリースがサポートされています。
  • たとえば、20% のトラフィックを新しいバージョンに転送し、80% のトラフィックを現在のバージョンに転送できます。
  • たとえば、特定のユーザーIDによって送信されたリクエストによって生成されたトラフィックを新しいバージョンに転送し、その他のトラフィックを現在のバージョンに転送できます。

カナリアリリース方法は、段階的リリース方法よりもきめ細かいトラフィック制御を提供します。 フェーズリリース方法の詳細については、「アプリケーションのフェーズリリースの実行」をご参照ください。

手順

警告

アプリケーションを再デプロイすると、アプリケーションは再起動されます。 業務中断などの予測できないエラーを防ぐため、オフピーク時にアプリケーションをデプロイすることを推奨します。

  1. SAEコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[アプリケーション] をクリックします。 上部のナビゲーションバーで、リージョンを選択します。 次に、アプリケーションの名前をクリックします。

  3. の右上隅に基本情報ページをクリックします。アプリケーションのデプロイ.

  4. 配置パラメーターを設定します。

    説明

    アプリケーションのデプロイ方法は、アプリケーションに対して初めて選択したデプロイ方法に基づいています。 選択した方法に基づいてパラメーターを設定します。

    • WARパッケージを使用したデプロイ: 別のWARパッケージをアップロードするか、新しくデプロイされたWARパッケージのパスを入力し、ランタイム環境およびその他の設定を構成します。

    • JARパッケージを使用したデプロイ: 別のJARパッケージをアップロードするか、新しくデプロイされたJARパッケージのパスを入力し、ランタイム環境およびその他の設定を構成します。

    • ZIPパッケージを使用したデプロイ: 別のZIPパッケージをアップロードするか、新しくデプロイされたZIPパッケージのパスを入力し、ランタイム環境およびその他の設定を構成します。

    • イメージ: [イメージの設定] セクションで、[イメージの変更] をクリックします。 [イメージの変更] パネルで、別のイメージリポジトリまたはイメージバージョンを選択します。

  5. [リリースポリシーの設定] セクションで、カナリアリリースを設定します。 下表に、各パラメーターを説明します。
    Canary release policy
    パラメーター説明
    リリースポリシー[カナリアリリース] を選択します。
    Canaryリリースのインスタンスカナリアリリースを実行するインスタンスの数。
    カナリアリリース後の残りのバッチカナリアリリース後に残りのインスタンスをリリースするバッチの数。
    バッチモードこのパラメーターは、Canaryリリース後の残りのバッチパラメーターを1より大きい値に設定した場合に必要です。 [自動] または [手動] を選択します。
    バッチ間の間隔このパラメーターは、バッチモードパラメーターを自動に設定した場合に必要です。 単位は分です。 有効な値: 0 ~ 30。
    バッチ内の間隔各バッチ内のアプリケーションインスタンスの数が1より大きい場合に、バッチ内のアプリケーションインスタンスがデプロイされる時間間隔。 単位は秒です。
    最小使用可能インスタンス

    ローリングアップグレードごとに使用可能なインスタンスの最小数。

    • [番号]: 使用可能なインスタンスの最小数を入力します。 [システム推奨値の使用] を選択した場合、使用可能なインスタンスの最小数は既存のインスタンス数の25% に設定されます。

    • 比率で: パーセンテージを入力します。

    説明
    • アプリケーションのデプロイおよびロールバック中に、少なくとも1つのインスタンスが使用可能であることを確認します。 これにより、ビジネスの継続性が確保されます。 値を0に設定すると、アプリケーションのアップグレード時に業務の中断が発生します。

    • パーセンテージを指定した場合、使用可能なインスタンスの最小数は最も近い整数に切り上げられます。 たとえば、5つのインスタンスが使用可能で、25% を指定します。 この場合、利用可能なインスタンスの最小数は2です。

    マイクロサービスのカナリアリリースルールの有効化Spring CloudまたはDubboアプリケーション用に作成したカナリアリリースルール。
  6. オプション: ビジネス要件に基づいて詳細設定を構成します。

    Java

    詳細設定

    関連ドキュメント

    スタートアップコマンド設定

    起動コマンドの設定

    Java Tomcatの設定

    Java Tomcatパラメーターの設定

    説明

    Tomcat設定は、[アプリケーションのデプロイ方法] パラメーターが [WARパッケージによるデプロイ] に設定されている場合にのみ構成できます。

    環境変数の設定

    環境変数の設定

    サービスの登録と発見

    ホストのバインド設定

    ホストバインディングの設定

    アプリケーションのヘルスチェック

    アプリケーションヘルスチェックの設定

    アプリケーション送信 /受信インターネットアクセス

    アプリケーションライフサイクル管理

    アプリケーションライフサイクル管理の設定

    ログ収集サービス

    永続ストレージ

    NASストレージの設定

    構成管理

    設定の挿入

    優雅なスタートとシャットダウンのマイクロサービス

    説明

    Application Deployment Methodパラメーターを [WARパッケージでのデプロイ] または [JARパッケージでのデプロイ] に設定し、Application Runtime EnvironmentEDAS-Container-XXXに設定した場合、このセクションは表示されません。

    PHP

    詳細設定

    関連ドキュメント

    php.ini設定ファイルの変更

    PHPアプリケーションの設定ファイルの設定

    スタートアップコマンド設定

    起動コマンドの設定

    環境変数の設定

    環境変数の設定

    サービスの登録と発見

    ホストのバインド設定

    ホストバインディングの設定

    アプリケーションのヘルスチェック

    アプリケーションヘルスチェックの設定

    アプリケーション送信 /受信インターネットアクセス

    アプリケーションライフサイクル管理

    アプリケーションライフサイクル管理の設定

    ログ収集サービス

    永続ストレージ

    NASストレージの設定

    構成管理

    設定の挿入


  7. 設定後、をクリックします。確認.
  8. 次のいずれかの方法で、設定が有効かどうかを確認します。
    • 方法1: [レコードの変更] ページで、アプリケーションの変更の詳細とリリースステータスを表示します。 すべてのバッチが実行されると、アプリケーションはアップグレードされます。
    • 方法2: [基本情報] ページで、[インスタンスのデプロイ情報] タブをクリックして、インスタンスのステータスを表示します。 [ステータス] 列に [実行中] が表示され、インスタンスのバージョンがV2に変更された場合、アプリケーションはデプロイされます。

アプリケーションをロールバックする

カナリアリリースまたは段階的リリース方法を使用してアプリケーションのインスタンスをアップグレードするときに、1つ以上のインスタンスがアップグレードされていない場合、アプリケーションのアップグレードステータスはExecutingです。

例外によりアプリケーションインスタンスの最初のリリースバッチに対して応答が返されない場合は、[詳細の変更] ページで [今すぐロールバック] をクリックして、アップグレードされたインスタンスを以前のバージョンにロールバックし、アップグレード前のアプリケーション設定を元の設定に復元します。

アプリケーション変更プロセス中に例外が発生したためにアプリケーションのアップグレードに失敗した場合 (たとえば、デプロイメントパッケージが使用できない、またはヘルスチェックが失敗した場合) 、SAEはアプリケーションを停止し、アプリケーションをロールバックします。

SAEのアプリケーションのアップグレードプロセスは、完了するまでに約30分かかります。 アップグレードがタイムアウトすると、SAEはタイムアウト例外を報告し、変更プロセスを停止します。 この場合、リリースプロセスを手動で終了し、[詳細の変更] ページでアプリケーションをロールバックする必要があります。

関連ドキュメント

次の表に、SAEにアプリケーションをデプロイした後にアプリケーションで実行できる操作を示します。

操作

関連ドキュメント

アプリケーションの更新、起動、停止、削除、アプリケーションのインスタンスのスケールインまたはスケールアウトなどのライフサイクル管理操作

アプリケーションのライフサイクルの管理

アプリケーションの自動スケーリングポリシーの設定、Server Load Balancer (SLB) インスタンスのアプリケーションへのバインド、バッチでのアプリケーションの起動または停止などのパフォーマンス最適化操作

ログの管理、モニタリング設定の構成、アプリケーションイベントの表示、変更レコードの表示など、アプリケーションのステータスベースの操作