스물두줄

정보관리기술사 · 개념서 · 소프트웨어 공학

무중단 배포

설명 영상 무중단 배포 · 2:25

왜 배우는가: 무중단 배포는 금융·전자상거래처럼 거의 24시간 서비스가 필요한 분야에서 배포 중단이 곧 재정 손실로 이어지므로 중요하다. 배포 주기가 짧아지면서 배포 자체가 중단의 주요 원인이 되었고, 그래서 시험에서 배포 방식 비교와 함께 반복해서 출제된다.

출제 이력: 제139회 1교시 5번, 제127회 2교시 2번

1. 한 줄 정의와 핵심 키워드

무중단 배포는 서비스 접속을 끊지 않은 채 신버전 소프트웨어를 운영 환경에 반영하는 배포 방식이다.

핵심 키워드

  • 무중단 배포(Zero-downtime Deployment)
  • 블루-그린 배포(Blue-Green Deployment)
  • 카나리 배포(Canary Deployment)
  • 롤링 배포(Rolling Deployment)
  • 로드밸런서(Load Balancer)
  • 헬스체크(Health Check)
  • 롤백(Rollback)
  • 가용성(Availability)

2. 개념 풀이

쉬운 말로 하면, 서비스가 돌아가는 도중에 프로그램을 새 버전으로 바꾸되 사용자가 접속할 수 없는 순간을 없애는 것이다. 예전에는 점검 시간을 정해 서버를 멈추고 배포했지만, 지금은 고객이 언제든 접속하므로 점검 시간을 잡기 어렵다.

정식으로 정의하면, 무중단 배포는 운영 중인 서비스의 가용성을 유지하면서 신버전 애플리케이션을 설치하고 전환하며, 필요하면 이전 버전으로 되돌릴 수 있도록 설계한 배포 기법의 총칭이다. 기법마다 전환 방식이 다르며, 여러 서버를 순차적으로 교체하거나 두 환경 사이에서 트래픽을 옮기는 방식이 대표적이다.

핵심 용어는 세 가지다. 가용성은 서비스가 요청을 받아 처리할 수 있는 상태를 유지하는 정도이며, 가동 시간의 비율로 표현한다. 다운타임은 서비스가 사용자 요청을 처리하지 못하는 시간이다. 무중단 배포의 목표는 배포 과정에서 다운타임을 0에 가깝게 만드는 것이다. 트래픽 전환은 로드밸런서 설정을 바꿔 요청이 도달하는 서버 집합을 바꾸는 작업이다. 이 전환이 빠르고 안전할수록 배포 중 사용자 영향이 줄어든다.

3. 등장 배경과 필요성

전통적인 배포는 빅뱅(big-bang) 배포 방식이 많았다. 모든 기능을 한 번에 릴리스하므로 배포 동안 서비스를 멈춰야 했고, 실패하면 전체 기능이 영향을 받았다. 복구도 한꺼번에 이뤄져 중단 시간이 길어지는 문제가 있었다.

배포 주기가 짧아지면서 이 문제는 더 커졌다. 구글 크롬은 2010년 7월 새 안정 버전 출시 속도를 높이면서 주요 안정 업데이트 주기를 분기별에서 6주로 줄였다. 웹 서비스와 모바일 서비스가 기능을 자주 추가하는 방향으로 움직이면, 배포 한 번마다 생기는 중단이 누적되어 전체 가용성을 떨어뜨린다.

다운타임의 비용은 산업마다 크다. 은행과 금융기관, 전자상거래, 온라인 거래 처리, 의료 정보 시스템, 항공 분야는 거의 24시간 서비스를 요구한다. 이런 분야에서 배포 중단은 거래 기회 상실이나 계약 위반에 따른 재정 손실로 이어질 수 있다. 중단 시점도 중요하다. 피크 시간대의 중단이 가장 큰 영향을 주므로, 배포 시점을 골라 피하는 방법만으로는 한계가 있다.

필요성은 네 가지로 정리된다.

  • 비즈니스 연속성: 매출과 고객 신뢰를 배포 중에도 지킨다.
  • 배포 빈도 대응: 자주 배포해도 사용자가 중단을 느끼지 않게 한다.
  • 위험 관리: 신버전 결함이 전체 사용자에게 퍼지기 전에 일부 사용자에게서 먼저 검증한다.
  • 자동화 기반: CI/CD와 DevOps가 배포를 자주, 안전하게 반복하도록 돕는다.

위험 관리 측면에서 모바일 앱 스토어나 대형 서비스는 전체 사용자가 아닌 1%, 5%, 50% 단계처럼 일부 그룹에 먼저 배포하고, 오류와 과부하를 모니터링한 뒤 대상을 넓힌다. 이것이 카나리 배포와 닮은 전략이다. 카나리라는 이름은 탄광에서 카나리아를 위험 신호로 쓴 관행에서 왔다고 설명된다. 블루-그린 방식은 동일한 두 환경을 두고 트래픽을 옮기는 방식으로, 방식의 세부 절차는 4절과 6절에서 다룬다.

