장쫄깃 기술블로그

[DevOps] 무중단 배포 전략 (인 플레이스 배포)과 AWS CodeDeploy 본문

Tooling, DevOps/DevOps

[DevOps] 무중단 배포 전략 (인 플레이스 배포)과 AWS CodeDeploy

장쫄깃 2023. 6. 14. 01:52
728x90

인 플레이스 (In-Place) 배포


인 플레이스 (In-Place) 배포는 사용 중인 환경에 새로운 변경사항이 포함된 어플리케이션만 반영하는 배포 방법이다.

 

 

AWS CodeDeploy는 롤링 배포와 인 플레이스 배포를 혼합한 배포 방식을 제공한다.

 

 

CodeDeploy 인 플레이스 배포 시 Elastic Load Balancer


특히, CodeDeploy는 Elastic Load Balancer와 통합하여 사용이 가능하다. 단, 필수는 아니다.

 

CodeDeploy 배포 시, Elastic Load Balancer는 준비되지 않았거나, 현재 배포 중이거나, 더 이상 환경의 일부로 필요하지 않은 인스턴스로 인터넷 트래픽이 라우팅 되지 않도록 한다. 그러나 로드 밸런서의 정확한 역할은 블루/그린 배포에 사용되는지 아니면 인 플레이스 배포에 사용되는지에 따라 다르다.

 

해당 게시글은 인 플레이스 배포에 대한 글이므로 인 플레이스 배포 시의 역할만 다루도록 하겠다.

 

인 플레이스 배포 시 로드 밸런서는 배포 대상 인스턴스로 인터넷 트래픽이 라우팅되지 않도록 하고 해당 인스턴스에 대한 배포가 완료되면 인스턴스가 다시 트래픽을 처리할 수 있도록 한다. 만약 인 플레이스 배포 시 로드 밸런서를 사용하지 않으면, 배포 프로세스 진행 중 트래픽이 인스턴스에 전달될 수 있다. 이로 인해 웹 어플리케이션이 끊기거나, 완료되지 않거나, 이전 상태로 표시가 되는 등의 문제가 생길 수 있다.

 

인 플레이스 배포 시 로드 밸런서를 사용한다면, 배포 전 인스턴스가 처리중인 트래픽의 처리를 기다린다. 트래픽의 처리가 완료되면, 로드밸런서에서 해당 인스턴스를 제외하고 배포를 진행한다. 배포가 완료되면, 인스턴스를 다시 로드 밸런서에 등록한다.

 

만약 배포에 실패하게 된다면, CodeDeploy는 인스턴스가 로드밸런서 뒤에서 정상 상태가 될 때까지 최대 1시간을 대기한다. 만약 정상 상태로 돌아오지 않으면 다음 인스턴스로 넘어가거나 배포에 실패한다.

 

인 플레이스 배포의 경우 Classic Load Balancer, Application Load Balancer 또는 Network Load Balancer를 지정할 수 있다. 로드 밸런서를 배포 그룹 구성의 일부로 지정하거나, CodeDeploy에서 제공하는 스크립트를 사용하여 로드 밸런서를 구현할 수 있다.

728x90

'Tooling, DevOps > DevOps' 카테고리의 다른 글

[DevOps] 무중단 배포 아키텍처와 배포 전략  (0) 2022.09.12