

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

# 글로벌 데이터베이스와 함께 Amazon Neptune 사용
<a name="neptune-global-database"></a><a name="gdb"></a><a name="globaldb"></a><a name="global_database"></a>

Amazon Neptune 글로벌 데이터베이스는 여러 개에 걸쳐 AWS 리전있으므로 지연 시간이 짧은 글로벌 읽기를 활성화하고 드물게 중단이 전체에 영향을 미치는 경우 빠른 복구를 제공합니다 AWS 리전.

Neptune 글로벌 데이터베이스는 하나의 리전에 있는 기본 DB 클러스터와 다른 리전에 있는 최대 5개의 보조 DB 클러스터로 구성됩니다.

쓰기는 기본 리전에서만 발생할 수 있습니다. 보조 리전은 읽기만 지원합니다. 각 보조 리전은 최대 16개의 리더 인스턴스를 보유할 수 있습니다.

## Amazon Neptune의 글로벌 데이터베이스
<a name="neptune-gdb-overview"></a>

Neptune 글로벌 데이터베이스를 사용하면 여러 AWS 리전에 걸쳐 있는 단일 데이터베이스에서 전역으로 분산된 애플리케이션을 실행할 수 있습니다.

Neptune 글로벌 데이터베이스는 데이터가 쓰이는 기본 AWS 리전 에 있는 하나의 DB 클러스터와 보조 AWS 리전에 있는 최대 5개의 읽기 전용 DB 클러스터로 구성됩니다. 기본 DB 클러스터에서 쓰기 작업을 수행하면 Neptune은 전용 인프라를 사용하여 보통 1초 미만의 지연 시간으로 모든 보조 DB 클러스터에 작성된 데이터를 복제합니다.

다음 다이어그램은 AWS 리전 2개에 걸친 글로벌 데이터베이스의 예를 보여줍니다.

