뉴스타 프로젝트는 CI/CD 과정에서 서비스가 중단되는 문제점이 존재했다. 이를 해결하고자 블루-그린 배포 전략을 도입하기로 했고 새로운 서버의 상태를 체크하는 Health Checking 과정이 필요했다. 단순히 서버에 ping을 쏴서 확인하는 방법도 있었지만 지원하는 라이브러리와 프로젝트 상황에 맞게 API를 만들어보려고 한다.
1. Health Check 란?
서버가 정상적으로 작동하고 있는 지를 체크하고자 하는 것
1.1 Health Check 방법
Docker 명령어
Docker에서 Health Check를 위한 명령어가 존재한다.
HEALTHCHECK 명령어를 사용해서 컨테이너의 상태를 파악할 수 있다.
interval, timeout, retries를 통해 간격, 타임아웃, 타임아웃 횟수를 지정할 수 있다.
API 응답
Health Check를 위한 API를 만들어 정상적으로 응답이 오는지 확인하는 방법이다.
Health Check 기준을 개발자가 원하는 방법을 사용할 수 있다.
2. 프로젝트 적용
Docker Container가 정상이지만 서버가 올라가는 짧은 시간에 사용자 요청을 처리할 수 없는 상황이 있다는 것을 알았다. 그래서 API를 제작하여 정상적인 응답이 오는 것을 기준으로 Health Check를 만들었다.