[Spring] 무중단 배포 기술 스택 도입 결정하기(2)
무중단 배포 기술 스택 도입 결정하기(2)- L4, L7 스위치, Nginx
무중단 배포 구현 방식에는 어떤 것이 있을까?
3. L4, L7 스위치를 이용한 무중단 배포
- OSI 7계층중 각 4계층 7계층에서 동작한다는 의미인데 L4는 IP,Port 데이터, L7는 추가적으로 URL, HTTP HOST 정보까지 볼 수 있다
- L4, L7 스위치는 네트워크 장비로서 로드 밸런서를 통해 네트워크 트래픽을 분산하고 처리한다
- 스위칭하여 무중단 배포 가능
BUT 비용이 상대적으로 높고 복잡!!
4. Nginx를 이용한 무중단 배포
- Nginx는 간단 제일 저렴해서 많이 사용하고 있는 방법이라고 한다
- 리버스 프록시 및 로드 밸런싱을 통해 대량의 트래픽을 안정적으로 관리한다
- Nginx의 Reload 기능을 이용하여 무중단 배포를 구현할 수 있다
(하나의 서버에 Nginx 1대와 스프링부트 jar을 2대 사용하는 구조) - 1) Nginx는 기본적으로 80번 포트에서 HTTP 요청을 / 443번 포트에서 HTTPS 요청을 받는다
2) 스프링부트 1 -> 8081, 스프링부트 2 -> 8082 라고 했을 때
3) 처음에 8081로 요청 > 신규 배포 필요시 8082로 연결 > 정상 구동 중이면 8082로 Reload
4) Nginx Reload는 1초 이내에 실행완료되고 이 과정이 반복된다
5) 배포하는 동안에도 서비스는 중단되지 않는다
BUT
별도의 로드 밸런서나 리버스 프록시가 필요하며, 이를 구성하는데 시간이 소요될 수 있음.
Nginx 설정에 대한 이해가 많이 필요하다
This post is licensed under CC BY 4.0 by the author.