Day 70 · 5/5
🌳 고급 인프라

Blue-Green 배포가 뭔가요?

쉽게 이해하기

공연장에 무대가 두 개 있어요. 관객은 파란 무대(기존 버전)를 보고 있고, 그 사이 녹색 무대(새 버전)에서 리허설을 해요. 리허설이 끝나면 조명을 확 바꿔서 관객이 녹색 무대를 보게 하는 거예요. 문제가 생기면 다시 파란 무대로 조명을 돌리면 되죠.

핵심 정리

새 버전을 준비해두고 한 번에 전환해서 무중단 배포를 하는 방식이에요

자세히 알아보기

Blue-Green 배포는 무중단 배포(Zero Downtime Deployment) 전략 중 하나예요. 서비스를 멈추지 않고 새 버전으로 업데이트하는 방법이죠. 동작 방식은 이래요. 현재 운영 중인 서버를 'Blue'라고 하면, 새 버전을 'Green' 서버에 배포해요. Blue는 계속 사용자 요청을 처리하고, Green에서는 새 버전이 제대로 동작하는지 테스트해요. 테스트가 끝나면 로드 밸런서나 DNS 설정을 바꿔서 트래픽을 Green으로 보내요. 이 전환이 몇 초 안에 일어나니까 사용자는 서비스 중단을 못 느껴요. 장점은 안정성이에요. Green에서 문제가 생기면 다시 Blue로 돌리면 되니까 롤백이 즉시 가능해요. 또 배포 중에도 서비스가 멈추지 않으니까 대규모 서비스에서 많이 써요. 새 버전을 배포하기 전에 충분히 테스트할 시간도 있고요. 단점은 비용이에요. 같은 서버를 두 배로 띄워야 하니까 배포하는 동안 서버 비용이 두 배가 돼요. 또 데이터베이스 스키마가 바뀌는 배포는 복잡해요. Blue와 Green이 같은 DB를 쓰는데 스키마가 다르면 문제가 생기거든요. 이럴 땐 DB 마이그레이션을 먼저 하고, 양쪽 버전이 모두 호환되게 만들어야 해요. 실무에서는 AWS, Google Cloud 같은 클라우드 서비스에서 Blue-Green 배포를 자동화해주는 도구를 제공해요. Kubernetes도 Blue-Green 배포를 지원하고, Vercel 같은 플랫폼도 비슷한 원리로 무중단 배포를 해줘요.