View a markdown version of this page

호스트 교체 및 연결 정지 처리 - Amazon Neptune

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

호스트 교체 및 연결 정지 처리

Neptune이 호스트를 대체하면(예: 유지 관리 또는 장애 조치 중) 해당 호스트에 대한 기존 연결이 무효화됩니다. 컨테이너화된 환경에서 클라이언트가 교체를 정상적으로 처리하지 않으면 컨테이너의 모든 스레드가 중단될 수 있습니다.

현재 클라이언트 버전 사용

Gremlin 쿼리 언어를 사용하는 경우 Neptune 엔진 버전과 호환되는 TinkerPop 드라이버 버전을 사용합니다(Gremlin을 사용하여 Neptune 그래프에 액세스호환성 표는 참조). Java 드라이버를 사용하는 경우 엔드포인트 상태 확인 및 장애 조치 처리와 같은 연결 관리 기능을 추가하는 TinkerPop Java 드라이버 주변의 래퍼neptune-gremlin-client를 고려하세요. 기본 TinkerPop 드라이버와 동일한 버전 호환성 규칙을 따릅니다.

Neptune neptune-gremlin-client 버전에서 허용하는 사항에 따라 버전 3.x(또는 최소 버전 2.0.7)를 사용합니다. 이러한 최신 버전은 복원력과 연결 처리를 개선합니다.

Neo4j 드라이버가 있는 openCypher 사용자의 경우 장애 조치 중에 연결 실패를 감지하면 Driver 객체를 닫고 다시 생성합니다. Neptune은 Bolt 프로토콜 버전 1~4.0을 지원합니다. 자세한 내용은 openCypher와 Bolt를 사용한 Neptune 모범 사례 단원을 참조하십시오.

클러스터 또는 리더 엔드포인트 사용

인스턴스 엔드포인트에 직접 연결하지 마세요. 쓰기에는 클러스터 엔드포인트를 사용하고 읽기에는 리더 엔드포인트를 사용합니다. 에서 인스턴스 엔드포인트를 사용해야 하는 경우 /status API를 통해 엔드포인트 상태 확인 필터링을 neptune-gremlin-client활성화합니다.

허용 오차를 사용하여 생생 프로브 구성

Kubernetes liveness 프로브failureThreshold를 10초 기간(총 300초)으로 최소 30으로 설정합니다. 이렇게 하면 Neptune이 호스트 교체를 완료하는 약 5분 동안 Kubernetes가 포드를 다시 시작하지 못합니다.

백오프를 사용하여 재시도 구현

호스트 교체 중에 실패한 단일 요청이 컨테이너를 충돌시키지 않아야 합니다. 교체 중 일시적인 오류가 개입 없이 해결되도록 연결 실패 시 지수 백오프가 포함된 재시도 로직을 구현합니다. 재시도 가능한 예외에 대한 지침은 Neptune 트랜잭션 예외를 참조하세요.