ローリング更新から Amazon ECS ブルー/グリーンへのデプロイ戦略の更新
本番環境で実装する前にサービスを変更してテストする際、ローリング更新デプロイから Amazon ECS ブルー/グリーンデプロイに移行できます。
前提条件
サービスをローリングデプロイからブルー/グリーンデプロイに移行する前に、次の内容があることを確認してください。
-
現在のデプロイがすべて完了するまで待ちます。
-
ローリングデプロイ戦略を使用する既存の Amazon ECS サービス。
-
トラフィックを処理する複数のサービスリビジョンがある場合、Amazon ECS は移行中にトラフィックを 1 つのリビジョンに統合しようとします。これが失敗した場合、移行前に 1 つのリビジョンを使用するように、手動でサービスの更新が必要な場合があります。
-
適切なアクセス許可を設定します。
-
Elastic Load Balancing のアクセス許可の詳細については、「ロードバランサー用の Amazon ECS インフラストラクチャの IAM ロール」を参照してください。
-
Lambda のアクセス許可の詳細については、「Amazon ECS ブルー/グリーンデプロイの Lambda 関数に必要となるアクセス許可」を参照してください。
-
-
設定内容に応じて、次のいずれかを実行する必要があります。
-
サービスが Elastic Load Balancing を使用している場合、サービスを新しい「advancedConfiguration」で更新してローリングデプロイを開始します。
-
サービスが Service Connect を使用している場合、サービスを更新してローリングデプロイを開始します。
-
サービスが Elastic Load Balancing および Service Connect の両方を使用している場合、上記の両方のステップを実行します (1 つの UpdateService リクエストを使用できます)。
-
サービスが上記のいずれかを使用していない場合、追加のオペレーションは不要です。
-
-
Amazon ECS ブルー/グリーンデプロイでは、サービスが次のいずれかの機能を使用することが必須です。適切なリソースを設定します。
-
Application Load Balancer – 詳細については、「ブルー/グリーンデプロイ、リニアデプロイおよびカナリアデプロイ用の Application Load Balancer リソース」を参照してください。
-
Network Load Balancer – 詳細については、「Amazon ECS ブルー/グリーン、リニアおよびカナリアデプロイの Network Load Balancer リソース」を参照してください。
-
Service Connect – 詳細については、「Amazon ECS ブルー/グリーンデプロイ、リニアデプロイおよびカナリアデプロイ用の Service Connect リソース」を参照してください。
-
手順
-
https://console.aws.amazon.com/ecs/v2
で Amazon ECS コンソールを開きます。 -
ナビゲーションペインで [Clusters] (クラスター) を選択してください。
-
[クラスター] ページで、移行するサービスを含むクラスターを選択します。
クラスター詳細のページが表示されます。
-
[クラスターの詳細] ページで、[サービス] タブを選択します。
-
サービスを選択したら、[更新] を選択します。
更新のサービスページが表示されます
-
[デプロイオプション] を展開し、次の操作を行います。
-
[デプロイ戦略] では、[ブルー/グリーン] を選択します。
-
ブルー/グリーンデプロイ設定を構成します。
-
ベイク時間には、ブルーリビジョンが終了する前に、ブルーおよびグリーンのサービスリビジョンの両方が同時に実行される分数を入力します。
これにより、検証およびテストの時間を確保できます。
-
(オプション) デプロイの特定段階で実行されるように、Lambda 関数を設定します。[デプロイライフサイクルフック] で、次のステージのために Lambda 関数を設定します。
-
スケールアップ前: グリーンサービスリビジョンをスケールアップする前に実行されます
-
スケールアップ後: グリーンサービスリビジョンをスケールアップした後に実行されます
-
テストトラフィックの移行: グリーンサービスリビジョンへのテストトラフィックのルーティング中に実行されます
-
テストトラフィック後の移行: テストトラフィックがグリーンサービスリビジョンにルーティングされた後に実行されます
-
本番トラフィックの移行: グリーンサービスリビジョンへの本番トラフィックルーティング中に実行されます
-
本番トラフィック後の移行: 本番トラフィックがグリーンサービスリビジョンにルーティングされた後に実行されます
ライフサイクルフックを追加する方法
-
[Add] (追加) を選択します。
-
[Lambda 関数] には、ARN の関数名を入力します。
-
[ロール] には、Lambda 関数を呼び出すアクセス許可を持つ IAM ロールを選択します。
-
[ライフサイクルステージ] では、Lambda 関数を実行するステージを選択します。
-
オプション: [フックの詳細] には、キーおよび値のペアを入力してフックに追加情報を提示します。
-
-
-
ロードバランサーを設定します。
-
[ロードバランシング] で、サービスがロードバランサーを使用するように設定されていることを確認します。
-
[ターゲットグループ] では、本番 (青) 環境のプライマリターゲットグループを選択します。
-
[代替ターゲットグループ] では、テスト (緑) 環境のターゲットグループを選択します。
-
本番のリスナールールでは、本番トラフィックをルーティングするリスナールールを選択します。
-
オプション: [テストのリスナールール]では、テストトラフィックをグリーン環境にルーティングするリスナールールを選択します。
-
[ロール] では、Amazon ECS にロードバランサーの管理を可能にする IAM ロールを選択します。
-
-
変更内容を確認し、[更新] を選択します。
次のステップ
サービスを更新してデプロイを開始します。詳細については、「Amazon ECS サービスを更新する」を参照してください。
-
デプロイプロセスをモニタリングし、ブルー/グリーンのパターンに従っていることを確認します。
-
グリーンサービスリビジョンが作成され、スケールアップされる
-
テストトラフィックがグリーンリビジョンにルーティングされている (設定されている場合)
-
本番トラフィックがグリーンリビジョンに移行されている
-
ベイク時間が過ぎたら、ブルーリビジョンが終了する
-