본문 바로가기
Server

배포 전략

by Doromi 2024. 4. 20.
728x90
반응형

1. 인플레이스 배포(In-place Deployment)

AWS의 Codedeploy가 대표적으로 이 방식을 사용한다.

AWS CodeDeploy: 개발자가 EC2 인스턴스 및 온프레미스에서 실행 중인 인스턴스를 비롯한 모든 인스턴스에서 소프트웨어를 배포하고 업데이트하도록 지원하는데 초점을 맞춘 빌링 블록 서비스

배포 그룹의 각 환경에 있는 어플리케이션을 일시정지한 후 최신 상태의 어플리케이션 업데이트를 실행한다.

로드밸런서를 사용하면 인스턴스가 배포중이더라도 등록을 해제할 수 있고 배포 후에도 이전 버전으로 복원이 가능하다.

 

2. 롤링 배포(Rolling Update Deployment)

현재 위치 배포, 한개의 Load Balancer가 4개의 서버로 골고루 요청을 보낸다.

로드밸런서에서 연결된 서버 중, 몇개를 떼어내고 배포를 진행한 후, 나머지 서버를 연결하여 배포를 진행한다.

서버 수의 제약이 있을 경우 유용한 방법이다.

이 방식 또한, AWS Beanstalk과 CodeDeploy 가 사용중이다.

EC2, 온프레미스의 경우, 인플레이스 배포가 롤링 배포와 혼합된 방식을 따르고 있고,

Lambda와 ECS 의 경우, 롤링 배포가 기본으로 사용된다.

서버를 나눠서 업데이트하기 때문에 업데이트 도중에 가용서버가 필연적으로 적어지는 단점이 있다.

롤백의 경우, 다시 배포 방식대로 롤백 후, 배포 진행해야 한다.

3. 블루/그린 배포(Blue/Green Deployment)

인플레이스 배포의 단점을 어느정도 보완한 방법이다,

기존 서버 그룹과 같은 서버 그룹을 하나 더 만들어서 서버 버전을 동일하게 한 후, 로드밸런서에는 연결하지 않는다.

복사한 서버그룹 내부의 서버들을 업데이트한 후, 로드밸런서에 연결한다,

기존의 서버 그룹을 로드밸런서에서 연결 해제한다.

업데이트 도중에도 기존의 서버의 수를 유지하기 때문에 부하가 걸릴 위험이 사라지고, 롤백의 경우도 이전 버전의 서버그룹으로 로드밸런서를 연결해 주면 되기 때문에 단점을 보완할 수 있다,

이 방법은 쉽게 인스턴스를 생성하고 없앨 수 있는 클라우드 환경이나, 컨테이너를 올렸다가 내리는 것이 자유로운 docker 등 가상 환경에 어울리는 방식이다.

버전 관리 문제를 방지할 수 있고, 운영 환경에 영향을 주지 않고 실제 서비스 환경으로 새 버전 테스트가 가능하다.

이 방식도 Elastic Beanstalk, CodeDeploy 에서 사용할 수 있다.

4. 카나리 배포(Canary Deployment)

가동중인 서버들의 일부에만 새로운 앱을 배포하여 일부 트래픽을 새 버전의 환경으로 분산하는 방식이다.

A/B 테스트가 가능하며, 오류율 및 성능 모니터링에 유용하다.

AWS API Gateway 가 대표적인 서비스이며, 블루/그린 배포의 배포 설정 타입의 종류 중 하나로 분류할 수 있다.

728x90
반응형

'Server' 카테고리의 다른 글

CI/CD  (0) 2024.04.08
Kubernetes  (0) 2024.04.01
14. 유저 세션(3)  (0) 2018.01.18
13. 유저 세션(2)  (0) 2018.01.15
12. 유저 세션(1)  (0) 2018.01.15