Day 69 · 2/5
🌳 고급 인프라

헬스체크(Health Check)가 뭔가요?

쉽게 이해하기

심장박동 모니터를 생각해보세요. 병원에서 환자의 심박수를 계속 측정해서 이상이 생기면 알람이 울리잖아요. 서버도 마찬가지로 특정 URL에 주기적으로 요청을 보내서 응답이 정상적으로 오는지 확인해요. 응답이 없거나 에러가 나면 서버에 문제가 있다고 판단하는 거죠.

핵심 정리

서버가 정상적으로 작동하는지 주기적으로 확인하는 기능이에요.

자세히 알아보기

헬스체크는 서버나 애플리케이션이 정상적으로 동작하는지 모니터링하는 엔드포인트예요. 보통 /health 또는 /healthz 같은 URL로 만들어지고, 로드밸런서나 모니터링 시스템이 주기적으로 이 URL에 요청을 보내요. 간단한 헬스체크는 단순히 200 OK 응답만 반환하지만, 더 정교한 경우에는 데이터베이스 연결 상태, 캐시 서버 연결, 디스크 용량, 메모리 사용률 등을 실제로 확인해요. 예를 들어 DB 연결이 끊어졌다면 서버가 켜져있어도 정상 동작할 수 없으니 헬스체크가 실패해야겠죠. 실무에서는 두 가지 종류의 헬스체크를 사용해요. Liveness probe는 서버가 살아있는지만 확인하고, 실패하면 서버를 재시작해요. Readiness probe는 서버가 트래픽을 받을 준비가 됐는지 확인하고, 실패하면 로드밸런서가 해당 서버로 요청을 보내지 않아요. 예를 들어 서버가 시작 중이거나 배포 중일 때는 readiness가 실패하지만, liveness는 성공할 수 있어요. Kubernetes, AWS ELB, Docker Swarm 같은 시스템들이 모두 헬스체크를 사용해서 자동으로 장애를 감지하고 복구해요. 서버 한 대가 죽어도 서비스가 계속 동작하는 비결이에요.