이것저것 개발기록

"서비스 중단 없는 업데이트" 무중단 배포 전략(Blue-Green, Rolling, Canary) 본문

IT 이야기

"서비스 중단 없는 업데이트" 무중단 배포 전략(Blue-Green, Rolling, Canary)

Garam Kim 2026. 1. 10. 12:00

"배포할 때마다 서버를 잠시 꺼야 할까요?"
사용자는 서비스가 업데이트되는 줄도 모르게, 조용하고 안전하게 새로운 버전을 반영하는 무중단 배포의 세 가지 핵심 전략을 정리합니다.

1. 롤링 배포 (Rolling Update)

가장 일반적인 방식입니다. 여러 대의 서버 중 일부를 순차적으로 새로운 버전으로 교체합니다.

  • 장점: 추가적인 서버 자원이 많이 필요하지 않습니다.
  • 단점: 배포 중에는 서버 대수가 줄어들어 부하가 집중될 수 있고, 구버전과 신버전이 공존하는 시간이 발생합니다.

2. 블루-그린 배포 (Blue-Green Deployment)

구버전(Blue)과 동일한 수의 신버전(Green) 서버를 미리 다 띄워놓고, 로드밸런서를 통해 트래픽을 한 번에 전환합니다.

  • 장점: 구버전/신버전 공존 문제가 없고, 문제 발생 시 즉시 롤백이 가능합니다.
  • 단점: 서버 자원이 정확히 두 배로 필요하여 비용 부담이 큽니다.

3. 카나리 배포 (Canary Deployment)

광산의 카나리아처럼, 소수의 사용자에게만 먼저 신버전을 노출하여 테스트한 뒤 점진적으로 트래픽을 늘립니다.

  • 장점: 실제 운영 환경에서 리스크를 최소화하며 성능과 오류를 검증할 수 있습니다.
  • 단점: 트래픽 제어 로직이 복잡해질 수 있습니다.

💡 실무 노트

무중단 배포에서 개발자가 가장 고생하는 지점은 애플리케이션 코드가 아니라 데이터베이스(DB)입니다.

팁: 서버는 신버전인데 DB 스키마가 아직 구버전이라면 에러가 나겠죠? 이를 해결하기 위해 DB 스키마 변경 시에는 '하위 호환성'을 유지하며 배포하는 것이 철칙입니다. 컬럼 삭제 시에도 바로 지우지 않고, 1단계에서 새 컬럼 추가 및 데이터 마이그레이션, 2단계에서 신버전 배포, 3단계에서 구버전 컬럼 삭제라는 '단계적 배포' 프로세스를 몸에 익히는 것이 중요합니다.

"완벽한 배포는 사용자가 배포 사실을 전혀 눈치채지 못하게 하는 것입니다."