Load Balancing 문제 해결
본 문서는 Load Balancing 서비스 관련 문제를 해결하기 위한 방법을 설명합니다.
연결된 로드 밸런서를 통해 서비스가 안 되는 문제
로드 밸런서의 프라이빗 IP 또는 퍼블릭 IP로 통신이 되지 않는 경우, 다음을 확인하시기 바랍니다.
로드 밸런서에 연결된 대상의 보안 그룹이 트래픽을 허용하지 않은 경우
▶ 로드 밸런서와 인스턴스의 상태 확인 IP와 통신 설정을 합니다.
대상(Target)의 상태 확인(Health Check) 및 서비스 연결을 위해 로드 밸런서가 대상인 인스턴스의 상태 확인 IP와 통신할 수 있어야 합니다.
이를 위해, 대상인 인스턴스의 보안 그룹에서 상태 확인 IP와 통신을 허용하도록 인바운드 규칙을 추가해야 합니다.
- 자세한 정보는 상태 확인 IP 통신 허용을 참고하시기 바랍니다. 상태 확인 IP는 카카오클라우드 콘솔 > Beyond Networking Service > Load Balancing > 대상 그룹 > 설정할 대상 그룹 상세 페이지의 대상 탭 > 서브넷별 상태 확인 IP에서 확인할 수 있습니다.
▶ 보안 그룹의 인바운드 규칙을 설정합니다.
보안 그룹의 인바운드 규칙 설정 시, 서비스 및 상태 확인 유형에 맞는 프로토콜과 포트 번호를 설정해야 합니다. 예를 들어, 서비스 포트가 80
, 상태 확인 유형이 Ping
이면, 다음의 인바운드 규칙을 허용해야 합니다.
프로토콜 | 출발지 | 포트 번호 |
---|---|---|
TCP | {상태 확인 IP 1}/32 | 80 |
TCP | {상태 확인 IP 2}/32 | 80 |
ICMP | {상태 확인 IP 1}/32 | ALL |
ICMP | {상태 확인 IP 2}/32 | ALL |
대상 내 서비스가 동작 중이지 않은 경우
▶️ 애플리케이션의 동작 여부를 확인합니다.
로드 밸런서의 대상 그룹에 대상 등록 시 설정한 포트를 사용하는 애플리케이션이 정상적으로 동작 중이어야 합니다.
대상의 상태가 unhealthy
인 경우
▶️ 상태 확인에 설정한 HTTP 상태 코드와 웹 서버가 반환하는 상태 코드가 일치하는지 확인합니다.
보안 그룹 설정이나 서비스 상태가 모두 정상이고, 대상 내에서 패킷을 확인했을 때 상태 확인가 동작하고 있음에도 대상의 상태가 unhealthy
일 수 있습니다.
HTTP
프로토콜로 상태 확인가 설정되어 있다면, 상태 확인에 설정한 HTTP
상태 코드와 웹 서버가 반환하는 상태 코드가 일치하는지 확인이 필요합니다.
- 예를 들어, 상태 확인에 설정한 HTTP 상태 코드가
200
~399
인데 웹 서버가 반환하는 상태 코드가500
인 경우, 대상의 상태는unhealthy
가 됩니다.