Rolling 배포 기법
Rolling 배포 또는 Rolling 업데이트라고도 불립니다.
새로운 버전의 애플리케이션이 한번에 하나씩 배치 형태로 배포가 됩니다.
새로운 버전이 배포될 때마다 구버전이 하나씩 제거되는 방식입니다.
예를 들어 총 5대의 인스턴스를 운영할 때, Rolling 배포를 하면 총 6대의 인스턴스가 운영되는 것이 아니라 구버전의 인스턴스 하나가 제거가 되어 동일하게 운영되는 인스턴스는 5대입니다.
자원이 한정적인 경우에 Rolling 배포가 적합합니다.
Rolling 배포에는 몇 가지 단점이 존재합니다.
1. 2개의 다른 버전 애플리케이션이 하나의 트래픽을 처리하기 때문에 사용자 입장에서는 구버전/신버전을 둘 다 사용하게 되는 문제점이 있음
2. 구버전이 모두 제거되어 롤백하는데 어려움이 있음
이러한 단점들은 Blue/Green 배포 기법을 활용하면 해결이 가능합니다.
Blue/Green 배포 기법
동일한 버전의 서비스를 운영하기를 원할 때 사용하는 배포 방식입니다.
Blue/Green 배포는 구버전과 새버전을 동시에 나란히 구성하며 Blue는 구버전, Green은 새버전을 의미합니다.
Blue/Green 배포 기법에는 몇 가지 장점이 있습니다.
1. 운영환경에 영향을 주지 않고 새로운 버전을 테스트 가능
새로운 버전의 애플리케이션이 구성이 되었더라도 직접 사용자의 트래픽을 처리하지 않습니다.
단, 새로운 버전을 테스트할 때는 새로운 DNS 주소로 접근하게끔 설정을 해야 할 필요가 있습니다.
또는 포트번호를 다르게 해서 접근하도록 할 수도 있습니다.
2. 새로운 버전에 문제가 발생했을 때 구버전으로 빠르게 롤백 가능
Blue/Green 배포 시나리오

현재 사용자는 www.example.com 으로 접속 시 Blue 버전으로 접속하게 됩니다.
이때 Blue/Green 배포를 하면 아래 사진처럼 구성이됩니다.

새로운 버전의 애플리케이션이 로드밸런스의 새로운 타겟 그룹으로 등록이 됩니다.
호스트 기반 라우팅을 사용했기 때문에 www.example.com에 대한 요청을 Blue 서비스로 전달되고 next.example.com에 대한 요청은 Green 서비스로 전달됩니다.
next.example.com에 접속하여 운영환경을 테스트를 할 수 있습니다.
이후 새로운 버전에 대한 문제가 없다고 판단되면 구버전 Blue에 대한 타겟 그룹을 삭제하고 호스트 네임만 next에서 www로 변경하면 아래와 같이 새로운 버전만 남게 됩니다.
