Amazon Neptune でのグローバルデータベースのセットアップ - Amazon Neptune

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

Amazon Neptune でのグローバルデータベースのセットアップ

Neptune グローバルデータベースは、次のいずれかの方法で作成できます。

Amazon Neptune のグローバルデータベースの設定要件

Neptune グローバルデータベースは少なくとも 2 つの AWS リージョン にまたがります。プライマリ AWS リージョン には、1 つのライターインスタンスを持つ Neptune DB クラスターが含まれます。1 つから 5 つのセカンダリ AWS リージョン のそれぞれに、リードレプリカインスタンス全体で構成される読み取り専用の Neptune DB クラスターが含まれます。少なくとも 1 つのセカンダリ AWS リージョン が必要です。

グローバルデータベースを構成する Neptune DB クラスターには、以下の固有の要件があります。

  • DB インスタンスクラスの要件 — グローバルデータベースには、db.r5.large インスタンスタイプなど、メモリ集約的ワークロードに最適化された r5 または r6g DB インスタンスクラスが必要です。

  • AWS リージョン の要件 - グローバルデータベースには、1 つの AWS リージョン に 1 つのプライマリ Neptune DB クラスターと、別のリージョンに少なくとも 1 つのセカンダリ Neptune DB クラスターが必要です。最大 5 つのセカンダリ読み取り専用 Neptune DB クラスターを作成でき、それぞれが異なるリージョンになければなりません。つまり、Neptune グローバルデータベースの 2 つの Neptune DB クラスターを同じ AWS リージョン に置くことはできません。

  • エンジンバージョン要件 — グローバルデータベース内のすべての DB クラスターで使用される Neptune エンジンのバージョンは同じでなければならず、かつ、1.2.0.0 以上である必要があります。新しいグローバルデータベース、クラスター、またはインスタンスを作成するときにエンジンバージョンを指定しなかった場合、最新のエンジンバージョンが使用されます。

重要

DB クラスターパラメータグループはグローバルデータベースの DB クラスターごとに個別に設定できますが、セカンダリクラスターをプライマリに昇格させる必要がある場合に予期しない動作の変化を避けるため、クラスター間で設定を一定に保つことが最善です。たとえば、すべての DB クラスターでオブジェクトインデックス、ストリームなどに同じ設定を使用します。

AWS CLI を使用して Amazon Neptune にグローバルデータベースを作成する

注記

このセクションの例は、行延長文字としてバックスラッシュ (\) を使用するという UNIX の規則に従っています。Windows の場合は、バックスラッシュをキャレット (^) に置き換えてください。

AWS CLI を使用してグローバルデータベースを作成するには
  1. まず、create-global-cluster AWS CLI コマンド (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)
  2. グローバルデータベースが使用可能になるまで数分かかることがあるため、次のステップに進む前に、describe-global-clusters CLI コマンド (DescribeGlobalClusters API をラップする) を使用して、グローバルデータベースが使用可能であることを確認します。

    aws neptune describe-global-clusters \ --region (primary region) \ --global-cluster-identifier (global database ID)
  3. 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)
  4. describe-db-clusters AWS CLI コマンドを使用して、新しい DB クラスターにプライマリ DB インスタンスを追加する準備ができていることを確認します。

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

    結果に "Status": "available" のステータスが表示されたら、次のステップに進みます。

  5. create-db-instance AWS CLI コマンドを使用して、プライマリクラスターのプライマリ DB インスタンスを作成します。db.r5.large など、メモリ最適化された r5 または r6g インスタンスタイプのいずれかを使用する必要があります。

    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 を使用してセカンダリリージョンを追加する で説明されているように、新しいグローバルデータベースに 1 つ以上のセカンダリリージョンを追加します。

既存の DB クラスターをグローバルデータベースに変える

既存の DB クラスターをグローバルデータベースに変換するには、create-global-cluster 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 を使用してセカンダリリージョンを追加する で説明されているように、新しいグローバルデータベースに 1 つ以上のセカンダリリージョンを追加します。

スナップショットから復元された DB クラスターをプライマリクラスターとして使用する

スナップショットから復元された DB クラスターを Neptune グローバルデータベースに変換できます。復元が完了したら、作成した DB クラスターを上記のように新しいグローバルデータベースのプライマリクラスターにします。

Amazon Neptune のプライマリリージョンにセカンダリグローバルデータベースリージョンを追加する

Neptune グローバルデータベースには、プライマリ DB クラスターのほかに、異なる AWS リージョン に少なくとも 1 つのセカンダリ Neptune DB クラスターが必要です。プライマリ DB クラスターには、最大 5 つのセカンダリ DB クラスターをアタッチできます。

セカンダリ DB クラスターを追加するたびに、プライマリクラスターに配置できるリードレプリカインスタンスの最大数が 1 つ減ります。例えば、セカンダリクラスターが 4 つある場合、プライマリクラスターに配置できるリードレプリカインスタンスの最大数は 15 - 4 = 11 です。つまり、プライマリ DB クラスターにリーダーインスタンスが既に 14 あり、セカンダリクラスターが 1 つある場合、これ以上セカンダリクラスターを追加できません。

AWS CLI を使用して Neptune のグローバルデータベースにセカンダリリージョンを追加する

AWS CLI を使用して Neptune グローバルデータベースにセカンダリ AWS リージョン を追加するには
  1. create-db-cluster 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)
  2. describe-db-clusters AWS CLI コマンドを使用して、新しい DB クラスターにプライマリ DB インスタンスを追加する準備ができていることを確認します。

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

    結果に "Status": "available" のステータスが表示されたら、次のステップに進みます。

  3. create-db-instance AWS CLI コマンドを使用し、r5 または r6g インスタンスクラスのインスタンスタイプを使用して、プライマリクラスターのプライマリ 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 グローバルデータベースへの接続

Neptune グローバルデータベースへの接続方法は、データベースへの書き込みと、データベースからの読み取りの、いずれを必要とするのかに応じて異なります。

  • 読み取り専用のリクエストまたはクエリの場合、AWS リージョン にある Neptune クラスターのリーダーエンドポイントに接続します。

  • ミューテーションクエリを実行するには、プライマリ DB クラスターのクラスターエンドポイントに接続します。このエンドポイントはアプリケーションとは異なる AWS リージョン にある場合があります。