피드로 돌아가기
Deploy Your Apps with 0 downtime Part 1 (Blue-Green Deployment)
Dev.toDev.to
DevOps

Nginx와 Docker를 활용한 Blue-Green 전략으로 배포 Downtime 0ms 달성

Deploy Your Apps with 0 downtime Part 1 (Blue-Green Deployment)

satriaherman2026년 5월 21일8beginner

Context

단일 인스턴스 기반의 배포 구조에서 새 버전 적용을 위해 기존 컨테이너를 중지하는 과정 중 서비스 불가 상태 발생. Stop 및 Remove 단계에서 발생하는 502 Bad Gateway 응답으로 인한 사용자 경험 저하 및 가용성 결여 문제를 분석함.

Technical Solution

  • Active와 Standby 역할을 수행하는 두 개의 동일한 App Service(Blue/Green) 구성으로 가용성 확보
  • Nginx Load Balancer를 통한 Traffic Routing 제어로 버전 간 전환 메커니즘 구현
  • 신규 버전 배포 시 --no-deps 옵션을 통한 Active 컨테이너의 영향을 배제한 독립적 빌드 및 실행
  • /api/health-check 엔드포인트 기반의 Health Check 루프를 통해 서비스 정상 상태 검증 후 Traffic 전환 수행
  • Nginx 설정 파일의 동적 업데이트 및 nginx -s reload 명령어를 통한 무중단 트래픽 스위칭 처리

- 서비스 가용성 보장을 위한 Health Check 전용 API 엔드포인트 설계 여부 확인 - Docker Compose 환경에서 `--no-deps` 옵션을 통한 서비스 간 의존성 분리 및 독립 배포 적용 - 트래픽 전환 전 신규 인스턴스의 Warm-up 및 상태 검증 프로세스 자동화 여부 검토 - Nginx Upstream 설정을 통한 런타임 트래픽 라우팅 변경 전략 수립

원문 읽기