Amazon Neptune 엔드포인트에 연결 - Amazon Neptune

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

Amazon Neptune 엔드포인트에 연결

Amazon Neptune은 단일 인스턴스 대신에 DB 인스턴스 클러스터를 사용합니다. 각 Neptune 연결은 특정 DB 인스턴스에서 처리합니다. Neptune 클러스터에 연결하면 지정한 호스트 이름과 포트가 엔드포인트라는 중간 핸들러로 연결됩니다. 엔드포인트는 호스트 주소 및 포트를 포함하는 URL입니다. Neptune 엔드포인트는 암호화된 전송 계층 보안/보안 소켓 계층(TLS/SSL) 연결을 사용합니다.

Neptune은 엔드포인트 메커니즘을 사용하여 이러한 연결을 추상화하므로 호스트 이름을 하드코딩하거나, 일부 DB 인스턴스를 사용할 수 없을 때 연결을 다시 라우팅하기 위해 자체 로직을 작성할 필요가 없습니다.

엔드포인트를 사용하여 사용 사례에 따라 각 연결을 해당 인스턴스 또는 인스턴스 그룹에 매핑할 수 있습니다. 사용자 지정 엔드포인트를 사용하면 DB 인스턴스의 하위 세트에 연결할 수 있습니다. Neptune DB 클러스터에서 제공하는 엔드포인트는 다음과 같습니다.

Neptune 클러스터 엔드포인트

클러스터 엔드포인트는 DB 클러스터의 현재 기본 DB 인스턴스에 연결되는 Neptune DB 클러스터의 엔드포인트입니다. 각 Neptune DB 클러스터에는 클러스터 엔드포인트 하나와 기본 DB 인스턴스 하나가 있습니다.

이러한 클러스터 엔드포인트는 DB 클러스터에 대한 읽기/쓰기 연결 시 장애 조치를 지원합니다. 삽입, 업데이트, 삭제 및 데이터 정의 언어(DDL) 변경을 비롯하여 DB 클러스터의 모든 쓰기 작업에 대해 클러스터 엔드포인트를 사용합니다. 또한 쿼리와 같은 읽기 작업에도 클러스터 엔드포인트를 사용할 수 있습니다.

DB 클러스터의 현재 기본 DB 인스턴스에 장애가 발생하면 Neptune이 자동으로 새로운 기본 DB 인스턴스로 장애 조치합니다. 장애 조치가 이루어지는 동안에도 DB 클러스터가 새로운 기본 DB 인스턴스의 클러스터 엔드포인트 연결 요청을 처리하여 서비스 중단 시간을 최소화합니다.

다음은 Neptune DB 클러스터의 클러스터 엔드포인트를 보여주는 예제입니다.

mydbcluster.cluster-123456789012.us-east-1.neptune.amazonaws.com:8182

Neptune 리더 엔드포인트

리더 엔드포인트는 DB 클러스터에서 사용할 수 있는 Neptune 복제본 중 하나에 연결되는 Neptune DB 클러스터의 엔드포인트입니다. 각 Neptune DB 클러스터에는 리더 엔드포인트가 1개씩 있습니다. Neptune 복제본이 하나 이상이면 리더 엔드포인트는 각 연결 요청을 Neptune 복제본 중 하나로 전달합니다.

리더 엔드포인트는 DB 클러스터에 대한 읽기 전용 연결에 라운드 로빈 라우팅을 제공합니다. 쿼리와 같은 읽기 작업에 리더 엔드포인트를 사용합니다.

단일 인스턴스 클러스터(읽기 전용 복제본이 없는 클러스터)가 없는 경우 리더 엔드포인트를 쓰기 작업에 사용할 수 없습니다. 이 경우에만 리더는 쓰기 작업 뿐만 아니라 읽기 작업에 사용할 수 있습니다.

리더 엔드포인트의 라운드 로빈 라우팅은 DNS 항목이 가리키는 호스트를 변경하여 작동합니다. DNS를 확인할 때마다 다른 IP를 얻고 이러한 IP에 대한 연결이 열립니다. 연결이 설정되면 해당 연결에 대한 모든 요청이 동일한 호스트로 전송됩니다. 클라이언트는 새 연결을 생성하고 DNS 레코드를 다시 확인하여 서로 다른 읽기 전용 복제본에 대한 연결을 얻어야 합니다.

