본문 바로가기

CICD/ECS

ECS CICD Automation - 9. ECS Linear, Canary Deployment Intro

https://aws.amazon.com/ko/blogs/containers/aws-codedeploy-now-supports-linear-and-canary-deployments-for-amazon-ecs/

 

AWS CodeDeploy now supports linear and canary deployments for Amazon ECS | Amazon Web Services

AWS CodeDeploy has extended blue/green deployment support for Elastic Container Service (Amazon ECS) to include canary and linear deployments for applications hosted on AWS Fargate or Amazon Compute Cloud (Amazon EC2). Blue/green deployments are a safe dep

aws.amazon.com

진짜 깜짝 놀랐네요

TG 가중치 기반이 생겨서 곧 생기려나 싶긴 했는데 이렇게 빨리 생길줄은..

 

먼저 카나리배포와 선형배포를 간략하게 설명하도록 하겠습니다.

 

유례를 따르면, 카나리라는 새를 통해서 광부분들이 작업을 하기 전에 새를 미리 동굴에 보낸 후,

생존 여부에 따라 안전성을 판단했다고 합니다. 이러한 방식으로 배포를 하는 것을 말합니다.

 

일단 블루/그린의 배포 방식처럼 모든 서버를 동일하게 띄우게 됩니다.

 

그리고 Ver2에 대한 트래픽을 아주 일부만 전달하게 해줌으로써 테스트를 해보는 것이죠

그리고 장애나 에러없이 잘 수행되면 점점 그 트래픽의 양을 증가시키면서

Ver1의 트래픽을 모두 Ver2로 점점 증분시키며 배포하는 형태를 카나리 배포라고 합니다.

 

선형배포도 유사합니다.

하지만 정상적으로 구축된 서비스가 아니라면 리소스를 낭비할 필요가 없겠죠?

 

 

따라서 위와 같이 해당 트래픽을 소화하는 만큼의 리소스를 배포하고, 시간에 따라서 Ver2의 배포를 점점 늘리는 형태를 선형배포라고 서술은 되어있는데, 테스트를 해봐야할 것 같습니다. 이 방식에 대한 설명은 조금 틀릴 수 도 있습니다.

 

이제 CodeDeploy에서 위와 같은 설정을 통해 선형 혹은 카나리배포 방식을 ECS에서 지원하게되었습니다.

구성은 똑같이 Blue/Green으로 먼저 만들어주시면 되고, CodeDeploy에서

Deployment Group과 Create Deployment에서의 배포구성만 변경해서 해주시면 되는 형태입니다.

 

그래서 배포생성을 할 때, 아래와 같은 옵션에서 골라서 수행하실 수 있으며

 

 

혹은 배포 구성 만들기를 통해서 직접 원하는 형태의 트래픽 전달과 시간배율을 정해 구성하실 수 있습니다.

 

 

다음 포스트에서 ECS -EC2부터 이 부분에 대한 배포 자동화를 만들어서 한번 진행해보도록 하겠습니다.