Amazon Aurora
Aurora のユーザーガイド (API バージョン 2014-10-31)

Amazon Aurora エンドポイント

エンドポイントを使用して Amazon AuroraDB クラスターの DB インスタンスに接続できます。エンドポイントは、ホストアドレスとポートを含む URL です。次のエンドポイントは、Aurora DB クラスターから取得できます。

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

クラスターエンドポイントとは、DB クラスターの現在のプライマリ DB インスタンスに接続する Aurora DB クラスターのエンドポイントです。Aurora DB クラスターごとに 1 つのクラスターエンドポイントと 1 つのプライマリ DB インスタンスがあります。

クラスターエンドポイントは、DB クラスターへの読み取り/書き込み接続のフェイルオーバーサポートを提供します。クラスターエンドポイントは、DB クラスターのすべての書き込みオペレーション (挿入、更新、削除、データ定義言語 (DDL) の変更など) で使用します。クラスターエンドポイントは、クエリなどの読み取りオペレーションでも使用できます。

DB クラスターの現在のプライマリ DB インスタンスが失敗した場合、Aurora は新しいプライマリ DB インスタンスに自動的にフェイルオーバーします。フェイルオーバー中、DB クラスターは、新しいプライマリ DB インスタンスからクラスターエンドポイントへの接続リクエストに継続して対応し、サービスの中断は最小限に抑えられます。

次の例では、Aurora MySQL DB クラスターのエンドポイントを示します。

mydbcluster.cluster-123456789012.us-east-1.rds.amazonaws.com:3306

読み取りエンドポイント

読み取りエンドポイントとは、DB クラスターで利用できる Aurora レプリカの 1 つに接続する Aurora DB クラスターのエンドポイントです。各 Aurora DB クラスターに読み取りエンドポイントがあります。複数の Aurora レプリカがある場合、読み取りエンドポイントは各接続リクエストを Aurora レプリカのいずれかにルーティングします。

読み取りエンドポイントは、DB クラスターへの読み取り専用接続のロードバランシングサポートを提供します。読み取りエンドポイントは、クエリなどの読み取りオペレーションで使用します。読み取りエンドポイントを書き込みオペレーションで使用することはできません。

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

次の例では、Aurora MySQL DB クラスターの読み取りエンドポイントを示します。

mydbcluster.cluster-ro-123456789012.us-east-1.rds.amazonaws.com:3306

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

インスタンスエンドポイントは、特定の DB インスタンスに接続する Aurora DB クラスターの DB インスタンス用のエンドポイントです。DB クラスターの各 DB インスタンスには、インスタンスタイプにかかわらず、独自のインスタンスエンドポイントがあります。したがって、DB クラスターの現在のプライマリ DB インスタンスに対する 1 つのインスタンスエンドポイントがあり、DB クラスターの Aurora レプリカごとに 1 つのインスタンスエンドポイントがあります。

インスタンスエンドポイントは、クラスターエンドポイントや読み取りエンドポイントの使用が適切でないシナリオ向けに、DB クラスターへの接続の直接制御を提供します。たとえば、ワークロードタイプに基づき、さらにきめ細かいロードバランシングがアプリケーションに必要になる場合があります。この場合、DB クラスター内の別の Aurora レプリカに接続するように複数のクライアントを設定して、読み取りワークロードを分散させることができます。Aurora PostgreSQL のフェイルオーバー後に接続速度を向上させるインスタンスエンドポイントを使用する例については、「Amazon Aurora PostgreSQL を使用した高速フェイルオーバー」を参照してください。Aurora MySQL のフェイルオーバー後に接続速度を向上させるインスタンスエンドポイントを使用する例については、「MariaDB Connector/J failover support – case Amazon Aurora」を参照してください。

次の例では、Aurora MySQL DB クラスターの DB インスタンスのインスタンスエンドポイントを示します。

mydbinstance.123456789012.us-east-1.rds.amazonaws.com:3306

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

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

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

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

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

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

  • 読み取りエンドポイントは Aurora DB クラスターにある利用可能な Aurora レプリカへの接続のみを負荷分散します。特定のクエリは負荷分散しません。クエリを負荷分散して DB クラスターの読み取りワークロードを分散する場合、アプリケーションでその負荷分散を管理し、Aurora レプリカに直接接続するインスタンスエンドポイントをその負荷分散に使用する必要があります。

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