![\[Neptune 글로벌 데이터베이스는 하나의 기본 DB 클러스터를 갖추고, 하나 이상의 보조 DB 클러스터를 포함합니다.\]](http://docs.aws.amazon.com/ko_kr/neptune/latest/userguide/images/neptune-gdb-example.png)


하나 이상의 읽기 전용 복제본 인스턴스를 추가하여 읽기 전용 워크로드를 처리하도록 각 보조 클러스터를 독립적으로 확장할 수 있습니다.

쓰기 작업을 수행하려면 기본 DB 클러스터의 DB 클러스터 엔드포인트에 연결해야 합니다. 기본 클러스터만 쓰기 작업을 수행할 수 있습니다. 그러면 위 다이어그램에서 볼 수 있듯이 데이터베이스 엔진이 아닌 [클러스터 스토리지 볼륨](feature-overview-storage.md)에서 복제가 수행됩니다.

Neptune 글로벌 데이터베이스는 전 세계 설치 공간을 갖춘 애플리케이션용으로 설계되었습니다. 읽기 전용 보조 DB 클러스터는 애플리케이션 사용자와 근접하게 읽기 작업을 지원합니다.

Neptune 글로벌 데이터베이스는 2가지 다른 장애 조치 접근 방식을 지원할 수 있습니다.
+ 기본 리전의 운영 중단을 복구하려면 [계획되지 않은 수동 분리 및 승격](neptune-gdb-disaster-recovery.md#neptune-gdb-detach-and-promote) 프로세스를 사용하세요. 이 프로세스에서는 보조 클러스터 하나를 분리하여 독립 실행형 클러스터로 전환한 후 새 기본 클러스터로 승격합니다.
+ 유지 관리와 같은 계획된 운영 절차의 경우 데이터 손실 없이 기본 클러스터를 보조 리전 중 하나로 재배치하는 [계획된 관리형 장애 조치](neptune-gdb-disaster-recovery.md#neptune-gdb-managed-failover)를 사용하세요.

## Amazon Neptune에서 글로벌 데이터베이스를 사용할 때의 이점
<a name="neptune-gdb-advantages"></a>

글로벌 데이터베이스를 사용하면 다음과 같은 이점을 얻을 수 있습니다.
+ **로컬 지연 시간으로 글로벌 읽기**   —   전 세계에 지사를 두고 있는 경우, 글로벌 데이터베이스를 사용하면 보조 리전의 지사에서도 로컬 지연 시간으로 해당 리전의 데이터에 액세스할 수 있습니다.
+ **확장 가능한 보조 Neptune DB 클러스터**   —   읽기 전용 복제본 DB 인스턴스를 추가하여 보조 클러스터를 확장할 수 있습니다. 보조 클러스터는 읽기 전용이므로, 각 클러스터는 일반적인 제한인 15개가 아닌 최대 16개의 읽기 전용 복제본을 지원할 수 있습니다.
+ **보조 DB 클러스터로의 빠른 복제**   —   기본 DB 클러스터에서 보조 DB 클러스터로의 복제는 기본 DB 클러스터의 성능에 거의 영향을 미치지 않고 보통 1초 미만의 지연 시간으로 빠르게 이루어집니다. 복제는 스토리지 수준에서 수행되므로, DB 인스턴스 리소스를 애플리케이션 읽기 및 쓰기 워크로드에 완전히 사용할 수 있습니다.
+ **리전 전체의 운영 중단으로부터 복구**   —   보조 DB 클러스터를 사용하면 기존 복제 솔루션보다 낮은 RTO와 적은 데이터 손실(더 낮은 RPO)로 기본 클러스터를 새로운 리전으로 보다 빠르게 옮길 수 있습니다.

## Amazon Neptune 글로벌 데이터베이스에 적용되는 제한 사항
<a name="neptune-gdb-limitations"></a>

현재 다음 제한이 글로벌 데이터베이스에 적용됩니다.
+ Neptune 글로벌 데이터베이스는 다음 AWS 리전에서만 사용할 수 있습니다.
  + 미국 동부(버지니아 북부):   `us-east-1`
  + 미국 동부(오하이오):   `us-east-2`
  + 미국 서부(캘리포니아 북부):   `us-west-1`
  + 미국 서부(오레곤):   `us-west-2`
  + 캐나다 서부(캘거리): `ca-west-1`
  + 유럽(스페인): `eu-south-2`
  + 유럽(아일랜드):   `eu-west-1`
  + 유럽(런던):   `eu-west-2`
  + 유럽(프랑크푸르트):   `eu-central-1`
  + 아시아 태평양(도쿄):   `ap-northeast-1`
  + 아시아 태평양(오사카): `ap-northeast-3`
  + 아시아 태평양(싱가포르):   `ap-southeast-1`
  + 아시아 태평양(자카르타): `ap-southeast-3`
  + 아시아 태평양(멜버른): `ap-southeast-4`
  + 아시아 태평양(말레이시아): `ap-southeast-5`
  + 이스라엘(텔아비브):   `il-central-1`
+  Neptune 글로벌 데이터베이스는 `db.t3.medium` 또는 `db.t4g.medium` 인스턴스 유형을 지원하지 않습니다.
+ Neptune 글로벌 데이터베이스는 보조 DB 클러스터에 대해 Auto Scaling을 지원하지 않습니다.
+ 글로벌 데이터베이스의 메이저 버전 업그레이드를 수행하는 동안에는 글로벌 데이터베이스 클러스터에 대한 사용자 지정 파라미터 그룹을 적용할 수 없습니다. 대신 글로벌 클러스터의 각 리전에 사용자 지정 파라미터 그룹을 생성한 다음 업그레이드 후 리전 클러스터에 수동으로 적용합니다.
+ 글로벌 데이터베이스에서 DB 클러스터를 개별적으로 중지하거나 시작할 수는 없습니다.
+ 보조 DB 클러스터의 읽기 전용 복제본 인스턴스는 유지 관리 기간 동안 계획된 업그레이드를 포함하여 특정 상황에서 다시 시작될 수 있습니다. 기본 클러스터의 라이터 인스턴스가 다시 시작되거나 장애 조치되는 경우 보조 리전의 모든 인스턴스도 다시 시작됩니다. 모든 인스턴스가 기본 DB 클러스터의 라이터 인스턴스와 다시 동기화될 때까지 보조 클러스터를 사용할 수 없습니다.

# Amazon Neptune Global Database 설정
<a name="neptune-gdb-setup"></a>

다음 방법 중 하나로 Neptune 글로벌 데이터베이스를 만들 수 있습니다.
+ [새로운 모든 DB 클러스터와 인스턴스로 글로벌 데이터베이스를 생성합니다](#neptune-gdb-creating-cli).
+ [기존 Neptune DB 클러스터를 기본 클러스터로 사용하여 글로벌 데이터베이스를 생성합니다](#neptune-gdb-add-existing).

**Topics**
+ [Amazon Neptune의 글로벌 데이터베이스에 대한 구성 요구 사항](#neptune-gdb-setup-config)
+ [AWS CLI 를 사용하여 Amazon Neptune에서 글로벌 데이터베이스 생성](#neptune-gdb-creating-cli)
+ [기존 DB 클러스터를 글로벌 데이터베이스로 전환](#neptune-gdb-add-existing)
+ [Amazon Neptune의 기본 리전에 보조 글로벌 데이터베이스 리전 추가](#neptune-gdb-attaching)
+ [Neptune 글로벌 데이터베이스에 연결](#neptune-gdb-connect)

## Amazon Neptune의 글로벌 데이터베이스에 대한 구성 요구 사항
<a name="neptune-gdb-setup-config"></a>

Neptune 글로벌 데이터베이스는 최소 2개에 걸쳐 있습니다 AWS 리전. 기본 AWS 리전 은 하나의 라이터 인스턴스가 있는 Neptune DB 클러스터를 포함합니다. 1개\$15개의 보조 AWS 리전 은 각각 전체가 읽기 전용 복제본 인스턴스로 구성된 읽기 전용 Neptune DB 클러스터를 포함합니다. 하나 이상의 보조 AWS 리전 이 필요합니다.

글로벌 데이터베이스를 구성하는 Neptune DB 클러스터의 특정 요구 사항은 다음과 같습니다.
+ **DB 인스턴스 클래스 요구 사항**   —   글로벌 데이터베이스에는 `db.r5.large` 인스턴스 유형과 같이 메모리 집약적인 워크로드에 최적화된 `r5` 또는 `r6g` DB 인스턴스 클래스가 필요합니다.
+ **AWS 리전 요구 사항**   - 글로벌 데이터베이스에는 하나의에 기본 Neptune DB 클러스터가 AWS 리전필요하고 다른 리전에 하나 이상의 보조 Neptune DB 클러스터가 필요합니다. 보조 읽기 전용 Neptune DB 클러스터를 최대 5개까지 생성할 수 있으며, 각 클러스터는 서로 다른 리전에 위치해야 합니다. 즉, Neptune 글로벌 데이터베이스에 있는 두 Neptune DB 클러스터는 동일한 AWS 리전에 있을 수 없습니다.
+ **엔진 버전 요구 사항**   —   글로벌 데이터베이스의 모든 DB 클러스터에서 사용하는 Neptune 엔진 버전은 동일해야 하며, `1.2.0.0`보다 크거나 같아야 합니다. 새 글로벌 데이터베이스나 클러스터 또는 인스턴스를 생성할 때 엔진 버전을 지정하지 않으면 최신 엔진 버전이 사용됩니다.

**중요**  
글로벌 데이터베이스의 각 DB 클러스터에 대해 DB 클러스터 파라미터 그룹을 독립적으로 구성할 수 있지만, 보조 클러스터를 기본 클러스터로 승격해야 하는 경우 예기치 않은 동작 변경을 방지하려면 클러스터 전체에서 설정을 일관되게 유지하는 것이 가장 좋습니다. 예를 들면, 모든 DB 클러스터의 객체 인덱스, 스트림 등에 대해 동일한 설정을 사용합니다.

## AWS CLI 를 사용하여 Amazon Neptune에서 글로벌 데이터베이스 생성
<a name="neptune-gdb-creating-cli"></a>

**참고**  
이 섹션의 예제는 백슬래시(`\`)를 줄 확장기 문자로 사용하는 UNIX 규칙을 따릅니다. Windows의 경우 백슬래시를 캐럿(`^`)으로 대체하세요.

**를 사용하여 글로벌 데이터베이스를 생성하려면 AWS CLI**

1. 먼저 `[create-global-cluster](https://docs.aws.amazon.com/cli/latest/reference/neptune/create-global-cluster.html)` AWS CLI 명령([CreateGlobalCluster](api-global-dbs.md#CreateGlobalCluster)API 래핑)을 사용하여 빈 글로벌 데이터베이스를 생성합니다. 기본으로 사용할 AWS 리전 의 이름을 지정하고, Neptune을 데이터베이스 엔진으로 설정하고, 필요에 따라 사용할 엔진 버전을 지정합니다(버전 1.2.0.0 이상이어야 함).

   ```
   aws neptune create-global-cluster
     --region (primary region, such as us-east-1) \
     --global-cluster-identifier (ID for the global database) \
     --engine neptune \
     --engine-version (engine version; this is optional)
   ```

1. 글로벌 데이터베이스를 사용할 수 있을 때까지 몇 분 정도 걸릴 수 있으므로, 다음 단계로 넘어가기 전에 [DescribeGlobalClusters](api-global-dbs.md#DescribeGlobalClusters) API를 래핑하는 `[describe-global-clusters](https://docs.aws.amazon.com/cli/latest/reference/neptune/describe-global-clusters.html)` CLI 명령을 통해 글로벌 데이터베이스를 사용할 수 있는지 확인합니다.

   ```
   aws neptune describe-global-clusters \
     --region (primary region) \
     --global-cluster-identifier (global database ID)
   ```

1. Neptune 글로벌 데이터베이스를 사용할 수 있게 되면 기본 클러스터로 사용할 새 Neptune DB 클러스터를 생성할 수 있습니다.

   ```
   aws neptune create-db-cluster \
     --region (primary region) \
     --db-cluster-identifier (ID for the primary DB cluster) \
     --engine neptune \
     --engine-version (engine version; must be >= 1.2.0.0) \
     --global-cluster-identifier (global database ID)
   ```

1. `[describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/neptune/describe-db-clusters.html)` AWS CLI 명령을 사용하여 새 DB 클러스터가 기본 DB 인스턴스를 추가할 준비가 되었는지 확인합니다.

   ```
   aws neptune describe-db-clusters \
     --region (primary region) \
     --db-cluster-identifier (primary DB cluster ID)
   ```

   응답에 `"Status": "available"`이 표시되면 다음 단계로 넘어갑니다.

1. `[create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/neptune/create-db-instance.html)` AWS CLI 명령을 사용하여 기본 클러스터의 기본 DB 인스턴스를 생성합니다. 메모리 최적화 `r5` 또는 `r6g` 인스턴스 유형 중 하나를 사용해야 합니다(예: `db.r5.large`).

   ```
   aws neptune create-db-instance \
     --region (primary region) \
     --db-cluster-identifier (primary cluster ID) \
     --db-instance-class (instance class) \
     --db-instance-identifier (ID for the DB instance) \
     --engine neptune \
     --engine-version (optional: engine version)
   ```

**참고**  
Neptune 대량 로더를 사용하여 새 기본 DB 클러스터에 데이터를 추가할 계획이라면 보조 리전을 *추가하기 전에* 수행해야 합니다. 이는 글로벌 데이터베이스를 완전히 설정한 후 대량 로드를 수행하는 것보다 빠르고 비용 효율적입니다.

이제 [를 사용하여 보조 리전 추가 AWS CLI](#neptune-gdb-attach-cli)에 설명된 대로 새 글로벌 데이터베이스에 하나 이상의 보조 리전을 추가합니다.

## 기존 DB 클러스터를 글로벌 데이터베이스로 전환
<a name="neptune-gdb-add-existing"></a>

기존 DB 클러스터를 글로벌 데이터베이스로 전환하려면 `[create-global-cluster](https://docs.aws.amazon.com/cli/latest/reference/neptune/create-global-cluster.html)` AWS CLI 명령을 사용하여 기존 DB 클러스터가 위치한 AWS 리전 것과 동일한에서 새 글로벌 데이터베이스를 생성하고 해당 `--source-db-cluster-identifier` 파라미터를 기존 클러스터의 Amazon 리소스 이름(ARN)으로 설정합니다.

```
aws neptune create-global-cluster \
  --region (region where the existing cluster is located) \
  --global-cluster-identifier (provide an ID for the new global database) \
  --source-db-cluster-identifier (the ARN of the existing DB cluster) \
  --engine neptune \
  --engine-version (engine version; this is optional)
```

이제 [를 사용하여 보조 리전 추가 AWS CLI](#neptune-gdb-attach-cli)에 설명된 대로 새 글로벌 데이터베이스에 하나 이상의 보조 리전을 추가합니다.

### 스냅샷에서 복원된 DB 클러스터를 기본 클러스터로 사용
<a name="neptune-gdb-use-snapshot"></a>

스냅샷에서 복원한 DB 클러스터를 Neptune 글로벌 데이터베이스로 전환할 수 있습니다. 복원이 완료되면 위에서 설명한 대로 생성한 DB 클러스터를 새 글로벌 데이터베이스의 기본 클러스터로 전환합니다.

## Amazon Neptune의 기본 리전에 보조 글로벌 데이터베이스 리전 추가
<a name="neptune-gdb-attaching"></a>

Neptune 글로벌 데이터베이스에는 기본 DB 클러스터 AWS 리전 와 다른에 하나 이상의 보조 Neptune DB 클러스터가 필요합니다. 기본 DB 클러스터에 최대 5개의 보조 DB 클러스터를 연결할 수 있습니다.

보조 DB 클러스터를 추가할 때마다 기본 클러스터에 포함할 수 있는 읽기 전용 복제본 인스턴스의 최대 수가 1개씩 줄어듭니다. 예를 들어, 보조 클러스터가 4개인 경우 기본 클러스터에 포함할 수 있는 읽기 전용 복제본 인스턴스의 최대 수는 `15 - 4 = 11`개입니다. 즉, 기본 DB 클러스터에 14개의 리더 인스턴스가 있고 보조 클러스터가 하나 있는 경우 다른 보조 클러스터를 추가할 수 없습니다.

### AWS CLI 를 사용하여 Neptune의 글로벌 데이터베이스에 보조 리전 추가
<a name="neptune-gdb-attach-cli"></a>

**를 사용하여 Neptune 글로벌 데이터베이스에 보조 AWS 리전 를 추가하려면 AWS CLI**

1. `[create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/neptune/create-db-cluster.html)` AWS CLI 명령을 사용하여 기본 클러스터와 다른 리전에 새 DB 클러스터를 생성하고 파라미터를 설정`--global-cluster-identifier`하여 글로벌 데이터베이스의 ID를 지정합니다.

   ```
   aws neptune create-db-cluster \
     --region (the secondary region) \
     --db-cluster-identifier (ID for the new secondary DB cluster) \
     --global-cluster-identifier (global database ID)
     --engine neptune \
     --engine-version (optional: engine version)
   ```

1. `[describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/neptune/describe-db-clusters.html)` AWS CLI 명령을 사용하여 새 DB 클러스터가 기본 DB 인스턴스를 추가할 준비가 되었는지 확인합니다.

   ```
   aws neptune describe-db-clusters \
     --region (primary region) \
     --db-cluster-identifier (primary DB cluster ID)
   ```

   응답에 `"Status": "available"`이 표시되면 다음 단계로 넘어갑니다.

1. `r5` 또는 인스턴스 `r6g` 클래스의 인스턴스 유형을 사용하여 `[create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/neptune/create-db-instance.html)` AWS CLI 명령을 사용하여 기본 클러스터의 기본 DB 인스턴스를 생성합니다.

   ```
   aws neptune create-db-instance \
     --region (secondary region) \
     --db-cluster-identifier (secondary cluster ID) \
     --db-instance-class (instance class) \
     --db-instance-identifier (ID for the DB instance) \
     --engine neptune \
     --engine-version (optional: engine version)
   ```

**참고**  
보조 리전에서 많은 수의 읽기 요청을 처리하지 않으면서 데이터를 안정적으로 백업하는 데 주로 관심이 있다면 DB 인스턴스가 없는 보조 DB 클러스터를 만들 수 있습니다. 이렇게 하면 Neptune이 기본 DB 클러스터의 스토리지와 동기화된 상태로 유지하는 보조 클러스터의 스토리지에 대한 비용만 지불하면 되므로, 비용이 절약됩니다.

## Neptune 글로벌 데이터베이스에 연결
<a name="neptune-gdb-connect"></a>

Neptune 글로벌 데이터베이스에 연결하는 방법은 데이터베이스에 써야 하는지, 데이터베이스에서 읽어야 하는지에 따라 달라집니다.
+ 읽기 전용 요청 또는 쿼리의 경우 사용 중인 AWS 리전에 있는 Neptune 클러스터용 리더 엔드포인트에 연결합니다.
+ 변형 쿼리를 실행하려면 애플리케이션 AWS 리전 과 다른에 있을 수 있는 기본 DB 클러스터의 클러스터 엔드포인트에 연결합니다.

# Amazon Neptune 글로벌 데이터베이스 관리
<a name="neptune-gdb-managing"></a>

계획된 관리형 장애 조치 프로세스를 제외하고, Neptune 글로벌 데이터베이스를 구성하는 개별 클러스터에서 대부분의 관리 작업을 수행할 수 있습니다. 계획된 관리형 장애 조치 프로세스는 개별 Neptune DB 클러스터가 아니라 Neptune 글로벌 데이터베이스에만 사용할 수 있습니다. 자세한 내용은 [Neptune 글로벌 데이터베이스에 대한 계획된 관리형 장애 조치 수행](neptune-gdb-disaster-recovery.md#neptune-gdb-managed-failover)를 참조하세요.

기본 리전에서 계획되지 않은 중단으로부터 Neptune 글로벌 데이터베이스를 복구하려면 [예상치 못한 운영 중단이 발생한 경우 Neptune 글로벌 데이터베이스 분리 및 승격](neptune-gdb-disaster-recovery.md#neptune-gdb-detach-and-promote)을 참조하세요.

글로벌 데이터베이스의 각 Neptune 클러스터에 대해 DB 클러스터 파라미터 그룹을 독립적으로 구성할 수 있지만, 보조 클러스터가 기본 클러스터로 승격되는 경우 예기치 않은 동작 변경을 방지하려면 클러스터 전체에서 설정을 일관되게 유지하는 것이 가장 좋습니다. 예를 들면, 모든 DB 클러스터의 객체 인덱스, 스트림 등에 대해 동일한 설정을 사용합니다.

# Neptune 글로벌 데이터베이스에서 DB 클러스터 제거
<a name="neptune-gdb-detaching"></a>

글로벌 데이터베이스에서 DB 클러스터를 제거해야 하는 몇 가지 이유가 있습니다. 예제:
+ 기본 클러스터가 성능이 저하되거나 격리되는 경우 글로벌 데이터베이스에서 기본 클러스터를 제거하면 새 글로벌 데이터베이스를 생성하는 데 사용할 수 있는 독립형 프로비저닝 클러스터가 됩니다([예상치 못한 운영 중단이 발생한 경우 Neptune 글로벌 데이터베이스 분리 및 승격](neptune-gdb-disaster-recovery.md#neptune-gdb-detach-and-promote) 참조).
+ 글로벌 데이터베이스를 삭제하려면 먼저 연결된 모든 클러스터를 제거(분리)합니다. 기본은 마지막으로 남겨 둡니다([Neptune 글로벌 데이터베이스 삭제](neptune-gdb-deleting.md) 참조).

[RemoveFromGlobalCluster](api-global-dbs.md#RemoveFromGlobalCluster) API를 래핑하는 [remove-from-global-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/remove-from-global-cluster.html) CLI 명령을 사용하여 글로벌 데이터베이스에서 Neptune DB 클러스터를 분리할 수 있습니다.

```
aws neptune remove-from-global-cluster \
  --region (region of the cluster to remove) \
  --global-cluster-identifier (global database ID) \
  --db-cluster-identifier (ARN of the cluster to remove)
```

그러면 분리된 DB 클러스터는 독립형 DB 클러스터가 됩니다.

# Neptune 글로벌 데이터베이스 삭제
<a name="neptune-gdb-deleting"></a>

글로벌 데이터베이스와 이 데이터베이스에 연결된 클러스터를 한 번에 삭제할 수는 없습니다. 대신 구성 요소를 하나씩 삭제해야 합니다.

1. [클러스터 제거](neptune-gdb-detaching.md)에 설명된 대로 글로벌 데이터베이스에서 모든 보조 DB 클러스터를 분리합니다. 이제 필요하다면 개별적으로 삭제할 수 있습니다.

1. 글로벌 데이터베이스에서 기본 DB 클러스터를 분리합니다.

1. 기본 클러스터에서 읽기 전용 복제본 DB 인스턴스를 모두 삭제합니다.

1. 기본 클러스터에서 기본(라이터) DB 인스턴스를 삭제합니다. 콘솔에서 이 작업을 수행하면 DB 클러스터도 삭제됩니다.

1. 글로벌 데이터베이스 자체를 삭제합니다. 를 사용하여이 작업을 수행하려면 다음과 같이 [delete-global-cluster](https://docs.aws.amazon.com/cli/latest/reference/neptune/delete-global-cluster.html) CLI 명령([DeleteGlobalCluster](api-global-dbs.md#DeleteGlobalCluster)API 래핑)을 AWS CLI사용합니다.

   ```
   aws neptune delete-global-cluster \
     --region (region of the DB cluster to delete) \
     --global-cluster-identifier (global database ID)
   ```

# Neptune 글로벌 데이터베이스 수정
<a name="neptune-gdb-modifying"></a>

글로벌 데이터베이스의 각 Neptune DB 클러스터에 대해 DB 클러스터 파라미터 그룹을 독립적으로 구성할 수 있지만, 보조 클러스터를 기본 클러스터로 승격해야 하는 경우 예기치 않은 동작 변경을 방지하려면 클러스터 전체에서 설정을 일관되게 유지하는 것이 가장 좋습니다.

[ModifyGlobalCluster](api-global-dbs.md#ModifyGlobalCluster) API를 래핑하는 [modify-global-cluster](https://docs.aws.amazon.com/cli/latest/reference/neptune/modify-global-cluster.html) CLI 명령을 사용하여 글로벌 데이터베이스 자체의 설정을 수정할 수 있습니다. 예를 들어, 다음과 같이 글로벌 데이터베이스 식별자를 변경하는 동시에 삭제 보호를 해제할 수 있습니다.

```
aws neptune modify-global-cluster \
  --region (region of the DB cluster to modify) \
  --global-cluster-identifier (current global database ID) \
  --new-global-cluster-identifier (new global database ID to assign) \
  --no-deletion-protection
```

# 재해 복구 수행 Amazon Neptune
<a name="neptune-gdb-disaster-recovery"></a>

Neptune 글로벌 데이터베이스는 독립형 Neptune DB 클러스터보다 더 포괄적인 장애 조치 기능을 제공합니다. 글로벌 데이터베이스를 사용하면 재해를 대비하고 신속하게 복구할 수 있습니다. 재해 복구는 일반적으로 Recovery Time Objective(RTO) 및 Recovery Point Objective(RPO)를 검토하여 평가됩니다.
+ **Recovery Time Objective(RTO)**   —   재해 발생 후 시스템이 정상 작동 상태로 돌아가는 속도를 나타냅니다. 즉 RTO는 가동 중지 시간을 측정합니다. Neptune 글로벌 데이터베이스의 경우, RTO는 분 단위가 될 수 있습니다.
+ **Recovery Point Objective(RPO)**   —   데이터가 손실 중인 시간입니다. Neptune 글로벌 데이터베이스의 경우, RPO는 일반적으로 초 단위로 측정됩니다([Neptune 글로벌 데이터베이스에 대한 계획된 관리형 장애 조치 수행](#neptune-gdb-managed-failover) 참조).

Neptune 글로벌 데이터베이스의 경우, 장애 조치를 수행하는 2가지 다른 접근 방식이 있습니다.
+ **분리 및 승격(계획되지 않은 수동 복구)**   —   계획되지 않은 중단에서 복구하거나 재해 복구 테스트(DR 테스트)를 수행하려면 글로벌 데이터베이스의 보조 DB 클러스터 중 하나에서 교차 리전 분리 및 승격을 수행합니다. 이 수동 프로세스의 RTO는 [분리 및 승격](#neptune-gdb-detach-and-promote)에 나와 있는 작업을 얼마나 빨리 수행할 수 있는지에 따라 달라집니다. RPO는 일반적으로 초 단위로 이루어지지만, 장애 발생 시 네트워크를 통한 스토리지 복제 지연에 따라 달라집니다.
+ **계획된 관리형 장애 조치**   —   이 접근 방식은 글로벌 데이터베이스의 기본 DB 클러스터를 보조 리전 중 하나로 재배치하는 등 운영 유지 관리 및 기타 계획된 운영 절차를 위한 것입니다. 이 절차는 다른 변경 작업을 수행하기 전에 보조 DB 클러스터를 기본 DB 클러스터와 동기화하므로, RPO는 사실상 0입니다. 즉, 데이터 손실이 없습니다. [Neptune 글로벌 데이터베이스에 대한 계획된 관리형 장애 조치 수행](#neptune-gdb-managed-failover)을(를) 참조하세요.

## 예상치 못한 운영 중단이 발생한 경우 Neptune 글로벌 데이터베이스 분리 및 승격
<a name="neptune-gdb-detach-and-promote"></a>

Neptune 글로벌 데이터베이스가 기본 데이터베이스에서 예기치 않은 중단을 경험하는 매우 드문 상황에서 AWS 리전는 기본 Neptune DB 클러스터와 라이터 노드를 사용할 수 없게 되고 기본 클러스터와 보조 데이터베이스 간의 복제가 중단됩니다. 결과적으로 발생하는 가동 중지 시간(RTO)과 데이터 손실(RPO)을 모두 최소화하려면 교차 리전 분리 및 승격을 신속하게 수행하여 글로벌 데이터베이스를 재구성하면 됩니다.

**작은 정보**  
수행하기 전에 이 프로세스를 이해하고 리전 전반에 문제 발생을 처음 알아차린 즉시 진행할 수 있는 계획을 세우는 것이 좋습니다.  
Amazon CloudWatch를 정기적으로 사용하여 보조 클러스터의 지연 시간을 추적하면 장애 조치가 필요한 경우 지연 시간이 최소한으로 발생하는 보조 리전을 식별할 수 있습니다.
계획을 테스트하여 절차가 완전하고 정확한지 확인하세요.
시뮬레이션된 환경을 사용하여 직원이 교육을 받아 필요할 경우 DR 장애 조치를 신속하게 수행할 수 있도록 준비되었는지 확인해야 합니다.

**기본 리전에서 계획되지 않은 중단 후 보조 클러스터로 장애 조치하려면**

1. 기본 DB 클러스터에서 변형 쿼리 및 기타 쓰기 작업을 더 이상 실행하지 마십시오.

1. 글로벌 데이터베이스의 새 기본 DB 클러스터로 AWS 리전 사용할 보조의 DB 클러스터를 식별합니다. 글로벌 데이터베이스에 보조 AWS 리전이 2개 이상 있는 경우 지연 시간이 가장 짧은 보조 클러스터를 선택합니다.

1. Neptune 글로벌 데이터베이스에서 선택한 보조 DB 클러스터를 분리합니다.

   Neptune 글로벌 데이터베이스에서 보조 DB 클러스터를 제거하면 기본 클러스터에서 보조 클러스터로의 데이터 복제가 즉시 중지되고, 전체 읽기/쓰기 기능을 갖춘 독립 실행형 DB 클러스터로 승격됩니다. 글로벌 데이터베이스의 다른 보조 클러스터는 계속 사용할 수 있으며, 애플리케이션의 읽기 호출을 수락할 수 있습니다.

   Neptune 글로벌 데이터베이스를 재생성하기 전에 클러스터 간의 데이터 불일치를 방지하기 위해 다른 보조 클러스터도 분리해야 합니다([클러스터 제거](neptune-gdb-detaching.md) 참조).

1. 새 엔드포인트를 사용하여 새 기본 클러스터로 선택한 독립형 Neptune DB 클러스터로 모든 쓰기 작업을 전송하도록 애플리케이션을 재구성합니다. Neptune 글로벌 데이터베이스 생성 시의 기본 이름을 수락한 경우, 애플리케이션에 있는 클러스터의 엔드포인트 문자열에서 `-ro`를 제거하여 엔드포인트를 변경할 수 있습니다.

   예를 들어, 보조 클러스터의 엔드포인트 `my-global.cluster-ro-aaaaaabbbbbb.us-west-1.neptune.amazonaws.com`는 해당 클러스터가 글로벌 데이터베이스에서 분리될 때 `my-global.cluster-aaaaaabbbbbb.us-west-1.neptune.amazonaws.com`이 됩니다.

   이 Neptune DB 클러스터는 다음 단계에서 리전을 추가하기 시작하면 새 Neptune 글로벌 데이터베이스의 기본 클러스터가 됩니다.

1. DB 클러스터에 AWS 리전 를 추가합니다. 이렇게 하면 기본 클러스터에서 보조 클러스터로의 복제 프로세스가 시작됩니다. [Amazon Neptune의 기본 리전에 보조 글로벌 데이터베이스 리전 추가](neptune-gdb-setup.md#neptune-gdb-attaching)을(를) 참조하세요.

1. 필요에 AWS 리전 따라를 추가하여 애플리케이션을 지원하는 데 필요한 토폴로지를 다시 생성합니다.

애플리케이션 쓰기가 이러한 변경 전, 중, 후에 올바른 Neptune DB 클러스터로 전송되는지 확인합니다. 이렇게 하면 브레인 분할 문제라고 하는 Neptune 글로벌 데이터베이스의 DB 클러스터 간 데이터 불일치를 방지할 수 있습니다.

## Neptune 글로벌 데이터베이스에 대한 계획된 관리형 장애 조치 수행
<a name="neptune-gdb-managed-failover"></a>

계획된 관리형 장애 조치를 사용하면 필요할 AWS 리전 때마다 Neptune 글로벌 데이터베이스의 기본 클러스터를 다른 로 재배치할 수 있습니다. 일부 조직에서는 기본 클러스터 위치를 정기적으로 교체하려고 합니다.

**참고**  
여기에서 설명하는 계획된 관리형 장애 조치 프로세스는 정상적인 Neptune 글로벌 데이터베이스에서 사용하도록 되어 있습니다. 계획되지 않은 중단에서 복구하거나 재해 복구(DR) 테스트를 수행하려면 [분리 및 승격](#neptune-gdb-detach-and-promote) 프로세스를 따르세요.

계획된 관리형 장애 조치 중에 글로벌 데이터베이스의 기존 복제 토폴로지가 유지되는 동안 기본 클러스터는 선택한 보조 리전으로 장애 조치됩니다. 계획된 관리형 장애 조치 프로세스가 시작되기 전에 글로벌 데이터베이스는 모든 보조 클러스터를 기본 클러스터와 동기화합니다. 모든 클러스터가 동기화되었는지 확인되면 계획된 관리형 장애 조치가 시작됩니다. 기본 리전의 DB 클러스터가 읽기 전용이 되고, 선택한 보조 클러스터는 읽기 전용 인스턴스 중 하나를 전체 라이터 상태로 승격하여 클러스터가 기본 클러스터의 역할을 맡을 수 있습니다. 프로세스 시작 시 모든 보조 클러스터가 기본 클러스터와 동기화되었으므로, 새로운 기본 클러스터는 데이터 손실 없이 글로벌 데이터베이스에 대한 작업을 계속합니다. 기본 클러스터와 선택한 보조 클러스터가 새 역할을 맡으므로, 데이터베이스를 잠시 사용할 수 없습니다.

애플리케이션 가용성을 최적화하려면 기본 DB 클러스터에 대한 쓰기가 최소인 사용량이 적은 시간에 장애 조치를 수행하면 됩니다. 장애 조치를 시작하기 전에 다음 단계도 수행합니다.
+ 가능한 경우 애플리케이션을 오프라인 상태로 전환하여 기본 클러스터에 대한 쓰기 횟수를 줄입니다.
+ 글로벌 데이터베이스에 있는 모든 보조 Neptune DB 클러스터의 지연 시간을 확인하고 전체 지연 시간이 가장 적은 보조 클러스터를 기본 클러스터로 선택합니다. 모든 보조 DB 클러스터에 대해 `NeptuneGlobalDBProgressLag` 지표를 보는 데 Amazon CloudWatch을(를) 사용합니다. 이 지표는 보조 DB 클러스터가 기본 DB 클러스터에 얼마나 뒤처져 있는지 밀리초 단위로 알려줍니다. 이 값은 Neptune이 장애 조치를 완료하는 데 걸리는 시간과 정비례합니다. 즉, 지연 값이 클수록 장애 조치 중단 시간이 길어지므로 지연 시간이 가장 적은 보조 클러스터를 선택해야 합니다. 자세한 정보는 [Neptune CloudWatch 지표](cw-metrics.md)을 참조하세요.

계획된 관리형 장애 조치 중에 선택한 보조 DB 클러스터가 새 기본 DB 클러스터 역할로 승격되지만, 기본 DB 클러스터의 전체 구성을 상속하지는 않습니다. 구성이 일치하지 않으면 성능 문제, 워크로드 비호환성, 기타 비정상적인 동작이 발생할 수 있습니다. 이러한 문제를 방지하려면 장애 조치 전에 글로벌 데이터베이스 클러스터 간의 다음과 같은 구성 차이를 해결하세요.
+ **새 기본 클러스터의 파라미터를 현재 기본 클러스터와 일치하도록 구성합니다**.
+ **모니터링 도구, 옵션 및 경보 구성**   —   현재 기본 클러스터와 동일한 로깅 기능, 경보 등을 사용하여 새 기본 클러스터가 될 DB 클러스터를 구성합니다.
+ **다른 AWS 서비스와의 통합 구성**  - Neptune 글로벌 데이터베이스가 AWS Identity and Access Management (IAM), Amazon S3 또는와 같은 AWS 서비스와 통합되는   경우 새 기본 DB 클러스터와 통합하기 위해 필요에 따라 구성되었는지 AWS Lambda확인합니다.

장애 조치 프로세스가 완료되고 승격된 DB 클러스터가 글로벌 데이터베이스의 쓰기 작업을 처리할 준비가 되면 새 기본 클러스터에 새 엔드포인트를 사용하도록 애플리케이션을 변경해야 합니다.

### AWS CLI 를 사용하여 계획된 관리형 장애 조치 시작
<a name="neptune-gdb-managed-failover-cli"></a>

[FailoverGlobalCluster](api-global-dbs.md#FailoverGlobalCluster) API를 래핑하는 [failover-global-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/failover-global-cluster.html) CLI 명령을 사용하여 Neptune 글로벌 데이터베이스를 장애 조치하세요.

```
aws neptune failover-global-cluster \
  --region (the region where the primary cluster is located) \
  --global-cluster-identifier (global database ID) \
  --target-db-cluster-identifier (the ARN of the secondary DB cluster to promote)
```

# CloudWatch 지표를 사용하여 Amazon Neptune Global Database 모니터링
<a name="neptune-gdb-monitoring"></a>

Neptune은 Neptune 글로벌 데이터베이스를 모니터링하는 데 사용할 수 있는 다음과 같은 CloudWatch 지표를 지원합니다.
+ **`GlobalDbDataTransferBytes`**   –   Neptune 글로벌 데이터베이스의 기본 AWS 리전에서 보조 AWS 리전으로 전송된 다시 실행 로그 데이터의 바이트 수입니다.
+ **`GlobalDbReplicatedWriteIO`**   –   글로벌 데이터베이스의 기본 AWS 리전에서 보조 AWS 리전의 클러스터 볼륨으로 복제된 쓰기 I/O 작업 수입니다.

  Neptune 글로벌 데이터베이스의 각 DB 클러스터에 대한 청구 계산은 해당 클러스터 내에서 수행되는 쓰기를 설명하기 위해 `VolumeWriteIOPS` 지표를 사용합니다. 기본 DB 클러스터의 경우 청구 계산은 보조 DB 클러스터로의 교차 리전 복제를 설명하는 데 `NeptuneGlobalDbReplicatedWriteIO`를 사용합니다.
+ **`GlobalDbProgressLag`**   –   사용자 트랜잭션과 시스템 트랜잭션 모두에 있어서 보조 클러스터가 기본 클러스터보다 얼마나 뒤처져 있는지를 나타내는 밀리초 단위입니다.


| 지표 | 차원 | 게시 위치 | 단위 | 
| --- | --- | --- | --- | 
| `GlobalDbDataTransferBytes` | SourceRegion, DBClusterIdentifier | 보조 | 바이트 | 
| `GlobalDbReplicatedWriteIO` | SourceRegion, DBClusterIdentifier | 보조 | 개수 | 
| `GlobalDbProgressLag` | DBClusterIdentifier, SecondaryRegion : 기본 DBClusterIdentifier, SourceRegion : 보조 | 기본, 보조 | 밀리초 | 