AWS Route53의 헬스체크(Health Check)는 도메인의 트래픽을 정상 서버로만 보내기 위해 상태를 자동으로 감지하는 기능이다. 특히 멀티리전 구성이나 장애 자동 복구(Failover) 구성에서 필수 요소다.
아래에서 헬스체크가 판단하는 정상/비정상 기준, 체크 방식, 주요 옵션 등을 상세히 정리해줄게.
🔍 1. 헬스체크 기본 동작 방식
Route53 헬스체크는 전 세계 AWS 헬스체커(Health Checker) 서버들이 지정된 엔드포인트(웹 서버, LB, IP 등)로 주기적으로 요청을 보내며 정상 여부를 판단한다.
- 기본 체크 간격: 30초
- 고빈도 체크: 10초
- 최소 15개 이상의 글로벌 노드에서 측정 후 과반수 이상이 실패하면 비정상 판정
🧪 2. 헬스체크 판단 기준
✅ 정상(Healthy)
아래 조건을 만족하면 정상으로 인식한다:
- 헬스체커가 ping/HTTP/HTTPS 요청에 정상 응답(2xx~3xx) 을 반환했을 때
- TCP 연결이 세션 정상 성립
- 응답 시간(타임아웃) 이내 응답 도착
- “Expected String”이 응답 안에 존재할 때 (선택 옵션)
❌ 비정상(Unhealthy)
아래 중 하나라도 발생하면 비정상 처리:
- 지정한 포트로 응답 없음 (Timeout)
- HTTP 상태코드가 4xx 또는 5xx
- 접속은 되지만 응답 본문에 Expected String 없음
- TCP 연결 자체가 실패
📌 참고: 3개 연속 실패하면 Unhealthy,
3개 연속 성공하면 다시 Healthy 로 전환된다(기본값).
🏥 3. 헬스체크 방식 종류
1) HTTP / HTTPS 체크
가장 많이 쓰는 방식
- 특정 URL로 GET 요청
- 상태코드 2xx/3xx → 성공
- 4xx/5xx → 실패
- HTTPS(SSL) 인증 오류는 헬스체크 실패로 간주할 수도 있음
옵션:
- "Expected String" 포함 여부 검사 가능
→ 예: "OK" 문자열이 응답에 포함되어야 정상
2) TCP 체크
웹이 아닌 포트 서비스 확인용
- TCP handshake 성공 → Healthy
- 핸드쉐이크 실패/Timeout → Unhealthy
보통 DB, Redis, Application Port 등에서 사용
3) CloudWatch 기반 체크
직접 엔드포인트를 때리지 않고 CloudWatch 알람 상태로 헬스 여부 판단
- Alarm 상태 → Unhealthy
- OK 상태 → Healthy
- 장애 조치 자동화 시 가장 유연한 방식
🌐 4. 헬스체커 IP 주소
Route53 헬스체커는 AWS 글로벌 네트워크 노드에서 체크한다.
- 헬스체커 IP 목록은 수백 개이며 지속적으로 변동
- 방화벽/보안장비에서 허용하려면
→ AWS Health Checkers IP Range 문서 전체 CIDR 허용 필요
⚙️ 5. 고급 옵션(중요)
✔ Failure Threshold
몇 번 연속 실패하면 Unhealthy 로 볼지 설정
기본: 3
→ 값이 낮을수록 민감하게 장애 감지
✔ Request Interval
체크 주기
- 30초(기본)
- 10초(High frequency)
✔ Latency Measurement
여러 리전 중 가장 빠른 리전 선택할 때 사용
✔ Health Check Regions 선택
장애 조치 환경에 따라 특정 지역만 체크하도록 설정 가능
🚨 6. Failover에서 헬스체크가 적용되는 방식
Route53에서 Primary / Secondary 구성 시:
- Primary = 헬스체크 기준 Healthy → 트래픽 전송
- Primary = Unhealthy → Secondary로 자동 전환
- Primary가 회복되면 자동 복구(Failback)
이 동작을 위해 A 레코드 또는 Alias 레코드에 헬스체크를 연결해야 한다.
📌 7. 헬스체크 Best Practice
- LB에 적용 시 Target Group 상태보다 Route53 헬스체크가 더 느릴 수 있음
- 보안 장비에 AWS 헬스체커 IP 전체 허용 필수
- 예상 문자열(“Expected String”)을 넣으면 오탐 방지 가능
- 장애 확인 시간 = (Failure Threshold × Interval)
예) 3 × 10초 = 약 30초
마무리
Route53 헬스체크는 단순히 “죽었는지 보는 체크”가 아니라,
전 세계 노드에서 주기적으로 검증해 Failover와 고가용성을 보장하는 핵심 기능이야.