민프
[CI-CD] 무중단 배포 방식 (Rolling, BlueGreen, Canary) 본문
무중단 배포란 무엇인가?
무중단 배포(Zero Downtime Deployment)란
서버를 새 버전으로 배포할 때 기존 서비스에 끊김 없이 사용자에게 지속적으로 서비스를 제공하는 방식입니다.
전통적인 방식처럼 배포 중에 서비스가 잠시 중단되거나 에러가 발생하는 걸 방지하는 목적 입니다.
왜 무중단 배포가 필요한가?
서비스가 중단되면 사용자 경험은 나빠지고, 트래픽 손실과 매출 손실까지 이어집니다.
또한 DevOps와 CI/CD가 기본이 된 지금, 자동화된 안정적인 배포 환경은 필수입니다.
(실무에서는 배포하는 동안 다른 개발자들도 서버를 사용할 수 없어서 약간의 개발 딜레이가 발생하여 필수적으로 필요한 부분 같습니다.)
항목 |
설명 |
사용성 유지 | 고객의 UX를 해치지 않음 (특히 B2C 서비스는 타격 큼) |
수익 손실 방지 | 서비스 중단은 곧 매출 손실로 이어짐 |
자동화 배포 필수 요소 | DevOps, CI/CD의 핵심은 안정성과 자동화 |
실시간 트래픽 | 트래픽이 항상 있는 서비스에서 불가피 |
주요 무중단 배포 방식
방식 | 설명 | 장점 | 단점 |
Rolling Update | 하나씩 기존 서버를 새 버전으로 교체 | 구현이 간단 | 구버전과 신버전이 섞여 있음 |
Blue-Green | 구버전(Blue)과 신버전(Green)을 분리하여 전체 스위칭 | 완벽한 테스트 후 전환 가능롤백이 빠름 | 두 환경을 동시에 유지 → 비용 증가 |
Canary | 신버전을 일부 사용자에게만 배포, 점진적으로 확대 | 점진적 배포로 리스크 낮춤 | 설정 복잡, 모니터링 필수 |
1. Rolling 배포
- 기존 인스턴스를 하나씩 신버전으로 교체
- 기존 서버 중 일부는 구버전, 일부는 신버전으로 동작
- 장점
- 구현이 쉽고 비용이 적음
- 손쉬운 롤백
- 단점
- 버전 불일치로 장애 위험 있음
- 새 버전 배포 시 인스턴스 수가 감소함으로 사용중인 인스턴스에 트래픽이 몰릴 수 있음.
아래 사진에서보면 저는 ECS에 Rolling 배포를 적용하였는데
신 버전이 실행되고, 이전 버전은 중지가 되고 다시 실행되는 것을 확인할 수 있습니다.
2. Blue Green 배포
- Blue(기존)과 Green(신규)를 완전히 분리
- Green이 완전히 준비되면 트래픽을 전환
- 장점
- 배포 후 테스트 가능, 롤백 쉬움
- 단점
- 두 세트를 유지해야 하므로 비용 증가
3. Canary 배포
- 일부 사용자에게만 신버전 제공 후 점진적으로 확대
- 장점
- 실사용자 환경에서 점진적 테스트 가능
- 단점
- 트래픽 분기 처리 및 모니터링이 복잡함
참고링크
[Infra] 무중단 배포 방식(Rolling / BlueGreen / Canary)
무중단 배포에 대해 알아보자. 1. 무중단 배포란? 말 그대로 애플리케이션의 중단 없이 배포를 하는 것을 말한다. 애플리케이션은 언제 중단될까? v1 서비스가 실행 중일 때 v2 버전을 다운로드 받
llshl.tistory.com
https://docs.aws.amazon.com/ko_kr/codedeploy/latest/userguide/deployment-steps.html
https://www.samsungsds.com/kr/insights/1256264_4627.html
무중단 배포 아키텍처(Zero Downtime Deployment)- 글로벌 서비스 운영의 필수 요소 | 인사이트리포트 |
www.samsungsds.com
'DevOps > [CI-CD]' 카테고리의 다른 글
[CI/CD] CI/CD란 무엇일까? | CI/CD Pipeline은 무엇일까? (1) | 2025.03.03 |
---|---|
[CI/CD][Jenkins] Jenkins Pipeline를 이용하여 React, S3, CloudFront 배포 업로드 자동화를 해보자 (0) | 2023.09.20 |