

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

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

Amazon Neptune은 단일 인스턴스 대신에 DB 인스턴스 클러스터를 사용합니다. 각 Neptune 연결은 특정 DB 인스턴스에서 처리합니다. Neptune 클러스터에 연결하면 지정한 호스트 이름과 포트가 *엔드포인트*라는 중간 핸들러로 연결됩니다. 여기에서 엔드포인트란 호스트 주소와 포트를 포함하는 URL을 말합니다. Neptune 엔드포인트는 암호화된 Transport Layer Security/보안 소켓 계층(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 레코드를 다시 확인하여 서로 다른 읽기 전용 복제본에 대한 연결을 얻어야 합니다.

**참고**  
WebSocket 연결은 오랜 기간 동안 연결 상태를 유지하는 경우가 많습니다. 서로 다른 읽기 전용 복제본을 얻으려면 다음 작업을 수행합니다.  
클라이언트가 연결될 때마다 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`

자세한 정보는 [사용자 지정 엔드포인트 작업](feature-custom-endpoint-membership.md)을 참조하세요.

## Neptune 엔드포인트 고려 사항
엔드포인트 고려 사항

Neptune 엔드포인트 작업을 수행할 때는 다음을 고려해야 합니다.
+ 인스턴스 엔드포인트를 사용하여 DB 클러스터의 특정 DB 인스턴스에 연결하는 것보다는 클러스터 엔드포인트나 리더 엔드포인트를 DB 클러스터에 사용하는 것이 좋습니다.

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

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

  장애 조치에 대한 자세한 내용은 [Neptune DB 클러스터의 내결함성](backup-restore-overview-fault-tolerance.md) 섹션을 참조하세요.

   
+ 리더 엔드포인트는 Neptune DB 클러스터에서 사용 가능한 Neptune 복제본에 대한 연결만 지정하고 특정 쿼리는 지정하지 않습니다.
**중요**  
Neptune은 로드 밸런싱을 수행하지 않습니다.

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

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

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

# Neptune에서의 사용자 지정 엔드포인트 작업
사용자 지정 엔드포인트 작업

사용자 지정 엔드포인트에 DB 인스턴스를 추가하거나 사용자 지정 엔드포인트에서 제거해도, 해당 DB 인스턴스로의 기존 연결은 활성 상태로 유지됩니다.

사용자 지정 엔드포인트에 포함할 DB 인스턴스 목록(*정적* 목록) 또는 사용자 지정 엔드포인트에서 제외할 목록(*제외* 목록)을 정의할 수 있습니다. 포함/제외 메커니즘을 사용하여 DB 인스턴스를 그룹으로 세분화하고 사용자 지정 엔드포인트가 클러스터의 모든 DB 인스턴스를 포함하는지 확인할 수 있습니다. 각 사용자 지정 엔드포인트는 이러한 목록 유형 중 하나만 포함할 수 있습니다.

에서 AWS Management Console선택 항목은 **이 클러스터에 추가된 향후 인스턴스 연결 확인란으로** 표시됩니다. 이 확인란을 선택하지 않으면 사용자 지정 엔드포인트가 대화 상자에 지정된 DB 인스턴스만 포함하는 정적 목록을 사용합니다. 이 확인란을 선택하면 사용자 지정 엔드포인트가 제외 목록을 사용합니다. 이 경우 사용자 지정 엔드포인트는 대화 상자에서 선택하지 않은 채로 둔 인스턴스를 제외한 클러스터의 모든 DB 인스턴스를 나타냅니다(향후 추가하는 모든 인스턴스 포함).

장애 조치 또는 승격으로 인해 DB 인스턴스가 기본 인스턴스와 Neptune 복제본 간에 역할을 변경해도 Neptune은 정적 목록 또는 제외 목록에 지정된 DB 인스턴스를 변경하지 않습니다.

DB 인스턴스 하나를 둘 이상의 사용자 지정 엔드포인트와 연결할 수 있습니다. 예를 들어, 클러스터에 새 DB 인스턴스를 추가한다고 가정하겠습니다. 이러한 경우 적합한 모든 사용자 지정 엔드포인트에 DB 인스턴스가 추가됩니다. 정의된 정적 또는 제외 목록에 따라 추가할 수 있는 DB 인스턴스가 결정됩니다.

엔드포인트에 DB 인스턴스의 정적 목록이 포함된 경우 새로 추가된 Neptune 복제본은 추가되지 않습니다. 반대로 엔드포인트에 제외 목록이 있는 경우, 새로 추가된 Neptune 복제본이 제외 목록에서 이름이 지정되지 않은 한 추가됩니다.

 Neptune 복제본을 사용할 수 없게 된 경우, 사용자 지정 엔드포인트와 연결된 상태로 유지됩니다. 이상이 있거나, 중지되거나, 재부팅되거나, 다른 이유로 사용할 수 없는 경우에도 해당됩니다. 그러나 사용할 수 없는 상태에서는 어떤 엔드포인트를 통해서도 연결할 수 없습니다.

새로 생성된 Neptune 클러스터에는 사용자 지정 엔드포인트가 없기 때문에, 이를 직접 만들고 관리해야 합니다. 스냅샷에서 복원된 Neptune 클러스터의 경우에도 마찬가지입니다. 사용자 지정 엔드포인트가 스냅샷에 포함되지 않기 때문입니다. 복원 후 사용자 지정 엔드포인트를 다시 만들고, 복원된 클러스터가 원래 리전과 동일한 리전에 있는 경우 새 엔드포인트 이름을 선택합니다.

## 사용자 지정 엔드포인트 만들기
사용자 지정 엔드포인트 생성

Neptune 콘솔을 사용하여 사용자 지정 엔드포인트를 관리합니다. 이렇게 하려면 Neptune 클러스터의 세부 정보 페이지로 이동하고 **사용자 지정 엔드포인트** 섹션의 제어 기능을 사용하면 됩니다.

1.  AWS Management Console에 로그인하고 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home) Amazon Neptune 콘솔을 엽니다.

1. 클러스터 세부 정보 페이지로 이동합니다.

1. **엔드포인트** 섹션에서 `Create custom endpoint` 작업을 선택합니다.

1. 사용자 ID와 리전에 고유한 사용자 지정 엔드포인트의 이름을 선택합니다. 이름은 63자 이하여야 하며 다음 형식을 취해야 합니다.

   `endpointName.cluster-custom-customerDnsIdentifier.dnsSuffix`

   사용자 지정 엔드포인트 이름에는 클러스터 이름이 포함되지 않기 때문에, 클러스터 이름을 바꿀 경우 엔드포인트 이름을 변경할 필요가 없습니다. 단, 동일한 리전에 있는 둘 이상의 클러스터에 동일한 사용자 지정 엔드포인트 이름을 재사용할 수 없습니다. 각 사용자 지정 엔드포인트에 특정 리전 내의 사용자 ID가 소유한 클러스터 전체에서 고유한 이름을 부여합니다.

1. 클러스터가 확장되더라도 동일하게 유지되는 DB 인스턴스의 목록을 선택하려면 **Attach future instances added to this cluster(이 클러스터에 추가된 향후 인스턴스 첨부)** 확인란을 선택하지 않습니다. 이 확인란을 선택하면 사용자 지정 엔드포인트는 클러스터에 추가되는 새 인스턴스를 동적으로 추가합니다.

## 사용자 지정 엔드포인트 보기
사용자 지정 엔드포인트 보기

1.  AWS Management Console에 로그인하고 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home) Amazon Neptune 콘솔을 엽니다.

1. DB 클러스터의 클러스터 세부 정보 페이지로 이동합니다.

1. **엔드포인트** 섹션에는 사용자 지정 엔드포인트의 정보만 나와 있습니다. 기본 제공 엔드포인트에 대한 자세한 내용은 주요 **세부 정보** 섹션에 나열됩니다. 특정 사용자 지정 엔드포인트의 세부 정보를 보려면 해당 이름을 선택하여 해당 엔드포인트의 세부 정보 페이지를 불러옵니다.

## 사용자 지정 엔드포인트 편집
사용자 지정 엔드포인트 편집

사용자 지정 엔드포인트의 속성을 편집하여 엔드포인트와 연결된 DB 인스턴스를 변경할 수 있습니다. 또한 정적 목록과 제외 목록 간에 전환할 수도 있습니다.

편집 작업으로 인한 변경이 진행 중인 동안에는 사용자 지정 엔드포인트에 연결하거나 사용할 수 없습니다. 변경 후 엔드포인트 상태가 **사용 가능**으로 돌아오고 다시 연결할 수 있기까지 몇 분이 걸릴 수 있습니다.

1.  AWS Management Console에 로그인하고 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home) Amazon Neptune 콘솔을 엽니다.

1. 클러스터 세부 정보 페이지로 이동합니다.

1. **엔드포인트** 섹션에서 편집하려는 사용자 지정 엔드포인트 이름을 선택합니다.

1. 해당 엔드포인트의 세부 정보 페이지에서 **편집** 작업을 선택합니다.

## 사용자 지정 엔드포인트 삭제
사용자 지정 엔드포인트 삭제

1.  AWS Management Console에 로그인하고 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home) Amazon Neptune 콘솔을 엽니다.

1. 클러스터 세부 정보 페이지로 이동합니다.

1. **엔드포인트** 섹션에서 삭제하려는 사용자 지정 엔드포인트 이름을 선택합니다.

1. 해당 엔드포인트의 세부 정보 페이지에서 **삭제** 작업을 선택합니다.