서비스 가용성을 높이기 위해서 사용자는 항상 정상 동작하는 서버로 연결되어야 하며 장애가 발생한 서버는 즉시 트래픽 분산 대상에서 제외되어야 합니다. 이 역할을 수행하는 기능이 바로 서버 상태 체크입니다. 상태 체크는 로드밸런서가 주기적으로 서버의 응답 여부를 확인하여 트래픽 분산 대상 여부를 판단하는 절차를 의미합니다.
L4 환경에서 활용되는 상태 체크의 개념과 유형, 구성 방법, 실무 팁, 그리고 트러블슈팅 포인트까지 체계적으로 정리해보고, 일부 환경에서는 간단한 L7 수준 검사도 병행할 수 있으므로 선택 기준도 함께 보겠습니다.
Health Check 기본 개념
상태 체크는 로드밸런서가 서버의 생존 여부를 판별하고 결과를 바탕으로 분산 테이블을 갱신하는 절차입니다. 상태 체크는 다음의 세 가지 결과 중 하나로 요약됩니다. 정상 상태는 분산 가능을 의미하고 경고 상태는 응답 지연 또는 간헐 오류를 의미하며 비정상 상태는 분산 제외를 의미합니다. L4 장비는 상태 결과를 실시간으로 반영하여 비정상 서버로의 신규 연결을 차단하고 기존 연결의 처리 정책을 따릅니다. 정책은 즉시 종료 또는 세션 유지 후 자연 종료 중에서 선택할 수 있습니다.
L4 환경에서 주로 쓰는 상태 체크 유형
- TCP 포트 체크 대상 포트에 대한 3웨이 핸드셰이크 성공 여부 확인
- UDP 체크 간단한 요청 응답을 보내고 응답 유무를 확인 장치에 따라 지원 차이 존재
- ICMP 핑 체크 네트워크 연결성만 확인 애플리케이션은 검증하지 못함
- 단순 HTTP 체크 헤더 요청 후 상태 코드 확인 일부 L4 장비에서 제한적으로 지원
- TLS 핸드셰이크 체크 443 포트에서 핸드셰이크 성공 여부 확인 인증서 만료는 별도 검사 필요
L4 장비는 대체로 TCP 기반의 단순 체크에 최적화되어 있습니다. 애플리케이션 논리까지 검증이 필요하면 L7 장비의 심화 검사를 병행하는 구성이 권장됩니다.
상태 체크 동작 매개변수
상태 체크의 민감도와 정확도는 매개변수 설정에 좌우됩니다. 아래 항목을 표준값으로 시작한 후 서비스 특성에 맞게 조정하시길 권장드립니다.
항목 | 의미 | 권장 시작값 | 주의 사항 |
---|---|---|---|
간격 | 체크 주기 초 단위 | 5 초 | 너무 짧으면 부하 증가 너무 길면 장애 감지 지연 |
타임아웃 | 응답 대기 시간 | 3 초 | 네트워크 지연을 고려하여 간격보다 짧게 설정 |
연속 실패 수 | 다운 판정 조건 | 3 회 | 일시적 지연을 다운으로 오판하지 않도록 완충 |
연속 성공 수 | 업 판정 조건 | 2 회 | 플래핑 방지를 위해 최소 성공 횟수 필요 |
검사 포트 | 체크 대상 포트 번호 | 서비스 포트와 동일 | 헬스 전용 포트 별도 운영 시 대상 포트를 명확히 지정 |
서버팜과 가상 서비스 구성 흐름
- 가상 아이피 설정 VIP를 서비스의 진입점으로 지정
- 서버팜 생성 분산 대상 실제 서버를 그룹으로 구성
- 상태 체크 프로브 생성 검사 유형과 매개변수 설정
- 프로브를 서버 또는 서버팜에 바인딩
- 부하 분산 알고리즘 설정 라운드 로빈 또는 최소 접속 등
- 업 다운 전이 정책 설정 세션 유지 또는 즉시 차단
- 모니터링과 로그 활성화 상태 변화 이력 확인
Cisco 스타일 예시 구성 TCP 포트 체크
다음 예시는 TCP 80 포트에 대한 상태 체크를 구성하고 서버팜에 적용하는 흐름을 보여줍니다. 장비에 따라 명령어가 다를 수 있으나 구조와 절차는 거의 동일합니다.
Switch# configure terminal
Switch(config)# ip slb serverfarm SF-WEB
Switch(config-slb-sfarm)# predictor roundrobin
Switch(config)# ip slb probe PROBE-TCP80 tcp
Switch(config-slb-probe)# port 80
Switch(config-slb-probe)# interval 5
Switch(config-slb-probe)# timeout 3
Switch(config-slb-probe)# faildetect 3
Switch(config-slb-probe)# passdetect 2
Switch(config)# ip slb real 192.168.10.11
Switch(config-slb-real)# inservice
Switch(config-slb-real)# bind PROBE-TCP80
Switch(config)# ip slb real 192.168.10.12
Switch(config-slb-real)# inservice
Switch(config-slb-real)# bind PROBE-TCP80
Switch(config)# ip slb vserver VS-WEB
Switch(config-slb-vserver)# vip address 203.0.113.10
Switch(config-slb-vserver)# tcp port 80
Switch(config-slb-vserver)# serverfarm SF-WEB
단순 HTTP 상태 코드 확인 예시 옵션
일부 L4 장비는 간단한 HTTP 요청을 보내고 상태 코드를 확인하는 기능을 제공합니다. 서비스가 정상이라면 200 계열을 응답하도록 애플리케이션 팀과 합의하면 효과적입니다.
Switch# configure terminal
Switch(config)# ip slb probe PROBE-HTTP http
Switch(config-slb-probe)# port 80
Switch(config-slb-probe)# url /health
Switch(config-slb-probe)# expect status 200
Switch(config-slb-probe)# interval 5
Switch(config-slb-probe)# timeout 3
Switch(config-slb-probe)# faildetect 3
TLS 핸드셰이크 확인 예시
인증서 만료 검증은 별도 주기로 점검하고 L4 장비에서는 우선 핸드셰이크 성공 여부를 확인합니다. 서비스 포트는 443 입니다.
Switch# configure terminal
Switch(config)# ip slb probe PROBE-TLS tls
Switch(config-slb-probe)# port 443
Switch(config-slb-probe)# interval 5
Switch(config-slb-probe)# timeout 3
Switch(config-slb-probe)# faildetect 3
상태 변화시 트래픽 처리 정책
- 즉시 차단 신규 연결을 즉시 차단 기존 연결도 리셋 위험은 빨리 해소
- 세션 유지 신규 연결만 차단 기존 연결은 자연 종료 사용자 경험 보호
대부분의 웹 서비스는 세션 유지를 권장합니다. 거래나 업로드 등의 작업이 많은 서비스는 즉시 차단 시 사용자 불편이 커질 수 있습니다.
모니터링과 점검 명령어
상태 체크가 정상 동작하는지 확인하려면 아래 명령어를 활용하시기 바랍니다. 장비별 표현은 다를 수 있으나 확인 포인트는 동일합니다.
Switch# show ip slb vserver
Switch# show ip slb serverfarm
Switch# show ip slb probe
Switch# show ip slb statistics
Switch# show logging | include slb
트러블슈팅 체크리스트
증상 | 가능 원인 | 확인 포인트 | 조치 |
---|---|---|---|
서버가 지속 다운 판단 | 방화벽 차단 타임아웃 과도 | 포트 접근 허용 여부 타임아웃 값 비교 | 방화벽 룰 허용 타임아웃을 상향 |
상태가 자주 변동 | 간격이 너무 짧음 네트워크 지연 | 패킷 지연 분산 대상 서버 부하 | 간격 확대 업 판정 횟수 상향 |
정상인데 분산 제외 | 헬스 포트 불일치 | 서비스 포트와 검사 포트 확인 | 검사 포트를 실제 리스닝 포트로 수정 |
VIP 접속 간헐 장애 | 두 장비 간 세션 동기화 미구성 | 이중화 동기화 상태 | 세션 또는 상태 동기화 기능 활성화 |
운영 팁과 베스트 프랙티스
- 애플리케이션 팀과 헬스 엔드포인트를 합의 간단한 텍스트 응답이 가장 안정적
- 상태 체크와 애플리케이션 로그를 연동 장애 시 원인을 동시에 파악
- 배포 시간대에는 업 판정 횟수를 높여 플래핑을 완화
- 서버 오토스케일 환경은 서버 등록과 해제를 자동화 헬스 연동 필수
- 정기 점검 중에는 계획된 분산 제외를 사용 서버를 안전하게 빼고 넣기
계획된 분산 제외와 복귀 절차 예시
유지보수를 위해 특정 서버를 분산 대상에서 안전하게 제외한 뒤 작업을 수행하고 정상 상태로 복귀하는 절차 예시입니다.
Switch# configure terminal
Switch(config)# ip slb real 192.168.10.11
Switch(config-slb-real)# outofservice
Switch(config-slb-real)# exit
! 점검 수행
Switch(config)# ip slb real 192.168.10.11
Switch(config-slb-real)# inservice
Switch# show ip slb serverfarm
L4와 L7 상태 체크의 경계 설정
로그인 페이지 검사나 비즈니스 로직 검증이 필요하다면 L7 장비의 정교한 검사를 사용해야 합니다. L4 장비에서는 포트 열림과 단순 응답을 빠르게 감시하고 L7 장비에서는 경로별 응답 코드나 키워드 검사 등을 수행하도록 역할을 분리하는 것이 일반적입니다. 이중화 아키텍처에서는 L4에서 1차 분산과 가용성 보장을 수행하고 L7에서 세부 정책과 콘텐츠 기반 분산을 처리하는 방식을 권장드립니다.
상태 체크는 로드밸런싱 품질을 좌우하는 핵심 기능입니다. 간격과 타임아웃 값, 실패와 성공 임계치, 검사 포트와 타입만 정확히 설계해도 서비스의 안정성이 크게 향상됩니다. 장애 감지 속도와 오탐 최소화 사이의 균형을 잡는 것이 중요하며 배포와 점검 일정에 맞춘 일시적 조정도 효과적입니다. 본문 예시와 체크리스트를 바탕으로 귀하의 환경에 맞는 상태 체크 정책을 설계하시기 바랍니다.
'네트워크 - L4,L7' 카테고리의 다른 글
L4 기반 로드밸런싱 개념 (0) | 2025.08.02 |
---|---|
L4 스위치란? (0) | 2025.08.01 |