다운타임(Downtime)과 무중단 배포(Zero Downtime Deployment)

다운타임이란?
다운타임(Downtime)은 서버나 애플리케이션이 정상적으로 서비스를 제공하지 못하는 시간입니다.
사용자가 서비스에 접속할 수 없거나 요청이 실패하는 상태가 되면 다운타임이 발생했다고 합니다.
이 글에서는 서비스 중단 없이 배포하는 전략을 설명합니다.
다운타임의 주요 원인
배포 / 서버 재시작
- 애플리케이션 업데이트 시 기존 서버를 중단하고 새 서버를 올리는 동안 공백이 발생
장애 및 오류
- 서버 다운, 네트워크 문제, DB 장애 등으로 서비스 불가 상태 발생
인프라 작업
- 서버 점검, 네트워크 변경, 스케일링 중 일시적 중단
다운타임의 문제점
서비스 접속 불가 → 사용자 경험 저하
결제 / 주문 서비스의 경우 → 직접적인 매출 손실
요청 중단으로 인한 데이터 정합성 깨짐
다운타임을 줄이기 위한 방법 : 무중단 배포 (Zero Downtime Deployment)
무중단 배포는 애플리케이션을 배포하는 동안에도 서비스가 중단되지 않도록하는 배포 방식으로, 사용자는 서버가 배포 중이라는 사실을 인식하지 못하고 서비스를 계속 이용할 수 있습니다. 무중단 배포를 위해서는 최소 2대 이상의 서버 또는 환경이 필요합니다.
이 과정에서 로드 밸런서(Load Balancer) 는 매우 중요한 역할을 합니다.
로드 밸런서는 트래픽을 여러 서버에 분산시키는 장치로, 배포 중 다운타임을 막기 위해 정상 서버만 트래픽을 받도록 라우팅합니다.
무중단 배포의 대표적 전략
1. Blue-Green Deployment
✔️ 개념
두 개의 환경(Blue: 현재 버전 / Green: 새 버전)을 동시에 유지
로드 밸런서는 초기에는 Blue 환경에만 트래픽 전달
Green 환경에서 새 버전을 배포하고 테스트 후, 로드밸런서 트래픽을 한 번에 Green으로 전환
문제가 생기면 Blue로 빠르게 롤백 가능
장점
빠른 롤백: 로드 밸런서만 전환하면 즉시 기존 환경으로 복구 가능
안정성 높음: 두 환경이 완전히 분리돼 있어 테스트와 배포 안전성 확보
단점
리소스 2배 필요: Blue/Green 환경을 동시에 유지해야 하므로 인프라 비용 증가
DB 동기화 문제: 스키마 변경 시 두 환경 간 데이터 일관성 관리 복잡
트래픽 전환 순간의 세션 관리 필요: 스위칭 시 세션 유지 전략 필요
2. Rolling Update
✔️ 개념
서버 인스턴스를 하나씩 업데이트 하면서 점진적으로 새 버전으로 교체
로드 밸런서는 업데이트 중인 서버를 헬스 체크에서 제외해 트래픽 전달을 막고, 완료 후 다시 등록
항상 일부 인스턴스는 기존 버전을 유지 → 다운타임 없음
장점
리소스 효율적: Blue-Green처럼 환경을 2개 유지할 필요 없음
점진적 배포: 일부 서버부터 업데이트해 문제가 발생하면 빠르게 중단 가능
자동화 용이: Kubernetes, AWS 같은 오케스트레이션 도구에서 기본 제공
단점
롤백 속도 느림: 전체 서버 중 일부가 이미 새 버전으로 바뀌면 되돌리는 데 시간 필요
새 버전과 구 버전 공존: 배포 중에는 두 버전이 동시에 존재 → 호환성 문제 가능
트래픽 분산 주의: 업데이트 중 서버 수가 줄어들면 트래픽이 몰려 부하 발생 가능
3. Canary Deployment
✔️개념
로드 밸런서 또는 트래픽 라우팅 규칙을 이용해 일부 사용자/트래픽에게만 새 버전으로 전달
문제가 없으면 점진적으로 전체로 확장
문제 발생 시 영향 범위 최소화 가능
장점
위험 최소화: 일부 트래픽에게만 새 버전을 먼저 적용 → 문제 발생 시 영향 최소
실제 트래픽 테스트: 실제 사용자 환경에서 새 버전을 테스트 가능
확장성 높음: 안정성 확인 후 단계적으로 100% 배포 가능
단점
설정 복잡: 특정 사용자 그룹에게만 새 버전 라우팅하는 로직 필요
롤백 시 복잡성: Canary 버전에서 발생한 데이터를 기존 버전과 동기화해야 할 수도 있음
장시간 모니터링 필요: 단계적으로 배포하므로 지속적인 관찰 필요
Subscribe to my newsletter
Read articles from 갱갱 directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
