본문 바로가기

CICD/EC2

EC2 CICD Automation - 6. CodeDeploy (Blue/Green)

자 이제 이전에 정상적으로 배포 된 서버의 AMI를 생성한 후,

이 서버의 AMI로 LC 및 ASG를 생성해주도록 하겠습니다.

 

이전에 AutoScaling 카테고리에 만들어진 LC에서 복사하여 시작해보도록 하겠습니다.

 

 

Copy라고 뒤에 붙을텐데, 넘버링을 해주고, IAM 및 Userdata를 기존대로 넣어주겠습니다.

 

 

나머지 세팅은 기존과 동일하게 구성해주시면 됩니다.

 

기존 오토스케일링 그룹에서 시작구성을 바꿔 주신후 목표 / 최소 0 / 0 -> 2 / 2 로 늘려주시면 됩니다.

(기존 2 / 2가 있으실 경우 4 / 4 로 늘려주신 후에 서버가 정상적으로 모두 늘어난다면, 2 / 2로 바꿔주시면 됩니다)

 

 


자, 이제 CodeDeploy DG를 만들어주도록 하겠습니다.

 

 

여기서 로드벨런서에 다시 붙여주는 작업을 하기 때문에,

이러한 형식의 배포를 만들 경우에는 반드시 AutoScaling Group 생성 시,

로드벨런서에 붙이는 작업을 하지 않도록 구성해야합니다.

 


자 그러면 콘솔에서 수동배포를 진행해보도록 하겠습니다.

이때 주의할 점은 현 오토스케일링 그룹의 상태를 복사해오기 때문에,

반드시 헬스체크가 되어있는 상태여야 합니다.

 

 

정상적으로 되면 다음과 같이 새로운 오토스케일링 그룹을 만들어 인스턴스를 새로 띄우고 배포하게 됩니다.

 

 

대체 인스턴스에 어플리케이션이 설치되면 아래에 대체 인스턴스에 관한 진행 부분들도 볼 수 있게 됩니다.

 

 

 

그리고 또한 타겟그룹에 이전 서버와 새로 프로비저닝 된 서버까지 정상적으로 서비스 되고있는 것을 볼 수 있습니다.

 

 

트래픽을 이전하기 시작하면 다음과 같이 화면을 볼 수 있습니다.

Detach 되는 작업이 꽤 오래 걸린다는 점 알아주세요.

(만약 아까 종료 대기 1시간 같은 대기시간을 두셨으면 1시간 대기가 여기서 발생합니다.)

 

 

 

 

배포가 정상적으로 수행되는 것을 볼 수 있습니다.

 

 

이제 젠킨스에서 자동화만 남았는데,

젠킨스에서 자동화 시키는 부분도 바꿔줄 부분이 크게 없다는 것을 짐작 하셨을겁니다.

 

마지막 Create Deployment CLI에서 DG만 바꿔주면 되는 부분이므로,

저는 이 부분은 스킵하고, 다음 포스트에서 Jenkins Pipeline으로 구성해보도록 하겠습니다.