

# Amazon Aurora エンドポイント接続
<a name="Aurora.Overview.Endpoints"></a>

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

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

**Topics**
+ [Aurora エンドポイントのタイプ](#Aurora.Overview.Endpoints.Types)
+ [Aurora クラスターのエンドポイントの表示](#Aurora.Endpoints.Viewing)
+ [Aurora エンドポイントでの高可用性の使用](#Aurora.Overview.Endpoints.HA)
+ [Amazon Aurora のクラスターエンドポイント](Aurora.Endpoints.Cluster.md)
+ [Amazon Aurora のリーダーエンドポイント](Aurora.Endpoints.Reader.md)
+ [Amazon Aurora のインスタンスエンドポイント](Aurora.Endpoints.Instance.md)
+ [Amazon Aurora のカスタムエンドポイント](Aurora.Endpoints.Custom.md)

## Aurora エンドポイントのタイプ
<a name="Aurora.Overview.Endpoints.Types"></a>

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

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

**クラスターエンドポイント**  
クラスターのプライマリインスタンスに接続してアプリケーションを開発およびテストし、`INSERT` ステートメント、DDL、DML、ETL オペレーションなどの変換を実行します。「[Aurora クラスターのエンドポイントの表示](#Aurora.Endpoints.Viewing)」の説明に従い、AWS マネジメントコンソール、AWS CLI、または Amazon RDS API を使用して、クラスターエンドポイントの場所を検索します。  
クラスターエンドポイントの詳細については、「[Amazon Aurora のクラスターエンドポイント](Aurora.Endpoints.Cluster.md)」を参照してください。

**リーダーエンドポイント**  
クエリを実行します。Aurora は、すべての Aurora レプリカ間で接続バランシングを自動的に実行します。「[Aurora クラスターのエンドポイントの表示](#Aurora.Endpoints.Viewing)」の説明に従い、AWS マネジメントコンソール、AWS CLI、または Amazon RDS API を使用して、リーダーエンドポイントの場所を検索します。  
リーダーエンドポイントの詳細については、「[Amazon Aurora のリーダーエンドポイント](Aurora.Endpoints.Reader.md)」を参照してください。

**インスタンスエンドポイント**  
特定の DB インスタンスの詳細を調べて、診断またはチューニングを行います。各インスタンスのインスタンスエンドポイントの場所は、インスタンスのインスタンス詳細ページで、AWS マネジメントコンソール でのみ確認できます。  
インスタンスエンドポイントの詳細については、「[Amazon Aurora のインスタンスエンドポイント](Aurora.Endpoints.Instance.md)」を参照してください。

**カスタムエンドポイント**  
DB クラスター上の DB インスタンスのさまざまなサブセットに接続します。これは、DB クラスター内に異なるインスタンス容量と設定がある場合に便利です。「[Aurora クラスターのエンドポイントの表示](#Aurora.Endpoints.Viewing)」の説明に従い、AWS マネジメントコンソール、AWS CLI、または Amazon RDS API を使用して、カスタムエンドポイントの場所を検索します。  
カスタムエンドポイントの詳細については、「[Amazon Aurora のカスタムエンドポイント](Aurora.Endpoints.Custom.md)」を参照してください。

**Aurora Global Database ライターエンドポイント**  
 Aurora Global Database には、スタンドアロン Aurora クラスターのクラスターエンドポイントと同じ目的を果たす特殊なタイプのエンドポイントがあります。このエンドポイントは、書き込みリクエストと読み取りリクエストの両方を処理します。スイッチオーバーまたはフェイルオーバーの結果、セカンダリクラスターが新しいプライマリクラスターになると、Aurora は、このエンドポイントを自動的に切り替えて他方の AWS リージョンにある新しいプライマリクラスターのクラスターエンドポイントを指すようにします。これにより、アプリケーションの接続文字列に AWS リージョンをエンコードする必要はなく、グローバルデータベースのレイアウトが変更されても接続文字列を変更する必要はありません。Aurora でこのエンドポイントを作成するには、Aurora Global Database のセットアップ時に、例えば AWS マネジメントコンソールで Aurora クラスターの **[リージョンを追加]** を選択します。  
 このタイプのエンドポイントを Aurora Global Database で使用する方法については、「[Amazon Aurora Global Database への接続](aurora-global-database-connecting.md)」を参照してください。

## Aurora クラスターのエンドポイントの表示
<a name="Aurora.Endpoints.Viewing"></a>

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

------
#### [ Console ]

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

------
#### [ AWS CLI ]

AWS CLI では、ライターエンドポイント、リーダーエンドポイント、およびカスタムエンドポイントが [describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html) コマンドの出力に表示されます。例えば、次のコマンドは、現在の AWS リージョンにあるすべてのクラスターのエンドポイント属性を表示します。

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

------
#### [ Amazon RDS API ]

Amazon RDS API では、[DescribeDBClusterEndpoints](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusterEndpoints.html) オペレーションを呼び出してエンドポイントを取得します。

------

## Aurora エンドポイントでの高可用性の使用
<a name="Aurora.Overview.Endpoints.HA"></a>

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

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

インスタンスエンドポイントへの接続を管理するように独自のアプリケーションロジックを設計する場合は、DB クラスター内の使用可能な DB インスタンスの結果セットを手動またはプログラムで検出できます。[https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html) AWS CLI コマンドまたは [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html) RDS API オペレーションを使用して、DB クラスターとリーダーエンドポイント、DB インスタンス、また DB インスタンスがリーダーかどうか、DB インスタンスの昇格階層を確認します。次に、フェイルオーバー後のインスタンスクラスを確認し、適切なインスタンスエンドポイントに接続できます。

フェイルオーバーについての詳細は、「[Aurora DB クラスターの耐障害性](Concepts.AuroraHighAvailability.md#Aurora.Managing.FaultTolerance)」を参照してください。

Amazon Aurora の高可用性の詳細については、「[Amazon Aurora の高可用性](Concepts.AuroraHighAvailability.md)」を参照してください。