Health Check

헬스 체크는 살아 있음과 트래픽 수신 가능 상태를 분리해서 본다

장애 서버를 제외하는 목적은 같지만, liveness와 readiness를 섞으면 일시적인 의존성 장애가 재시작 폭풍으로 번질 수 있다.

liveness는 프로세스 자체가 멈췄는지 보는 얕은 체크에 가깝다.
readiness는 현재 트래픽을 받아도 되는지 판단한다.
threshold와 drain 시간을 함께 조정해야 흔들림이 줄어든다.
/live 얕은 생존 확인 프로세스, 이벤트 루프, 기본 HTTP 응답만 빠르게 본다.
App processalive
keep
/ready 트래픽 수신 가능 여부 필수 DB, 캐시, 마이그레이션 상태처럼 요청 처리에 필요한 조건을 본다.
api-1ready, traffic on
healthy
!
api-2DB timeout, traffic off
unhealthy
Threshold 판정 흔들림 방지 한 번 실패했다고 바로 제외하지 않고, 연속 실패/성공 횟수와 timeout을 둔다.
3
unhealthy threshold3 failures
drain