결국 배포 중 중단 시간은 가용성을 직접 떨어뜨리는 손실 요인이며, 무중단 배포는 이 손실을 구조적으로 줄이려는 요구에서 등장했다.

4. 구성요소·원리·절차

무중단 배포는 신버전을 올리는 동안에도 사용자 요청이 끊기지 않도록 트래픽 경로를 제어하는 체계다. 구성요소는 로드밸런서, 헬스체크, 세션 드레이닝, 배포 제어기로 나뉜다.

구성요소역할무중단에서의 의미
로드밸런서(Load Balancer)요청을 여러 인스턴스로 분산구버전·신버전 사이 트래픽 전환 지점
헬스체크(Health Check)인스턴스 정상 여부 주기 점검비정상 신버전으로의 유입 차단
세션 드레이닝(Connection Draining)기존 연결을 끝까지 처리 후 제거진행 중 요청 유실 방지
배포 제어기교체 순서·비율·롤백 조건 관리자동 전환과 자동 롤백 수행

각 구성요소는 독립적으로 동작하지 않는다. 로드밸런서가 트래픽을 바꾸기 전에 헬스체크가 신버전 준비 상태를 확인하고, 드레이닝이 끝난 뒤에야 구버전을 내린다.

원리는 '새 버전을 옆에 세우고, 검증된 만큼만 트래픽을 옮긴다'이다. 문제가 생기면 트래픽을 이전 버전으로 되돌리면 되므로 장애 범위가 줄어든다. 여기서 무중단의 핵심은 트래픽 전환과 롤백을 자동화하는 것이다. 이 원리는 롤링, 블루-그린, 카나리 방식에 공통으로 적용된다.

배포 절차는 다음과 같다.

  • 신버전 이미지와 설정 파일을 패키징하여 아티팩트 저장소에 등록한다.
  • 신버전 인스턴스를 기존 풀과 분리된 상태로 기동하고 헬스체크를 통과시킨다.
  • 로드밸런서 가중치를 조정해 소량의 트래픽을 신버전으로 보낸다.
  • 에러율, 응답 시간, 자원 사용량을 모니터링하여 정상 여부를 판단한다.
  • 이상이 없으면 트래픽 비율을 단계적으로 높인다.
  • 전환이 끝나면 세션 드레이닝 후 구버전 인스턴스를 종료한다.
  • 이상이 감지되면 가중치를 구버전으로 되돌리는 자동 롤백을 수행한다.

단계 3의 초기 비율은 보통 1~5% 수준으로 시작하고, 모니터링 기간을 두고 단계적으로 확대한다. 확대 단계 수와 대기 시간은 서비스 특성에 맞춰 정한다.

무중단 배포 절차

이 절차에서 모니터링 판정 단계가 빠지면 무중단 배포가 아니라 무검증 배포가 된다. 답안에는 절차를 번호로 쓰고, 롤백 경로를 반드시 표시한다.

5. 관련 법령·기준·표준

무중단 배포를 직접 규정한 단일 법령은 확인된 것이 없다. 다만 가용성과 장애 대응 요구는 여러 기준에서 간접적으로 다룬다.

항목기준 값·조건근거
고가용성(HA) 가동률99.999% 가동 수준을 HA로 간주웹 자료(fineweb_kr)
HA 다운타임 한 번의 지속몇 초~몇 분 이내웹 자료(fineweb_kr)
카나리 초기 트래픽 비율1%, 5%, 50% 단계로 확대웹 자료(wiki_ko, 패치 배포 방식)
블루-그린 전환 방식동일한 두 프로덕션 환경, 트래픽 일괄 전환 후 필요 시 복귀웹 자료(fineweb_edu_ko)
롤링 교체인스턴스를 순차적으로 교체일반 교재 기준
연결 드레이닝기존 연결 종료 대기 후 인스턴스 제거일반 교재 기준

위 표의 값 중 99.999% 가동은 자료에 명시된 값이다. 1%, 5%, 50%는 모바일 단계 배포 사례의 값이므로 서버 배포에 그대로 적용하는 것은 조건에 따라 달라진다.

서버 배포 관련 국가 인증 기준은 조직의 정책과 규제 산업(금융·공공)의 요구사항에 따라 별도로 확인해야 한다.

99.999% 가동은 연간 허용 다운타임이 매우 짧은 고가용성 수준이다. 이 값은 답안에서 HA 기준을 설명할 때 쓴다.

6. 유형과 비교(비교표 2개 이상)

무중단 배포는 신버전을 트래픽에 넣는 방식에 따라 나뉜다. 가장 많이 쓰는 기준은 롤링 배포(Rolling Deployment), 블루-그린 배포(Blue-Green Deployment), 카나리 배포(Canary Deployment) 세 가지다. 세 방식은 인스턴스 수, 전환 속도, 롤백 방법이 서로 다르다.

이어지는 내용

로그인하면 하루 2페이지까지 무료로 전체를 읽을 수 있습니다.

앱에서 이 단원 읽기