DynamoDB Accelerator(DAX) 클라이언트에서 “사용 가능한 엔드포인트 없음” 오류를 해결하려면 어떻게 해야 합니까?
최종 업데이트 날짜: 2022년 11월 28일
Amazon DynamoDB Accelerator(DAX)에서 “사용 가능한 엔드포인트 없음” 오류가 발생했습니다. 이 오류를 해결하려면 어떻게 해야 하나요?
간략한 설명
클라이언트에 DAX 클러스터의 어떠한 노드에 대한 네트워크 경로가 없을 때 “사용 가능한 엔드포인트 없음” 오류가 발생합니다. 또는 클러스터가 다운되거나 CPU 사용률이 높을 때 이러한 오류가 발생할 수 있습니다.
다음은 이러한 오류 중 하나가 발생할 수 있는 몇 가지 사례입니다.
- DAX 노드에 대한 상태 점검 실패: 클라이언트는 노드의 CPU 부하가 높기 때문에 클러스터 노드의 상태를 확인할 수 없습니다.
- 각 노드에 대한 여러 개의 연속 IO 예외: DAX 클라이언트는 IO 예외 수를 계산하여 서버 노드의 작동 중지 여부를 확인합니다. 먼저 클라이언트는 구성 엔드포인트에서 서버 노드 목록을 검색합니다. 서버 노드에서 장애가 5회 이상 수신되면 활성 서버 노드 목록에서 해당 노드가 제거됩니다. 이러한 방식으로 모든 서버 노드를 제거하면 클라이언트에 활성 노드 목록이 빈 상태로 끝납니다. 이에 대한 응답으로 클라이언트는 “사용 가능한 엔드포인트 없음” 오류를 표시합니다.
해결 방법
오류를 해결하고 클러스터 노드가 정상적으로 작동하도록 하려면 아래 문제 해결 단계를 따릅니다.
- DAX 클라이언트에는 활성 서버 노드 목록을 새로 고치는 스레드가 있습니다. refresh option을 사용하여 목록에 있는 활성 노드를 복원할 수 있습니다.
- 클라이언트의 트래픽 패턴에 따라 RequestTimeout을 늘립니다. 자세한 내용은 지연 시간을 인식하는 Amazon DynamoDB 애플리케이션에 대한 AWS Java SDK HTTP 요청 설정 조정을 참조하세요.
- 상태 점검 간격을 늘립니다. 기본적으로 health-check-interval은 5초입니다.
참고: 이 간격을 늘리면 socket-timeout-exception로 인해 엔드포인트가 제거된 경우에만 엔드포인트가 클라이언트 측 엔드포인트 세트에 다시 들어갑니다. - 이러한 오류가 다시 발생할 가능성을 줄이려면 더 큰 인스턴스 유형으로 확장하세요. 또는 클러스터에 노드를 더 추가하여 확장할 수도 있습니다.
관련 정보
ClientConfig(DAX)