この記事について
CodeDeployを利用すると、ECSへのデプロイでBlue/Greenを簡単に実現できます。
どのような動きをして、実現できているのかを確認したので、記録しておきます。
Blue/Greenの設定などの解説は行いません。
Blue/Greenデプロイについて
すでにご存知かもしれませんが、一応。
Blue/Greenデプロイとは、デプロイ手法の一つで、本番環境(Blue)に対し、検証環境(Green)を別途立ち上げて、その検証環境をそのまま本番環境として利用することで、デプロイ時のダウンタイムを低減させることを目的としています。
本番環境及び、検証環境の切り替えは、ルーティングを変更することで行う。
全体像について
今回の内容は、下図だけでわかると思います。
動きを確認していきます。
検証環境は、ECSのFarget環境へのデプロイになります。
- group1 → xxx-fargate
- group2 → xxx-fargate-2
とします。
①初期状態
ロードバランサーは、443/8080どちらもxxx-fargate
へルーティングします。
②デプロイの開始
- ロードバランサーの状態
変更はありません
③ビルド完了、8080をGreen環境へルーティング
- ロードバランサーの状態
8080が、xxx-fargate-2
へルーティングされるように変更されています。
- fargateタスクの状態
タスクはBlue(本番)と、Green(検証)の2つ実行されています。
④置き換え&タスクの削除
- ロードバランサーの状態
443がxxx-fargate-2
へルーティングされるようになります。
CodeDeployのコンソールで元のタスクセットを終了
をクリックすると、もとのタスクが削除されます。
- fargateタスクの状態
もとのタスクが削除されています。