Elastic Compute Service (ECS) クラスタにデプロイされている Spring Cloud または Dubbo マイクロサービスアプリケーションを更新する際のセキュリティを確保するために、アプリケーションをカナリアモードでリリースして、少数のインスタンスで新しいバージョンを検証できます。検証が成功した場合、すべてのインスタンスでアプリケーションを更新できます。このトピックでは、Enterprise Distributed Application Service (EDAS) コンソールを使用して、ECS クラスタでアプリケーションをカナリアモードでリリースする方法について説明します。
前提条件
アプリケーションをカナリアモードでリリースする前に、アプリケーションにインスタンスを含むインスタンスグループが少なくとも 2 つ含まれていることを確認してください。インスタンスグループの作成方法と ECS インスタンスをインスタンスグループに追加する方法の詳細については、「EDAS コンソールで ECS クラスタのインスタンスグループを管理する」をご参照ください。
制限事項
High-Speed Service Framework (HSF) アプリケーション: カナリアリリースはサポートされていません。
Dubbo アプリケーション: 制限なしで Dubbo アプリケーションのカナリアリリースを実装できます。
Spring Cloud アプリケーション: Deployment.Metadata.Name または Deployment.Metadata.Uid を使用してアプリケーションの一部の機能を設定する場合は、アプリケーションのカナリアリリースを実装しないでください。そうしないと、カナリアリリース後にアプリケーションのネイティブ機能が異常になる可能性があります。
イングレスアプリケーション: アプリケーションがイングレスアプリケーションで、Server Load Balancer (SLB) インスタンスを使用してトラフィックをイングレスアプリケーションに直接転送する場合、SLB トラフィック転送ポリシーはカナリアリリースポリシーに従いません。
説明それでもイングレスアプリケーションにカナリアリリース機能を使用する場合は、クライアントアプリケーションと複数のレプリカを持つサーバーアプリケーションを作成できます。次に、サーバーアプリケーションのカナリアリリースを実装し、SLB インスタンスをクライアントアプリケーションに関連付けて、SLB を使用したサービスアクセスを許可できます。
手順
にログインします。
左側のナビゲーションペインで、 を選択します。上部のナビゲーションバーで、リージョンを選択します。[アプリケーション] ページの上部にある [マイクロサービス名前空間] ドロップダウンリストから、マイクロサービス名前空間を選択します。次に、管理するアプリケーションの名前をクリックします。
[基本情報] ページの右上隅にある 応用を配備する をクリックします。[デプロイモードの選択] ページの右上隅にある デプロイの開始[カナリアリリース (段階的)] セクションの をクリックします。
[カナリアリリース (段階的)] ページで、ビジネス要件に基づいてパラメータを設定し、[OK] をクリックします。
新しいアプリケーションバージョンのデプロイパッケージをアップロードします。
[リリースポリシー] セクションで、リリースポリシーパラメータを設定します。
[公開ポリシーの設定] セクションには、設定に基づいたカナリアリリースプロセスが表示されます。
パラメータ
説明
カナリアグループ
カナリアリリースのインスタンスグループ。
カナリアリリース後のグループごとのバッチ数
指定されたインスタンスグループのカナリアリリースが完了すると、新しいバージョンは、プリセットされたフェーズに基づいて他のグループのインスタンスにデプロイされます。
すべてのグループが選択されている場合、新しいバージョンは、選択されたフェーズ数に基づいて各グループのインスタンスにデプロイされます。グループ内のインスタンス数が選択されたフェーズ数よりも少ない場合、新しいバージョンは、インスタンス数に基づいてグループ内のインスタンスにデプロイされます。
特定のグループが選択されている場合、新しいバージョンは、選択されたフェーズ数に基づいて指定されたグループのインスタンスにデプロイされます。
カナリアリリース後のスケールアウトのバッチタイプ
[カナリアリリース後のグループごとのバッチ数] パラメータを 2 以上に設定する場合は、このパラメータを設定する必要があります。有効な値: 自動 および 手動。
自動: システムは、指定された間隔に基づいて、新しいバージョンを段階的にインスタンスに自動的にデプロイします。[次のバッチまでの待機時間] パラメータを設定する必要があります。
[次のバッチまでの待機時間] の有効な値には、待機しない、1 分、2 分、3 分、4 分、5 分が含まれます。
手動: 次のバッチのリリースを手動でトリガーする必要があります。
Java 環境
アプリケーションのランタイム環境。ビジネス要件に基づいてランタイム環境を選択します。
カナリアリリースルールを設定します。EDAS は、次のカナリアリリースルールをサポートしています: [コンテンツによるカナリアリリース] および [比率によるカナリアリリース]。
[コンテンツによるカナリアリリース]: ポリシーを追加 をクリックします。コンテンツを追加グレースケール戦略 パネルで、+ Create Inbound Traffic Rule をクリックして、受信トラフィックのルールを作成します。
説明複数の受信トラフィックルールを作成できます。
パラメータ
説明
プロトコルタイプ
アプリケーションで使用されるプロトコル。有効な値: Spring Cloud および Dubbo。アプリケーションの実際のプロトコルに基づいてこのパラメータを設定します。
Spring Cloud: [パス] パラメータが必要です。
Dubbo: [サービスの選択] および [メソッド] パラメータが必要です。
条件モード
有効な値: [以下のすべての条件を満たす] および [以下のいずれかの条件を満たす]。
条件
Spring Cloud と Dubbo の条件は異なります。
Spring Cloud: Cookie、ヘッダー、および パラメータ を使用できます。ビジネス要件に基づいてパラメータを設定します。
Dubbo: アプリケーションの実際の値に基づいて、[パラメータ] および [パラメータ値を取得するための式] パラメータを設定します。
[比率によるカナリアリリース]: [トラフィック比率] パラメータを設定します。トラフィックは、この値に基づいて、カナリアリリースの現在のインスタンスグループに転送されます。
カナリアリリースが開始されると、新しいアプリケーションバージョンが指定されたインスタンスグループにデプロイされます。デプロイの進捗状況とステータスは、[変更の詳細] ページに表示されます。
トラフィックが想定どおりに分散されているかどうかを確認します。詳細については、「カナリアトラフィックを監視する」をご参照ください。
トラフィックの検証が完了したら、次のバッチを開始[変更の詳細] ページの をクリックして、後続の段階的リリースを完了します。
検証プロセス中に問題が発生した場合は、[変更の詳細] ページの右上隅にある [変更の停止] をクリックできます。変更が停止されると、[基本情報] タブに次のメッセージが表示されます: アプリケーションはカナリアリリース状態にあり、この変更は停止されました。他の操作を実行する前に、アプリケーションをロールバックしてください。
結果の確認
カナリアリリースが完了したら、[基本情報] タブで [デプロイパッケージ] が新しいバージョンであるかどうかを確認します。[インスタンス情報] タブで、インスタンスが [正常] 状態であるかどうかを確認します。