기존 방식은 긴 기간은 아니지만, 새로운 Jar가 실행되기 전까진 기존 Jar를 종료시켜 놓기 때문에 서비스가 중단된다.
서비스를 중단하지 않고 배포할 수 있는 방법을 무중ㄷ안 배포라고 한다.
이외에도 L4 스위치를 이용한 무중단 배포 방법도 있지만, L4가 워낙 고가 장비이다 보니 대형 인터넷 기업 외에는 쓸일이 거의 없다.
이번 장에서는 엔진엑스를 이용한 무중단 배포를 할 것이다. 엔진엑스는 웹 서버, 리버스 프록시, 캐싱, 로드 밸런싱, 미디어 스트리밍 등을 위한 오픈소스 소프트웨어이다.
엔진엑스가 가지고 있는 여러 기능 중 리벅스 프록시가 있다. 리버스 프록시란 엔진엑스가 외부의 요청을 받아 백엔드 서버로 요청을 전달하는 행위를 이야기 한다.리버스 프록시 서버(엔진엑스)는 요청을 전달하고, 실제 요청에 대한 처리는 뒷단의 웹 애플리케이션 서버들이 처리한다.
엔진엑스를 이용하는 이유는 간단하다. 가장 저렴하고 쉽기 때문이다.
구조는 간단하다. 하나의 EC2 혹은 리눅스 서버에 엔진엑스 1대와 스프링 부트 Jar 2대를 사용하는 것이다.
엔진엑스 무중단 배포1은 다음과 같은 구조가 된다.
1.1 버전으로 신규 배포가 필요하면, 엔진엑스와 연결되지 않은 스프링 부트2(80802 포트)로 배포한다.