1
0

More than 1 year has passed since last update.

AWS ECS + CodeDeploy - blue/green デプロイ と Canaryデプロイの違い ( ECSAllAtOnce とその他のデプロイ設定 )

Last updated at Posted at 2023-08-29

疑問

AWS ECS への blue/greenデプロイ ( CodeDeployのデプロイ設定 ) で ECSAllAtOnce という設定には何か意味があるのか。
そもそもblueからgreenへ少しずつトラフィックを移行させていくのがblue/greenデプロイではないのか。

ECSAllAtOnce で一度にトラフィックを切り替える場合はそもそもblue/greenデプロイとしてのメリットがあるのだろうか。

結論

次のように理解した。

  • 狭義のblue/greenデプロイは トラフィックをいちどにgreenに切り替えるもの ( ECSAllAtOnce )
  • 広義のblue/greenデプロイは ECSAllAtOnce / Linear / Canary を全て含むもの
  • トラフィックを少しずつblueからgreeenに切り替える方式は Linear / Canary と呼ばれる

世間の用語が混乱しているような気がした。

狭義のblue/greenデプロイ

次のページでは全てのコンテナでトラフィックを一気に切り替える方式がblue/greenデプロイだと説明されている。

image

image

image

広義のblue/greenデプロイ

徐々にトラフィックを転送する方式をblue/greenデプロイだと説明しているページもある。

ブルーグリーン・デプロイメントは、ユーザートラフィックを、アプリケーションやマイクロサービスの以前のバージョンから、ほぼ同一の新しいリリースに徐々に転送するアプリケーション・リリースモデルで、両バージョンが稼働中の状態で実施するものです。

ブルーグリーンデプロイメントという概念は、要約すると常に(少なくとも)2つのアプリケーションインスタンスが実行されることを意味しています。新しいバージョンがリリースされたとき一方のインスタンスにのみリリースされ、残りのインスタンスは旧バージョンで動作します。最初は新しいバージョンへのアクセスは完全に制限され、徐々に一部のユーザーに公開されて新しいリリースの信頼性が確保されます。

CodeDeployの設定

CodeDeploy > デプロイグループ > デプロイの設定 を見ると以下の選択肢がある
この中でトラフィックを少しずつ移行させて行くのが線形リリース/カナリアリリースという扱いらしい

image image

各種デプロイ方法の違い

AWSではないがGoogleCloudのガイド「アプリケーションのデプロイとテストの戦略」がまとめられていて分かりやすい。

image

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

Twitter

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0