무중단 배포를 위한 여정
·
DevOps/nginx
무중단 배포를 적용하기 위해 프록시 서버로 nginx를 사용했다.(nginx : https://kimdozzi.tistory.com/256) 배포 플로우  Blue-Green 방식가장 흔히 알려진 방식으로 롤링 배포 방식이 있다. 다른 배포 방식이 궁금하다면 https://hudi.blog/zero-downtime-deployment/ 를 참고하자. 해당 방식은 두 대의 서버를 사용한다. 하지만, 나는 EC2 한 대에 도커 컨테이너 두 개를 구축하고, 새 버전의 이미지가 올라올 때만 띄워서 교체하는 방식으로 선택했다. 이전에 선택한 방법은 AWS EC2에서 2개의 Springoot Jar 파일을 포트번호만 달리하여 띄우는 방식이었다. 하지만, 내부적으로 문제가 발생함과 동시에 해당 방식은 무중단 배포가 ..
Nginx? 무중단 배포?
·
DevOps/nginx
무중단 배포?서비스가 중단되지 않은 상태에서 새로운 버전을 배포하는 것 무중단 배포가 필요한 이유?실제 서비스에서 한 대의 서버를 운영한다고 가정하자. 현재 사용중인 서비스의 Version은 application-V1을 배포한 서비스이다. 그런데 기능이 업데이트 되어 application-V2를 배포하려 한다. 이 새로운 버전 V2를 배포하기 위해서는 V2 버전의 빌드 파일을 서버에 배포해야 한다. V1와 V2는 서로 같은 포트를 사용하기 때문에 V2를 배포하기 위해서는 V1버전을 통해 실행하고 있는 서비스를 종료해야만 한다. 이러한 경우, V1이 종료되고 V2 버전이 실행되는 사이 유저가 서비스를 이용할 수 없는 시간이 생기는데, 이를 “다운타임” 이라고 한다.  NginxNginx란 트래픽이 많은 웹..