[Spring] Graceful Shutdown
eelseungmin
들어가며모두의 회식 백엔드에는 운영을 대비해서 무중단 배포를 적용했었다. 즉, 새로운 버전의 코드가 배포되더라도 사용자 입장에서는 마치 끊김 없이 서비스가 지속되는 것처럼 보이기 위한 것이다.여러 전략 중 Blue/Green 배포 전략을 선택했는데, 백엔드에선 하나의 인스턴스를 사용하고 있으며 인스턴스를 추가하지 않고도 Nginx가 가리키는 컨테이너만 변경하는 간단한 방식이 적합하다고 생각했기 때문이다. 무중단 배포에 대한 조사를 하면서 고민이 필요한 부분이 있었는데 아래에서 이어가도록 하겠다. Graceful Shutdown배포가 이루어질 때 구버전의 서버에서 요청을 처리하다가 응답이 완료되지 않은 시점에 구버전으로 향하는 포트가 끊기고 신버전의 서버가 실행된다고 가정하자.이때 처리가 끝나지 않은 요청..