참고

WebSockets 연결이 오랫동안 유지되는 경우가 많습니다. 서로 다른 읽기 전용 복제본을 얻으려면 다음 작업을 수행합니다.

  • 클라이언트가 연결될 때마다 DNS 항목을 확인하는지 확인합니다.

  • 연결을 닫고 다시 연결합니다.

여러 클라이언트 소프트웨어는 서로 다른 방식으로 DNS를 확인할 수 있습니다. 예를 들어 연결될 때마다 DNS를 확인한 다음 IP를 사용하는 클라이언트의 경우 모든 요청을 단일 호스트로 지정합니다.

클라이언트 또는 프록시에 대한 DNS 캐싱은 캐시에서 동일한 엔드포인트로 DNS 이름을 확인합니다. 이는 라운드 로빈 라우팅과 장애 조치 시나리오 모두에서 문제가 됩니다.

참고

매번 DNS를 강제로 확인하도록 모든 DNS 캐싱 설정을 비활성화합니다.

DB 클러스터는 연결 요청을 사용 가능한 Neptune 복제본의 리더 엔드포인트로 분산합니다. DB 클러스터에 기본 DB 인스턴스만 포함된 경우에는 리더 엔드포인트가 기본 DB 인스턴스의 연결 요청을 처리합니다. 이때 해당 DB 클러스터에 대한 Neptune 복제본이 생성되더라도 리더 엔드포인트가 계속해서 새 Neptune 복제본에서의 리더 엔드포인트 연결 요청을 처리하므로 서비스 중단 시간이 최소화됩니다.

다음은 Neptune DB 클러스터의 리더 엔드포인트를 보여주는 예제입니다.

mydbcluster.cluster-ro-123456789012.us-east-1.neptune.amazonaws.com:8182

Neptune 인스턴스 엔드포인트

인스턴스 엔드포인트는 특정 DB 인스턴스에 연결되는 Neptune DB 클러스터의 DB 인스턴스 엔드포인트입니다. DB 클러스터의 DB 인스턴스에는 인스턴스 유형에 상관없이 각각 고유한 인스턴스 엔드포인트가 있습니다. 따라서 DB 클러스터의 현재 기본 DB 인스턴스에 대한 인스턴스 엔드포인트가 한 개 있습니다. DB 클러스터의 각 Neptune 복제본에 대한 인스턴스 엔드포인트도 1개 있습니다.

클러스터 엔드포인트 또는 리더 엔드포인트의 사용이 부적합한 시나리오에서는 인스턴스 엔드포인트가 DB 클러스터에 대한 연결을 직접 제어합니다. 예를 들어 클라이언트 애플리케이션에서 워크로드 유형에 따라 세분화된 로드 밸런싱이 필요할 수 있습니다. 이 경우에는 여러 클라이언트에서 DB 클러스터의 서로 다른 Neptune 복제본에 연결하여 읽기 워크로드를 분산하도록 구성할 수 있습니다.

다음은 Neptune DB 클러스터의 DB 인스턴스에 대한 인스턴스 엔드포인트를 보여주는 예제입니다.

mydbinstance.123456789012.us-east-1.neptune.amazonaws.com:8182

Neptune 사용자 지정 엔드포인트

Neptune 클러스터의 사용자 지정 엔드포인트는 선택한 DB 인스턴스 세트를 나타냅니다. 엔드포인트에 연결하면 Neptune이 그룹에서 연결을 처리할 인스턴스 중 하나를 선택합니다. 이 엔드포인트가 참조하는 인스턴스를 정의하고, 이 엔드포인트가 어떤 목적으로 사용되는지 결정합니다.

Neptune DB 클러스터는 생성하기 전까지는 사용자 지정 엔드포인트가 없으며, 프로비저닝된 각 Neptune 클러스터에 대해 최대 5개의 사용자 지정 엔드포인트를 만들 수 있습니다.

