블루-그린 배포란? 무중단 배포 전략 이해하기

블루-그린 배포의 정의

블루-그린 배포(Blue-Green Deployment)는 서비스 중단 없이 새 버전을 배포하기 위한 전략입니다. 동일한 환경을 두 개(블루, 그린) 준비해 놓고, 한쪽은 현재 운영 중인 버전(블루)으로, 다른 한쪽은 새로 배포할 버전(그린)으로 구성합니다. 사용자의 트래픽은 처음에 블루 환경으로만 흐르다가, 그린 환경에서 배포와 테스트가 완료되면 트래픽을 한 번에 그린으로 전환합니다. 이렇게 하면 배포 도중 서비스가 멈추는 다운타임 없이 새 버전을 적용할 수 있습니다.

동작 원리와 예시

비유하자면, 두 개의 무대를 준비해 놓고 공연하는 것과 비슷합니다. 관객(사용자)은 항상 1번 무대(블루)를 보고 있고, 그 사이 2번 무대(그린)에서는 다음 공연을 미리 세팅하고 리허설까지 마칩니다. 준비가 끝나면 조명을 2번 무대로 바꾸는 순간, 관객은 끊김 없이 새로운 공연을 보게 됩니다.

실제 배포 과정은 대략 다음과 같습니다.

  • 현재 블루 서버가 실제 트래픽을 처리 중
  • 그린 서버에 새 버전 애플리케이션을 배포
  • 그린 환경에서 내부 테스트 및 검증 진행
  • 로드밸런서나 라우팅 설정에서 트래픽을 그린으로 전환
  • 문제가 없으면 블루는 다음 배포를 위한 대기 환경으로 전환

만약 그린 환경에서 예상치 못한 오류가 발견되면, 트래픽을 다시 블루로 되돌리기만 하면 되므로 롤백도 매우 빠르게 처리할 수 있습니다.

실무에서 왜 사용할까?

실무에서 블루-그린 배포를 선호하는 이유는 크게 두 가지입니다. 첫째, 배포로 인한 서비스 중단 시간을 최소화할 수 있다는 점입니다. 특히 24시간 운영되는 서비스나 트래픽이 많은 서비스일수록 잠깐의 다운타임도 큰 손실로 이어질 수 있기 때문에, 무중단 배포는 중요한 요구사항이 됩니다. 둘째, 배포 실패 시 대응이 빠르다는 점입니다. 문제가 생기면 코드를 되돌리는 복잡한 작업 없이 트래픽 라우팅만 원래대로 돌리면 되므로, 장애 대응 시간을 크게 줄일 수 있습니다.

다만 두 개의 운영 환경을 동시에 유지해야 하므로 인프라 비용이 늘어나고, 데이터베이스 스키마 변경처럼 두 버전 간 호환성이 필요한 작업에서는 별도의 전략이 필요하다는 점도 함께 고려해야 합니다. 그럼에도 안정성과 신속한 롤백이 중요한 서비스에서는 여전히 널리 채택되는 배포 전략입니다.

댓글 남기기