Load Balancing 문제 해결
본 문서는 Load Balancing 서비스 사용 중 발생할 수 있는 문제를 해결하는 방법을 안내합니다.
서비스가 로드 밸런서를 통해 동작하지 않는 문제
서비스가 로드 밸런서의 프라이빗 IP 또는 퍼블릭 IP를 통해 정상적으로 작동하지 않는 경우, 아래의 가능한 원인과 해결 방법을 확인하십시오.
대상 인스턴스의 보안 그룹이 트래픽을 허용하지 않는 경우
로드 밸런서가 대상 인스턴스와 통신할 수 없으면 서비스 연결이 이루어지지 않을 수 있습니다. 이는 주로 대상 인스턴스의 보안 그룹이 로드 밸런서의 상태 확인 IP와의 통신을 허용하지 않기 때문입니다.
▶️ 해결 방법
-
로드 밸런서와 대상 인스턴스의 통신 상태 확인
대상 인스턴스의 보안 그룹에서 로드 밸런서의 상태 확인 IP와의 인바운드 통신을 허용하는 규칙을 추가해야 합니다. 상태 확인 IP는 카카오클라우드 콘솔의 Load Balancing > 대상 그룹 > 대상 탭에서 확인할 수 있으며, 자세한 내용은 상태 확인 IP 통신 허용을 참고하십시오. -
보안 그룹 인바운드 규칙 설정
서비스 포트와 상태 확인 프로토콜에 맞게 보안 그룹의 인바운드 규칙을 설정하십시오. 예를 들어, 서비스 포트가80
이고 상태 확인 유형이Ping
인 경우, TCP와 ICMP 프로토콜에 대해 상태 확인 IP에서 오는 트래픽을 허용해야 합니다. 이에 따른 인바운드 규칙은 아래 표와 같이 설정할 수 있습니다.프로토콜 출발지 포트 번호 TCP {상태 확인 IP 1}
80 TCP {상태 확인 IP 2}
80 ICMP {상태 확인 IP 1}
ALL ICMP {상태 확인 IP 2}
ALL
대상 인스턴스 내 서비스가 비활성화 상태
로드 밸런서의 대상 그룹에 등록된 포트를 사용하는 애플리케이션이 대상 인스턴스에서 비활성화 상태이면, 로드 밸런서가 서비스에 연결할 수 없습니다.
▶️ 해결 방법: 대상 인스턴스 내에서 로드 밸런서에 연결된 포트를 사용하는 애플리케이션이 정상적으로 실행 중인지 확인하십시오. 비활성 상태라면 애플리케이션을 재시작하십시오.
대상 인스턴스의 상태가 unhealthy
로 표시
보안 그룹 설정 및 서비스 상태가 정상임에도 불구하고 대상 상태가 unhealthy
로 표시될 수 있습니다. 이는 주로 상태 확인 설정에서 지정한 HTTP 상태 코드와 웹 서버가 반환하는 상태 코드가 일치하지 않기 때문입니다.
▶️ 해결 방법: 상태 확인에 설정된 HTTP 상태 코드와 웹 서버가 반환하는 상태 코드가 일치하는지 확인하십시오. 예를 들어, 상태 확인에서 HTTP 상태 코드를 200
~399
로 설정한 경우 웹 서버가 500
상태 코드를 반환하면 대상 상태가 unhealthy
로 표시됩니다. 상태 확인 설정을 재검토하거나 웹 서버 설정을 조정하여 반환되는 상태 코드가 일치하도록 설정하십시오.