한 줄 요약
배포 전략은 새 버전을 사용자에게 내보내는 방식이에요. 한 번에 바꿀지, 나눠서 바꿀지, 일부에게 먼저 보여 줄지에 따라 위험과 비용이 달라져요.

1. 핵심 개념
1.1 배포 전략이란
배포 전략은 이전 버전에서 새 버전으로 트래픽을 옮기는 방법이에요. 같은 코드라도 어떤 배포 전략을 쓰느냐에 따라 서비스 중단 시간과 문제 발생 시 영향 범위가 달라져요.
트래픽: 서비스로 들어오는 사용자 요청의 흐름이에요.
롤백(rollback): 문제가 생겼을 때 이전 버전으로 되돌리는 작업이에요.
1.2 대표적인 배포 전략
AWS 공식 문서 기준으로 정리하면 이래요.
전략 설명
| 일괄(All-at-once) | 모든 대상을 한 번에 새 버전으로 바꿔요 |
| 롤링(Rolling) | 일부 서버씩 순서대로 새 버전으로 바꿔요 |
| 블루-그린(Blue/Green) | 동일한 환경 두 개를 두고 트래픽을 한 번에 전환해요 |
| 카나리(Canary) | 새 버전을 소수 사용자에게 먼저 보여 준 뒤 확대해요 |
| 선형(Linear) | 트래픽을 같은 비율, 같은 간격으로 조금씩 옮겨요 |
1.3 왜 중요한가
- 배포 중 서비스가 멈추는 시간을 줄일 수 있어요.
- 문제가 생겼을 때 영향받는 사용자 수를 제한할 수 있어요.
- 되돌리는 속도가 전략마다 달라요.
CI/CD 개념 글에서 다룬 지속적 배포를 운영 환경에 적용할 때 함께 고려하는 내용이에요.
2. 쉽게 이해하기
식당이 메뉴를 새로 바꾸는 상황으로 비유해 볼게요.
- 일괄 배포: 하루 문을 닫고 모든 메뉴를 한 번에 바꿔요.
- 롤링 배포: 테이블 몇 개씩 순서대로 새 메뉴판으로 바꿔요. 잠시 두 메뉴판이 섞여 있어요.
- 블루-그린 배포: 옆에 똑같은 매장을 차려 새 메뉴를 준비한 뒤, 손님 안내를 한 번에 옮겨요. 문제가 있으면 원래 매장으로 다시 안내해요.
- 카나리 배포: 일부 손님에게만 신메뉴를 먼저 내고 반응을 본 뒤, 괜찮으면 모든 손님에게 내요.
3. 전략별 상세 설명
3.1 일괄 배포 (All-at-once)
모든 서버를 동시에 새 버전으로 교체해요.
- 절차가 단순하고 빨라요.
- 교체 중에는 서비스가 중단될 수 있어요.
- 새 버전에 문제가 있으면 모든 사용자가 영향을 받아요.
3.2 롤링 배포 (Rolling)
서버를 묶음 단위로 나눠 순서대로 교체해요. AWS 문서는 이를 기존 서버를 그대로 쓰는 in-place 배포의 한 방식으로 설명해요.
- 추가 환경이 거의 필요 없어요.
- 배포 중에는 이전 버전과 새 버전이 함께 실행돼요.
- 되돌리려면 이전 버전을 다시 배포해야 해요.
3.3 블루-그린 배포 (Blue/Green)
AWS 공식 문서는 블루-그린 배포를 서로 다른 버전이 실행되는 동일한 두 환경 사이에서 트래픽을 옮기는 방식으로 정의해요.
- 블루: 현재 운영 중인 환경이에요.
- 그린: 새 버전이 배포된 환경이에요.
그린 환경을 충분히 확인한 뒤 트래픽을 전환해요. 문제가 생기면 트래픽을 블루로 되돌려요. AWS 문서는 언제든 블루로 되돌릴 수 있는 점을 핵심 장점으로 설명해요.
- 환경을 두 벌 유지하므로 자원이 더 필요해요.
- 데이터베이스를 두 환경이 함께 쓰면 스키마 변경이 두 버전 모두와 호환돼야 해요.
3.4 카나리 배포 (Canary)
AWS 문서는 카나리 배포를 트래픽을 두 단계로 옮기는 방식으로 설명해요.
- 먼저 적은 비율의 트래픽(카나리 그룹)을 새 버전으로 보내요.
- 문제가 없으면 나머지 트래픽을 옮겨요.
- 문제가 생겨도 영향 범위가 일부 사용자로 제한돼요.
- 오류율, 응답 시간 같은 지표를 보고 판단해야 하므로 모니터링이 필요해요.
- 배포 중에는 두 버전이 함께 실행돼요.
3.5 선형 배포 (Linear)
트래픽을 같은 비율씩, 같은 시간 간격으로 옮겨요. 예를 들어 일정 시간마다 10%씩 늘리는 방식이에요. 비율과 간격은 설정으로 정해요.
4. 전략 비교
항목 일괄 롤링 블루-그린 카나리
| 추가 환경 | 불필요 | 거의 불필요 | 필요 (두 벌) | 일부 필요 |
| 배포 중 버전 혼재 | 없음 | 있음 | 전환 시점 외 없음 | 있음 |
| 문제 시 영향 범위 | 전체 | 교체된 서버 | 전환 후 전체 | 카나리 그룹 |
| 롤백 방식 | 재배포 | 재배포 | 트래픽 되돌리기 | 트래픽 되돌리기 |
어떤 전략이 가장 좋은지는 서비스 규모, 비용, 허용 가능한 위험에 따라 달라져요.
5. 쿠버네티스에서의 롤링 업데이트
쿠버네티스 Deployment는 업데이트 방식으로 RollingUpdate와 Recreate를 제공해요.
Deployment: 쿠버네티스에서 앱 컨테이너의 개수와 버전을 관리하는 설정이에요.
spec:
replicas: 4
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
항목 의미
| maxSurge | 원하는 개수보다 추가로 만들 수 있는 최대 개수예요 |
| maxUnavailable | 업데이트 중 사용할 수 없어도 되는 최대 개수예요 |
공식 문서 기준 두 값의 기본값은 모두 25%예요. 두 값을 동시에 0으로 설정할 수는 없어요.
6. 핵심 정리
- 배포 전략은 새 버전으로 트래픽을 옮기는 방법이에요.
- 롤링은 서버를 나눠 순서대로 교체하고, 배포 중 두 버전이 섞여요.
- 블루-그린은 두 환경을 두고 트래픽을 전환해, 되돌리기가 빨라요.
- 카나리는 일부 사용자에게 먼저 배포해 영향 범위를 줄여요.
- 쿠버네티스 Deployment의 기본 롤링 설정은 maxSurge, maxUnavailable 모두 25%예요.
7. 추가 정보
공통 주의사항
- 헬스 체크: 새 버전이 요청을 받을 준비가 됐는지 확인하는 장치가 있어야 전환 판단이 가능해요.
- 데이터베이스 호환성: 두 버전이 동시에 실행되는 전략에서는 DB 구조 변경이 양쪽 버전과 모두 호환돼야 해요.
- 모니터링: 카나리와 선형 배포는 지표를 보고 진행 여부를 판단하므로 모니터링 체계가 필요해요.
'운영체제 및 플랫폼 > Docker(도커)' 카테고리의 다른 글
| GitHub Actions 동작 원리 — 액션, 잡, 러너, 샤드와 서버 배포(셀프 호스티드 러너, SSH) (0) | 2026.10.02 |
|---|---|
| 쿠버네티스(Kubernetes) 입문 — 도커와 무엇이 다른지 쉽게 정리 (0) | 2026.09.30 |
| Spring Boot 도커 배포 실습 — Dockerfile 작성부터 서버 실행까지 (0) | 2026.09.27 |
| GitHub Actions로 도커 이미지 빌드·푸시하기 — GHCR 자동 업로드 파이프라인 만들기 (0) | 2026.09.25 |
| GitHub Actions 사용법 기초 — 워크플로·잡·스텝 개념 한 번에 정리 (0) | 2026.09.24 |