あるチームがAWS CodeDeployを使ってAmazon ECSサービスへのBlue/Greenデプロイを実装しようとしている。ECSのBlue/Greenデプロイに必要なコンポーネントを2つ選択してください。
- A. CodeDeployエージェントがインストールされたEC2インスタンス
- B. ECRリポジトリへのイメージのプッシュを行うCodeBuildプロジェクト
- C. ECSクラスターに接続されたAuto Scalingグループ
- D. appspec.ymlファイルに定義されたTaskDefinitionとContainerNameおよびContainerPort
- E. Application Load Balancer(ALB)と2つのターゲットグループ
解答と解説を見る
正解: D, E
ECSへのBlue/GreenデプロイをCodeDeployで実現するためには、ALBと2つのターゲットグループ(BlueとGreen)が必要である。ALBのリスナールールで本番トラフィックをBlueターゲットグループに向け、デプロイ時にGreenターゲットグループに新バージョンを展開して切り替える。また、appspec.ymlにはTaskDefinitionのARN、ContainerName、ContainerPortを記述する必要があり、CodeDeployはこれを読んでECSサービスを更新する。CのAuto ScalingグループはスタンドアロンなEC2ベースのデプロイには必要だが、ECSのFargateまたはEC2起動タイプのサービスデプロイでは直接必要ではない。AのCodeDeployエージェントはEC2/オンプレミスへのデプロイに必要なものであり、ECSデプロイでは不要である。BのCodeBuildプロジェクトはCI/CDパイプラインの一部として有用だが、CodeDeploy単体でECSデプロイを行う際の必須コンポーネントではない。
📚 関連サービスの解説: Elastic Load Balancing(ELB)