すべてのインスタンスを一度に更新すると、広範囲にわたる障害が発生するリスクがあります。段階的リリースでは、まず新しいバージョンを少数のインスタンスに適用し、全インスタンスへの展開前に更新内容を検証できます。問題が発生した場合でも、影響を受けるのは一部のインスタンスのみであり、ロールアウトを停止することが可能です。
Enterprise Distributed Application Service (EDAS) は、Elastic Compute Service (ECS) クラスターにデプロイされたアプリケーションに対して段階的リリースをサポートしています。ロールアウトで使用するバッチ数や、各バッチを自動で開始するか手動承認が必要かを制御できます。
段階的リリースの仕組み
ECS クラスターには、1 つ以上のインスタンスグループが含まれており、それぞれに複数のインスタンスが存在します。段階的リリースを構成すると、インスタンスグループ単位でアプリケーションを段階的にリリースできます。
前提条件
作業を開始する前に、以下の要件を満たしていることを確認してください。
EDAS の ECS クラスター上にアプリケーションがデプロイされていること
新しいバージョンのデプロイメントパッケージ(JAR または WAR)がローカルファイルまたは Object Storage Service (OSS) などのサービス上でホストされた URL として用意されていること
バッチによるアプリケーションのリリース
EDAS コンソールにログインします。
左側のナビゲーションウィンドウで、[アプリケーション管理] > [アプリケーション] を選択します。
[アプリケーション] ページの上部ナビゲーションバーで、以下のフィルターを設定します。
リージョンを選択します。
[マイクロサービスネームスペース] ドロップダウンリストからマイクロサービスネームスペースを選択します。
[クラスタータイプ] ドロップダウンリストから ECS クラスター を選択します。
更新対象のアプリケーション名をクリックします。
[基本情報] ページで、右上隅の [デプロイ] をクリックします。
[デプロイモードの選択] ページで、[通常リリース(シングルバッチ / マルチバッチ)] セクションの [デプロイを開始] をクリックします。
新しいバージョンのデプロイメントパッケージを構成します。
パラメーター 説明 デプロイ方法 アプリケーションを初回デプロイ時に選択した方法です。この値は変更できません。たとえば、アプリケーションが JAR パッケージで初回デプロイされた場合、以降の更新では JAR のみが利用可能です。以前のバージョンにロールバックする場合は、[履歴バージョン] を選択します。詳細については、「ECS クラスターでのアプリケーションのロールバック」をご参照ください。 ファイルアップロード方法 デプロイメントパッケージの提供方法です。パッケージタイプ(JAR または WAR)は初回デプロイと一致します。[JAR パッケージをアップロード] / [WAR パッケージをアップロード]:アップロード領域をクリックしてファイルを選択します。[JAR パッケージアドレス] / [WAR パッケージアドレス]:OSS などのクラウドサービス上でホストされたパッケージの URL を入力します。 バージョン 今回のリリースのバージョン識別子です。バージョン番号を入力するか、[タイムスタンプをバージョン番号として使用] をクリックして自動生成します。 説明 新しいバージョンの説明です。 リリースポリシーを構成します。
説明[すべてのグループ] を選択すると、すべてのグループにわたる全インスタンスが、[グループごとのバッチ数] 設定に基づいてバッチに分割されてリリースされます。
説明リリースポリシーを構成すると、[Maven プラグイン構成の生成] セクションにデプロイスクリプトが生成されます。toolkit-maven-plugin プラグインを使用して段階的リリースを自動化する場合は、このスクリプトを Maven 構成にコピーしてください。
パラメーター 説明 グループ 更新対象のインスタンスグループです。アプリケーションにグループが 1 つしかない場合は、[すべてのグループ] または [デフォルトグループ](両者は同等)を選択します。[すべてのグループ] の横に最大インスタンス数が括弧書きで表示されます。アプリケーションに複数のグループがある場合は、対象グループを選択します。 グループごとのバッチ数 リリースを分割するバッチ数です。1 バッチあたりの最小インスタンス数は 1 です。デフォルト:2 バッチ。より緩やかなロールアウトを行うには、バッチ数を増やしてください。 バッチモード 次のバッチの開始方法です。[自動]:待機時間が経過すると次のバッチが開始されます。[手動]:各バッチを手動でトリガーするため、バッチ間で更新内容を検証する時間を確保できます。 次のバッチまでの待機時間 バッチ間の間隔(分単位)です。ドロップダウンリストから値を選択します。 Java 環境 新しいバージョンの Java ランタイムです。オプション:Open JDK 8、Open JDK 7、および Dragonwell 8。 [OK] をクリックしてリリースを開始します。[変更詳細] ページが開き、各バッチの進行状況をモニターできます。詳細については、「アプリケーションの変更内容の確認」をご参照ください。
結果の検証
リリース完了後、変更レコードとインスタンスステータスの 2 つの観点から更新を確認します。
変更レコードの確認
アプリケーション詳細ページで、左側のナビゲーションウィンドウの [変更レコード] をクリックします。
[変更ステータス] 列で、リリースのステータスを確認します:
[成功]:アプリケーションがリリースされました。
[実行失敗]:リリース中にエラーが発生しました。[操作] 列の [表示] をクリックして詳細を確認し、トラブルシューティングを行ってください。
インスタンスステータスの確認
アプリケーション詳細ページで、左側のナビゲーションウィンドウの [基本情報] をクリックします。
[基本情報] タブをクリックします。[アプリケーション情報] セクションで、[デプロイメントパッケージ] フィールドに最新のパッケージが表示されていることを確認します。
[インスタンス情報] タブをクリックします。対象グループ内の各インスタンスの [実行ステータス] が [正常] であることを確認します。