

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

# Neptune에서 Neptune으로의 복제 설정
<a name="streams-disaster-recovery-setup"></a>

기본 프로덕션 DB 클러스터는 지정된 소스 리전의 VPC에 있습니다. 재해 복구를 위해 다른 복구 리전에서 복제하거나 에뮬레이션해야 하는 3가지 주요 요소는 다음과 같습니다.
+ 클러스터에 저장된 데이터입니다.
+ 기본 클러스터의 구성입니다. 여기에는 IAM 인증 사용 여부, 암호화 여부, DB 클러스터 파라미터, 인스턴스 파라미터, 인스턴스 크기 등이 포함됩니다.
+ 대상 VPC, 보안 그룹 등을 포함하여 사용하는 네트워킹 토폴로지입니다.

다음과 같은 Neptune 관리 API를 사용하여 해당 정보를 수집할 수 있습니다.
+ [`DescribeDBClusters`](api-clusters.md#DescribeDBClusters)
+ [`DescribeDBInstances`](api-instances.md#DescribeDBInstances)
+ [`DescribeDBClusterParameters`](api-parameters.md#DescribeDBClusterParameters)
+ [`DescribeDBParameters`](api-parameters.md#DescribeDBParameters)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcs.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcs.html)

수집한 정보를 바탕으로 다음 절차에 따라 다른 리전에 백업 클러스터를 설정할 수 있습니다. 그러면 장애 발생 시 프로덕션 클러스터가 장애 조치할 수 있습니다.

## Neptune 스트림 활성화
<a name="streams-disaster-recovery-setup-enable-streams"></a>

[ModifyDBClusterParameterGroup](api-parameters.md#ModifyDBClusterParameterGroup)을 사용하여 `neptune_streams` 파라미터를 1로 설정할 수 있습니다. 그런 다음 변경 사항을 적용하려면 DB 클러스터의 모든 인스턴스를 재부팅합니다.

Neptune 스트림이 활성화된 후에는 소스 DB 클러스터에서 추가 또는 업데이트 작업을 한 번 이상 수행하는 것이 좋습니다. 이렇게 하면 나중에 프로덕션 클러스터를 백업 클러스터와 재동기화할 때 참조할 수 있는 데이터 포인트로 변경 스트림이 채워집니다.

## 백업 클러스터를 설정하려는 리전에 새 VPC 생성
<a name="streams-disaster-recovery-setup-new-vpc"></a>

기본 클러스터와 다른 리전에 새 Neptune DB 클러스터를 생성하기 전에 대상 리전에 클러스터를 호스팅할 새 VPC를 구축해야 합니다. 기본 클러스터와 백업 클러스터 간의 연결은 서로 다른 VPC의 프라이빗 서브넷 전반에서 트래픽을 사용하는 VPC 피어링을 통해 설정됩니다. 하지만 두 VPC 간에 VPC 피어링을 설정하려면 두 VPC의 CIDR 블록 또는 IP 주소 공간이 겹치지 않아야 합니다. 즉, 기본 VPC의 CIDR 블록은 항상 동일하기 때문에(`172.31.0.0/16`) 두 리전에서 기본 VPC를 그냥 사용할 수는 없습니다.

다음 조건을 충족하는 한 대상 리전의 기존 VPC를 사용할 수 있습니다.
+ 기본 클러스터가 있는 VPC의 CIDR 블록과 중첩되는 CIDR 블록이 없습니다.
+ 기본 클러스터가 위치한 VPC와 동일한 CIDR 블록을 가진 다른 VPC와 아직 피어링되지 않았습니다.

대상 리전에 적합한 VPC가 없는 경우 Amazon EC2 [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVpc.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVpc.html) API를 사용하여 새로 생성합니다.

## 기본 클러스터의 스냅샷을 생성하여 대상 백업 리전으로 복원
<a name="streams-disaster-recovery-setup-snapshot-restore"></a>

이제 대상 백업 리전의 적절한 VPC, 즉 프로덕션 클러스터의 복사본에 해당하는 Neptune 클러스터를 새로 생성합니다.

**백업 리전에 프로덕션 클러스터의 복사본 생성**

1. 대상 백업 리전에서 프로덕션 DB 클러스터에서 사용하는 파라미터와 파라미터 그룹을 다시 생성합니다. [`CreateDBClusterParameterGroup`](api-parameters.md#CreateDBClusterParameterGroup), [`CreateDBParameterGroup`](api-parameters.md#CreateDBParameterGroup), [`ModifyDBClusterParameterGroup`](api-parameters.md#ModifyDBClusterParameterGroup), [`ModifyDBParameterGroup`](api-parameters.md#ModifyDBParameterGroup)를 사용하여 이 작업을 수행할 수 있습니다.

   참고로 [`CopyDBClusterParameterGroup`](api-parameters.md#CopyDBClusterParameterGroup) 및 [`CopyDBParameterGroup`](api-parameters.md#CopyDBParameterGroup) API는 현재 교차 리전 복사를 지원하지 않습니다.

1. [`CreateDBClusterSnapshot`](api-snapshots.md#CreateDBClusterSnapshot)을 사용하여 프로덕션 리전의 VPC에 프로덕션 클러스터의 스냅샷을 생성합니다.

1. [`CopyDBClusterSnapshot`](api-snapshots.md#CopyDBClusterSnapshot)을 사용하여 스냅샷을 대상 백업 리전의 VPC에 복사합니다.

1. [`RestoreDBClusterFromSnapshot`](api-snapshots.md#RestoreDBClusterFromSnapshot)을 사용하여 복사한 스냅샷으로 대상 백업 리전의 VPC에 새 DB 클러스터를 생성합니다. 기본 프로덕션 클러스터에서 복사한 구성 설정과 파라미터를 사용하세요.

1. 이제 새 Neptune 클러스터가 존재하지만, 인스턴스를 포함하지 않습니다. [`CreateDBInstance`](api-instances.md#CreateDBInstance)를 사용하여 프로덕션 클러스터의 라이터 인스턴스와 인스턴스 유형 및 크기가 동일한 새 기본/라이터 인스턴스를 생성합니다. 장애 조치 전에 백업 인스턴스를 사용하여 대상 리전의 읽기 I/O를 처리하지 않는 한, 이 시점에서 추가 읽기 전용 복제본을 생성할 필요가 없습니다.

## 기본 클러스터의 VPC와 새 백업 클러스터의 VPC 간에 VPC 피어링 설정
<a name="streams-disaster-recovery-setup-vpc-peering"></a>

VPC 피어링을 설정하면 기본 클러스터의 VPC가 마치 단일 프라이빗 네트워크인 것처럼 백업 클러스터의 VPC와 통신할 수 있습니다. 이 작업을 수행하려면 다음 단계를 수행하십시오.

1. 프로덕션 클러스터의 VPC에서 [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/CreateVpcPeeringConnection.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/CreateVpcPeeringConnection.html) API를 호출하여 피어링 연결을 설정합니다.

1. 대상 백업 클러스터의 VPC에서 [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/AcceptVpcPeeringConnection.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/AcceptVpcPeeringConnection.html) API를 호출하여 피어링 연결을 수락합니다.

1. 프로덕션 클러스터의 VPC에서 [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/CreateRoute.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/CreateRoute.html) API를 사용하여 VPC의 라우팅 테이블에 경로를 추가합니다. 이 라우팅 테이블은 모든 트래픽을 대상 VPC의 CIDR 블록으로 리디렉션하여 VPC 피어링 접두사 목록을 사용하도록 합니다.

1. 마찬가지로, 대상 백업 클러스터의 VPC에서 [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/CreateRoute.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/CreateRoute.html) API를 사용하여 트래픽을 기본 클러스터의 VPC로 라우팅하는 VPC의 라우팅 테이블에 경로를 추가합니다.

## Neptune 스트림 복제 인프라 설정
<a name="streams-disaster-recovery-setup-streams-replication"></a>

이제 두 클러스터가 모두 배포되고 두 리전 간의 네트워크 통신이 설정되었으므로 [Neptune-to-Neptune CloudFormation 템플릿을](streams-consumer-setup.md) 사용하여 데이터 복제를 지원하는 추가 인프라와 함께 Neptune 스트림 소비자 Lambda 함수를 배포합니다. 기본 프로덕션 클러스터의 VPC에서 이 작업을 수행하세요.

이 CloudFormation 스택에 제공해야 하는 파라미터는 다음과 같습니다.
+ **`NeptuneStreamEndpoint`**   –   기본 클러스터의 스트림 엔드포인트(URL 형식)입니다. 예를 들어 `https://{{(cluster name)}}:8182/pg/stream`입니다.
+ **`QueryEngine`**   –   `gremlin`, `sparql` 또는 `openCypher`여야 합니다.
+ **`RouteTableIds`**   –   DynamoDB VPC 엔드포인트와 모니터링 VPC 엔드포인트 모두에 경로를 추가할 수 있습니다.

  2개의 추가 파라미터(`CreateMonitoringEndpoint` 및 `CreateDynamoDBEndpoint`)도 기본 클러스터의 VPC에 존재하지 않는 경우 true로 설정해야 합니다. 이미 존재하는 경우 false로 설정되어 있는지 확인합니다. 그렇지 않으면 CloudFormation 생성이 실패합니다.
+ **`SecurityGroupIds`**   –   Lambda 소비자가 기본 클러스터의 Neptune 스트림 엔드포인트와 통신하는 데 사용하는 보안 그룹을 지정합니다.

  대상 백업 클러스터에서 이 보안 그룹부터 시작되는 트래픽을 허용하는 보안 그룹을 연결합니다.
+ **`SubnetIds`**   –   Lambda 소비자가 기본 클러스터와 통신하는 데 사용할 수 있는 기본 클러스터 VPC의 서브넷 ID 목록입니다.
+ **`TargetNeptuneClusterEndpoint`**   –   대상 백업 클러스터의 클러스터 엔드포인트(호스트 이름만 해당)입니다.
+ **`TargetAWSRegion`**   -와 같은 대상 백업 클러스터의 AWS 리전`us-east-1`입니다.) 교차 AWS 리전 복제의 경우와 같이 대상 백업 클러스터의 리전이 Neptune 소스 클러스터의 리전과 다른 경우에만이 파라미터를 제공해야 합니다. 소스 리전과 대상 리전이 동일한 경우 이 파라미터는 선택 사항입니다.

  `TargetAWSRegion` 값이 [Neptune이 지원하는 유효한 AWS 리전](limits.md#limits-regions)이 아닌 경우 프로세스가 실패합니다.
+ **`VPC`**   –   기본 클러스터 VPC의 ID입니다.

다른 모든 파라미터는 기본값을 그대로 유지할 수 있습니다.

 CloudFormation 템플릿이 배포되면 Neptune은 기본 클러스터에서 백업 클러스터로 변경 사항을 복제하기 시작합니다. Lambda 소비자 함수에서 생성된 CloudWatch 로그에서 이 복제를 모니터링할 수 있습니다.