Amazon Aurora エンドポイント接続 - Amazon Aurora

Amazon Aurora エンドポイント接続

通常、Amazon Aurora は単一の DB インスタンスではなく、DB インスタンスのクラスターを必要とします。各接続は特定の DB インスタンスで処理されます。Aurora クラスターに接続すると、指定したホスト名とポートがエンドポイントと呼ばれる中間ハンドラーをポイントします。Aurora は、エンドポイントメカニズムを使用してこれらの接続を抽象化します。したがって、一部の DB インスタンスが使用できないときに、すべてのホスト名をハードコード化したり、接続のロードバランシングやルート再設定を行うために独自のロジックを記述したりする必要はありません。

Aurora の特定のタスクでは、インスタンスやインスタンスグループごとに異なるロールを実行します。例えば、プライマリインスタンスはすべてのデータ定義言語 (DDL) とデータ操作言語 (DML) のステートメントを処理します。最大 15 の Aurora レプリカで読み取り専用のクエリトラフィックを処理します。

Aurora エンドポイントのタイプ

エンドポイントを使用すると、ユースケースに基づいて各接続を対応するインスタンスまたはインスタンスグループにマッピングできます。例えば、DDL ステートメントを実行するには、プライマリインスタンスであるいずれのインスタンスにも接続できます。クエリを実行するには、リーダーエンドポイントに接続でき、Aurora はすべての Aurora レプリカ間で自動的に接続バランシングを実行します。容量や設定が異なる DB インスタンスで構成されるクラスターの場合は、DB インスタンスのサブセット別に関連付けたカスタムエンドポイントに接続できます。診断またはチューニングの場合は、特定のインスタンスエンドポイントに接続して、特定の DB インスタンスに関する詳細を調査できます。

エンドポイントは、ホストアドレスとポートを含む Aurora 固有の URL として表されます。Aurora DB クラスターでは、以下のタイプのエンドポイントを使用できます。

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

クラスターのプライマリインスタンスに接続してアプリケーションを開発およびテストし、INSERT ステートメント、DDL、DML、ETL オペレーションなどの変換を実行します。「Aurora クラスターのエンドポイントの表示」の説明に従い、AWS Management Console、AWS CLI、または Amazon RDS API を使用して、クラスターエンドポイントの場所を検索します。

クラスターエンドポイントの詳細については、「Amazon Aurora のクラスターエンドポイント」を参照してください。

リーダーエンドポイント

クエリを実行します。Aurora は、すべての Aurora レプリカ間で接続バランシングを自動的に実行します。「Aurora クラスターのエンドポイントの表示」の説明に従い、AWS Management Console、AWS CLI、または Amazon RDS API を使用して、リーダーエンドポイントの場所を検索します。

リーダーエンドポイントの詳細については、「Amazon Aurora のリーダーエンドポイント」を参照してください。

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

特定の DB インスタンスの詳細を調べて、診断またはチューニングを行います。各インスタンスのインスタンスエンドポイントの場所は、インスタンスのインスタンス詳細ページで、AWS Management Console でのみ確認できます。

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

カスタムエンドポイント

DB クラスター上の DB インスタンスのさまざまなサブセットに接続します。これは、DB クラスター内に異なるインスタンス容量と設定がある場合に便利です。「Aurora クラスターのエンドポイントの表示」の説明に従い、AWS Management Console、AWS CLI、または Amazon RDS API を使用して、カスタムエンドポイントの場所を検索します。

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

Aurora クラスターのエンドポイントの表示

インスタンスエンドポイントの場所は AWS Management Console のインスタンス詳細ページにのみ表示されますが、コンソール、AWS CLI、または Amazon RDS API を使用して、クラスター、リーダー、カスタムエンドポイントの場所を検索できます。

Console

AWS Management Console では、クラスターエンドポイント、リーダーエンドポイント、およびカスタムエンドポイントが、クラスターのインスタンス詳細ページに表示されます。インスタンスエンドポイントは、各インスタンスの詳細ページに表示されます。接続する際には、詳細ページに表示されるエンドポイント名に、コロン (:) の後に、関連付けられたポート番号を加えます。

AWS CLI

AWS CLI では、ライターエンドポイント、リーダーエンドポイント、およびカスタムエンドポイントが describe-db-clusters コマンドの出力に表示されます。例えば、次のコマンドは、現在の AWS リージョンにあるすべてのクラスターのエンドポイント属性を表示します。

aws rds describe-db-clusters --query '*[].{Endpoint:Endpoint,ReaderEndpoint:ReaderEndpoint,CustomEndpoints:CustomEndpoints}'
Amazon RDS API

Amazon RDS API では、DescribeDBClusterEndpoints オペレーションを呼び出してエンドポイントを取得します。

Aurora エンドポイントでの高可用性の使用

高可用性が重要であるクラスターでは、クラスターエンドポイントを読み取り/書き込み接続や汎用接続に使用し、リーダーエンドポイントを読み取り専用接続に使用します。ライターエンドポイントとリーダーエンドポイントは、インスタンスエンドポイントよりも DB インスタンスのフェイルオーバーを適切に管理します。インスタンスエンドポイントとは異なり、ライターエンドポイントとリーダーエンドポイントは、クラスター内の DB インスタンスが利用できなくなった場合に、接続先の DB インスタンスを自動的に変更します。クラスターエンドポイントおよびリーダーエンドポイントの詳細については、「Amazon Aurora のクラスターエンドポイント」および「Amazon Aurora のリーダーエンドポイント」を参照してください。

DB クラスターのプライマリ DB インスタンスが失敗した場合、Aurora は新しいプライマリ DB インスタンスに自動的にフェイルオーバーします。そのために、既存の Aurora レプリカが新しいプライマリ DB インスタンスに昇格されるか、新しいプライマリ DB インスタンスが作成されます。フェイルオーバーが発生した場合、クラスターエンドポイントを使用して、新しく昇格または新規作成されたプライマリ DB インスタンスに再接続するか、リーダーエンドポイントを使用して DB クラスター内のいずれかの Aurora レプリカに接続できます。フェイルオーバーの際に、Aurora レプリカが新しいプライマリ DB インスタンスに昇格されると、リーダーエンドポイントは接続を DB クラスターの新しいプライマリ DB インスタンスに短時間だけ振り向ける場合があります。

インスタンスエンドポイントへの接続を管理するように独自のアプリケーションロジックを設計する場合は、DB クラスター内の使用可能な DB インスタンスの結果セットを手動またはプログラムで検出できます。describe-db-clustersAWS CLI コマンドまたは DescribeDBClusters RDS API オペレーションを使用して、DB クラスターとリーダーエンドポイント、DB インスタンス、DB インスタンスがリーダーか、DB インスタンスの昇格階層を検索します。次に、フェイルオーバー後のインスタンスクラスを確認し、適切なインスタンスエンドポイントに接続できます。

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

Amazon Aurora の高可用性の詳細については、「Amazon Aurora の高可用性」を参照してください。