

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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 クラスターで少なくとも 1 つの追加または更新操作を実行することをお勧めします。これにより、本番クラスタをバックアップクラスタに再同期するときに後で参照できるデータポイントが変更ストリームに追加されます。

## バックアップクラスターを設定するリージョンに新しい VPC を作成します。
<a name="streams-disaster-recovery-setup-new-vpc"></a>

プライマリクラスターとは異なるリージョンに新しい Neptune DB クラスターを作成する前に、クラスターをホストするターゲットリージョンに新しい VPC を確立する必要があります。プライマリクラスターとバックアップクラスター間の接続は、異なる VPC 内のプライベートサブネット間のトラフィックを使用する VPC ピアリングによって確立されます。ただし、2 つの VPC 間で VPC ピアリングを確立するには、重複する CIDR ブロックまたは IP アドレススペースがあってはなりません。これは、デフォルトの VPC の CIDR ブロックが常に同じであるため、両方のリージョンでデフォルト VPC を使用することはできません (`172.31.0.0/16`)。

以下の条件を満たしている限り、ターゲットリージョンで既存の 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 ログでモニタリングできます。