Amazon Neptune エンドポイントに接続する - Amazon Neptune

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

Amazon Neptune エンドポイントに接続する

Amazon Neptune は、単一の DB インスタンスではなく、DB インスタンスのクラスターを使用します。各 Neptune 接続は特定の DB インスタンスで処理されます。Neptune クラスターに接続すると、指定したホスト名とポートがエンドポイントと呼ばれる中間ハンドラーをポイントします。エンドポイントは、ホストアドレスとポートURLを含む です。Neptune エンドポイントは、暗号化された Transport Layer Security/Secure Sockets Layer (TLS/SSL) 接続を使用します。

Neptune は、エンドポイントメカニズムを使用してこれらの接続を抽象化するため、一部の DB インスタンスが使用できない場合に、ホスト名をハードコードしたり、接続を再ルーティングするための独自のロジックを記述したりする必要がありません。

エンドポイントを使用すると、ユースケースによって各接続を対応するインスタンスまたはインスタンスグループにマッピングできます。カスタムエンドポイントを使用すると、DB インスタンスのサブセットに接続できます。次のエンドポイントは、Neptune DB クラスターから取得できます。

Neptune クラスターエンドポイント

クラスターエンドポイントとは、DB クラスターの現在のプライマリ DB インスタンスに接続する Neptune DB クラスターのエンドポイントです。Neptune DB クラスターごとに 1 つのクラスターエンドポイントと 1 つのプライマリ 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 レプリカの 1 つに接続する Neptune DB クラスターのエンドポイントです。各 Neptune DB クラスターに読み取りエンドポイントがあります。複数の Neptune レプリカがある場合、読み取りエンドポイントは各接続リクエストを Neptune レプリカのいずれかにルーティングします。

読み取りエンドポイントでは、DB クラスターへの読み取り専用接続にラウンドロビンルーティングを使用できます。リーダーエンドポイントは、 クエリなどの読み取りオペレーションで使用します。

単一インスタンスのクラスター (リードレプリカのないクラスター) がない限り、書き込みオペレーションにリーダーエンドポイントを使用することはできません。その場合のみ、読み取りオペレーションと書き込みオペレーションにリーダーを使用できます。

リーダーエンドポイントのラウンドロビンルーティングは、DNSエントリが指すホストを変更することで機能します。を解決するたびにDNS、別の IP を取得し、それらの に対して接続が開かれますIPs。接続が確立された後、その接続のリクエストはすべて、同じホストに送信されます。クライアントは新しい接続を作成し、DNSレコードを再度解決して、異なるリードレプリカへの接続を取得する必要があります。

注記

WebSockets 多くの場合、 接続は長期間存続します。別のリードレプリカを取得するには、以下の操作を実行します。

  • クライアントが接続するたびにDNSエントリを解決することを確認します。

  • 接続を閉じて再接続する。

さまざまなクライアントソフトウェアは、さまざまなDNS方法で解決される可能性があります。例えば、クライアントが解決DNSし、接続ごとに IP を使用する場合、すべてのリクエストを 1 つのホストに転送します。

DNS クライアントまたはプロキシのキャッシュは、キャッシュから同じエンドポイントにDNS名前を解決します。これは、ラウンドロビンルーティングとフェイルオーバーシナリオ両方の問題です。

注記

DNS キャッシュ設定を無効にして、毎回強制的にDNS解決します。

DB クラスターは使用可能な Neptune レプリカ間の読み取りエンドポイントに接続リクエストを分散します。DB クラスターにプライマリ DB インスタンスのみが含まれている場合、読み取りエンドポイントはプライマリ DB インスタンスからの接続リクエストに対応します。Neptune レプリカが DB クラスターに対して作成された場合、読み取りエンドポイントは、新しい Neptune レプリカから読み取りエンドポイントへの接続リクエストに引き続き対応し、サービスの中断は最小限に抑えられます。

Neptune DB クラスターのリーダーエンドポイントを次の例に示します。

mydbcluster.cluster-ro-123456789012.us-east-1.neptune.amazonaws.com:8182

Neptune インスタンスエンドポイント

インスタンスエンドポイントは、特定の DB インスタンスに接続する Neptune DB クラスターの DB インスタンス用のエンドポイントです。DB クラスターの各 DB インスタンスには、インスタンスタイプにかかわらず、独自のインスタンスエンドポイントがあります。したがって、DB クラスターの現在のプライマリ DB インスタンスに対して 1 つのインスタンスエンドポイントがあります。また、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

詳細については、「カスタムエンドポイントの操作」を参照してください。

Neptune エンドポイントに関する考慮事項

Neptune エンドポイントを操作する場合に、次の考慮事項があります。

  • インスタンスエンドポイントを使用して DB クラスターの特定の DB インスタンスに接続する前に、代わりに DB クラスターのクラスターエンドポイントまたは読み取りエンドポイントの使用を検討してください。

    クラスターエンドポイントと読み取りエンドポイントは、可用性の高いシナリオのサポートを提供します。DB クラスターのプライマリ DB インスタンスが失敗した場合、Neptune は新しいプライマリ DB インスタンスに自動的にフェイルオーバーします。そのために、既存の Neptune レプリカが新しいプライマリ DB インスタンスに昇格されるか、新しいプライマリ DB インスタンスが作成されます。フェイルオーバーが発生した場合、クラスターエンドポイントを使用して新しく昇格したプライマリインスタンスまたは作成されたプライマリ DB インスタンスに接続できます。または、読み取りエンドポイントを使用して DB クラスター内の使用可能なその他の Neptune レプリカに接続することもできます。

    この手法を使用しない場合でも、目的のオペレーションについて、DB クラスターの適切な DB インスタンスに接続することを確認できます。そのためには、DB クラスターで利用可能な DB インスタンスの結果セットをプログラムで検出し、フェイルオーバー後にインスタンスタイプを確認してから、特定の DB インスタンスのインスタンスエンドポイントを使用できます。

    フェイルオーバーについての詳細は、「Neptune DB クラスターの耐障害性」を参照してください。

     

  • 読み取りエンドポイントは Neptune DB クラスターにある利用可能な Neptune レプリカへの接続のみをルーティングします。特定のクエリはルーティングされません。

    重要

    Neptune では負荷分散されません。

    クエリを負荷分散してクラスターの読み取りワークロードを配分する場合は、アプリケーションでそれを管理する必要があります。インスタンスエンドポイントを使用して Neptune レプリカに直接接続し、負荷を分散する必要があります。

     

  • リーダーエンドポイントのラウンドロビンルーティングは、DNSエントリが指すホストを変更することで機能します。クライアントは新しい接続を作成し、DNSレコードを再度解決して、新しい可能性のあるリードレプリカへの接続を取得する必要があります。

     

  • フェイルオーバー中、Neptune レプリカが新しいプライマリ DB インスタンスに昇格した場合に、読み取りエンドポイントが DB クラスターの新しいプライマリ DB インスタンスに短時間直接接続する場合があります。