📝

ECS のブルー/グリーンデプロイで ELB を付け替えてみた

に公開

以下の手順で付け替えてみました。

  1. 付け替え前のリソース作成
  2. 新規 ALB 作成
  3. ELB の付け替え

01. 付け替え前のリソース作成

ECS のブルー/グリーンデプロイに関するチュートリアルをコンソールからやってみた
上記ブログと同様の内容で作成しました。

02. 新規 ALB 作成

基本的な設定は 01 の ALB 作成手順と同じですが、ターゲットグループは使用されていない方のターゲットグループを一時的に指定します。

ただし、この時点で CodeDeploy デプロイグループの ALB を付け替えようとしても以下のエラーが発生します。

The ELB could not be updated due to the following error: Primary taskset target group must be behind listener arn:aws:elasticloadbalancing:ap-northeast-1:012345678901:listener/app/bluegreen-alb2/15f6f92090493bba/3d3c9f32537a07ca.

上記エラーの原因は、付け替え先の ALB のターゲットグループに、使用されていないリスナーが設定されていることです。
Troubleshoot Amazon ECS deployment issues - AWS CodeDeploy

そのため、ALB のターゲットグループの設定を変更する必要があります。

03. ELB の付け替え

02 で発生したエラーを解消する手順も含めて ELB の付け替えを行います。

まず、現在使用されているロードバランサーのターゲットグループのリスナーを編集します。
今回は一時的に固定レスポンスを返す設定にしました。

次に、新規 ALB のリスナーを編集して、既存の ALB で使用されていたターゲットグループに転送するように変更します。

この状態で新規 ALB の DNS 名にアクセスすることでウェブサイトが表示されることを確認します。

この状態で再度デプロイすることで 02 のエラーが解消し、デプロイも成功します。

まとめ

今回は ECS のブルー/グリーンデプロイで ELB を付け替えてみました。
どなたかの参考になれば幸いです。

参考資料

Discussion