핵심 요약
무중단 배포의 핵심은 "새 버전이 준비 완료(healthy)된 뒤에 트래픽을 옮기는 것"이다. blue-green은 동일 환경 둘을 두고 한 번에 전환(즉시 롤백 쉬움), rolling은 인스턴스를 조금씩 교체(자원 효율적). 둘 다 헬스체크가 전제다.
1. 비교
| blue-green | rolling | |
|---|---|---|
| 전환 | 한 번에 | 점진적 |
| 롤백 | 즉시(트래픽 되돌림) | 되감기 필요 |
| 자원 | 2배 일시 필요 | 적게 |
2. 공통 전제
- 로드밸런서가 헬스체크 통과한 인스턴스에만 트래픽
- graceful shutdown — 기존 요청 처리 후 종료
- DB 마이그레이션은 신·구 동시 호환되게(expand-contract)
3. 함정
- 헬스체크가 너무 단순하면 "켜졌지만 준비 안 된" 인스턴스로 트래픽 → 에러
- 세션을 메모리에 두면 전환 시 로그아웃 — 외부 세션 저장소
- 마이그레이션이 구버전과 비호환이면 롤백 불가
자주 묻는 질문
blue-green과 rolling 중 뭐가 낫나요?
즉시 롤백과 단순함이 중요하면 blue-green, 자원 절약과 점진 배포가 중요하면 rolling입니다. 트래픽·자원 여건에 맞춰 고르세요.
무중단인데 가끔 에러가 납니다.
헬스체크가 앱의 실제 준비 상태를 반영하지 못하거나, 종료 중인 인스턴스가 요청을 끊어서일 수 있습니다. readiness 체크와 graceful shutdown을 점검하세요.

댓글 0