사용자 지정 엔드포인트는 DB 인스턴스의 읽기 전용 기능 또는 읽기/쓰기 기능 이외의 다른 조건을 기반으로 로드 밸런싱된 데이터베이스 연결을 제공합니다. 연결이 엔드포인트와 연결된 모든 DB 인스턴스로 이동할 수 있으므로, 해당 그룹 내의 모든 인스턴스가 동일한 성능 및 메모리 용량 특성을 공유해야 합니다. 사용자 지정 엔드포인트를 사용할 경우 일반적으로 해당 클러스터에 리더 엔드포인트를 사용하지 않습니다.

이 기능은 모든 Neptune 복제본을 동일한 클러스터에 유지하는 것이 적절치 않은 특수한 종류의 워크로드가 있는 고급 사용자를 위한 것입니다. 사용자 지정 엔드포인트를 통해 각 연결에 사용되는 DB 인스턴스 용량을 조정할 수 있습니다.

예를 들어, 인스턴스 클래스가 서로 다른 인스턴스 그룹에 연결하는 사용자 지정 엔드포인트를 여러 개 정의하면 성능 요구 사항이 다른 사용자를 사용 사례에 가장 적합한 엔드포인트로 연결할 수 있습니다.

다음은 Neptune DB 클러스터에 있는 DB 인스턴스의 사용자 지정 엔드포인트를 나타낸 예제입니다.

myendpoint.cluster-custom-123456789012.us-east-1.neptune.amazonaws.com:8182

자세한 정보는 사용자 지정 엔드포인트 작업을 참조하세요.

Neptune 엔드포인트 고려 사항

Neptune 엔드포인트 작업을 수행할 때는 다음을 고려해야 합니다.

  • 인스턴스 엔드포인트를 사용하여 DB 클러스터의 특정 DB 인스턴스에 연결하는 것보다는 클러스터 엔드포인트나 리더 엔드포인트를 DB 클러스터에 사용하는 것이 좋습니다.

    클러스터 엔드포인트와 리더 엔드포인트는 고가용성 시나리오를 지원합니다. DB 클러스터의 기본 DB 인스턴스에 장애가 발생하면 Neptune이 자동으로 새로운 기본 DB 인스턴스로 장애 조치합니다. 이때는 기존 Neptune 복제본을 새 기본 DB 인스턴스로 승격하거나 새 기본 DB 인스턴스를 생성하는 방법이 있습니다. 장애 조치가 발생하면 클러스터 엔드포인트를 사용하여 새로 승격 또는 생성된 기본 DB 인스턴스에 다시 연결하거나 리더 엔드포인트를 사용하여 DB 클러스터의 기타 Neptune 복제본 중 하나에 다시 연결할 수 있습니다.

    위와 같은 방법을 사용하지 않더라도 DB 클러스터의 올바른 DB 인스턴스에 계속해서 연결하여 원하는 작업을 수행할 수 있습니다. 이를 위해서는 수동으로 또는 프로그래밍 방식으로 DB 클러스터에서 사용 가능한 DB 인스턴스의 결과 집합을 가져와서 장애 조치 이후부터 특정 DB 인스턴스의 인스턴스 엔드포인트를 사용하기 전까지 인스턴스 유형을 확인하면 됩니다.

    장애 조치에 대한 자세한 내용은 Neptune DB 클러스터의 내결함성 섹션을 참조하세요.

     

  • 리더 엔드포인트는 Neptune DB 클러스터에서 사용 가능한 Neptune 복제본에 대한 연결만 지정하고 특정 쿼리는 지정하지 않습니다.

    중요

    Neptune은 로드 밸런싱을 수행하지 않습니다.

    쿼리를 로드 밸런싱하여 DB 클러스터에 대한 읽기 워크로드를 분산하려는 경우 애플리케이션에서 이 작업을 관리해야 합니다. 로드 밸런싱을 위해 Neptune 복제본에 직접 연결하려면 인스턴스 엔드포인트를 사용해야 합니다.

     

  • 리더 엔드포인트의 라운드 로빈 라우팅은 DNS 항목이 가리키는 호스트를 변경하여 작동합니다. 클라이언트는 새 연결을 생성하고 DNS 레코드를 다시 확인해서 새 읽기 전용 복제본에 대한 연결을 얻어야 합니다.

     

  • 장애 조치 중 리더 엔드포인트는 Neptune 복제본이 새 기본 DB 인스턴스로 승격되는 짧은 시간 동안 DB 클러스터의 새 기본 DB 인스턴스에 직접 연결할 수 있습니다.