[AWS] nginx - Health Check 로 자동으로 서비스 제외하기

Hyunjun Kim·2025년 5월 20일

실습 - (AWS 환경)

목록 보기
17/61

health_check 설정으로, 기준을 충족하지 못하는 서버는 자동으로 upstream 그룹에서 제외할 수 있다.

upstream {
	server $server1 max_fails=3 fail_timeout=30s;
	server $server2 max_fails=3 fail_timeout=30s;
}

wq 저장하고
sudo nginx -s reload

번갈아가면서 1번서버,2번서버 요청이 감.

1번 서버를 죽여보자

요청이 전부 2번 서버로 가는 것을 알 수 있다.

지금은 서버가 완전히 꺼져 있어서 Nginx가 바로 감지하고 요청을 안 보내게 된 것이다.
그런데 서버가 꺼지진 않았지만, 예를 들어 자바스크립트 코드가 너무 오래 걸리는 작업(=롱 러닝)을 처리하느라 바쁘거나, 이벤트 루프에 문제가 생겨서 새로운 요청을 제대로 못 받는 경우도 있을 수 있다. 이런 상황에서도 Nginx가 30초 동안 3번 요청을 보내봤는데 매번 실패하면,
"이 서버 이상하다"라고 판단해서 지금처럼 그 서버를 요청 대상에서 제외함.


위에 헬스체크 방식이 너무 간단하다. 싶을 수 있는데
헬스체크 포트도 별도로 따로 있고 헬스체크용 API path 따로 있는데요 이런 것들은 Active 설정이라고 유료 버전에 이용 가능하게 해두었다.

profile
Data Analytics Engineer 가 되

0개의 댓글