

# Amazon Aurora 端点连接
<a name="Aurora.Overview.Endpoints"></a>

Amazon Aurora 通常涉及数据库实例集群而不是单个实例。每个连接均由特定的数据库实例处理。在连接到 Aurora 集群时，您指定的主机名和端口将指向名为*终端节点*的中间处理程序。Aurora 使用终端节点机制来提取这些连接。因此，当一些数据库实例不可用时，您不必对所有主机名进行硬编码，也不必编写自己的逻辑来平衡连接和重新路由连接。

对于某些 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 副本之间执行连接平衡。对于具有不同容量或配置的数据库实例的集群，您可以连接到与不同的数据库实例子集关联的自定义终端节点。对于诊断或优化，您可以连接到特定实例终端节点以检查有关特定数据库实例的详细信息。

终端节点表示为包含主机地址和端口的 Aurora 特定的 URL。可从 Aurora 数据库集群使用以下类型的终端节点。

**集群端点**  
连接到集群的主实例来开发和测试应用程序，并执行诸如 `INSERT` 语句等转换以及 DDL、DML 和 ETL 操作。使用 AWS 管理控制台、AWS CLI 或 Amazon RDS API 查找集群端点位置，如[查看 Aurora 集群的终端节点](#Aurora.Endpoints.Viewing)中所述。  
有关集群端点的更多信息，请参阅 [Amazon Aurora 的集群端点](Aurora.Endpoints.Cluster.md)。

**读取器端点**  
执行查询。Aurora 会自动在所有 Aurora 副本之间执行连接平衡。使用 AWS 管理控制台、AWS CLI 或 Amazon RDS API 查找读取器端点位置，如[查看 Aurora 集群的终端节点](#Aurora.Endpoints.Viewing)中所述。  
有关读取器端点的更多信息，请参阅 [Amazon Aurora 的读取器端点](Aurora.Endpoints.Reader.md)。

**实例端点**  
检查有关特定数据库实例的详细信息以进行诊断或调整。只能在 AWS 管理控制台中实例的实例详细信息页面上查找每个实例的实例端点位置。  
有关实例端点的更多信息，请参阅 [Amazon Aurora 的实例端点](Aurora.Endpoints.Instance.md)。

**自定义终端节点**  
连接到数据库集群上不同的数据库实例子集。当数据库集群内具有不同的实例容量和配置时，这非常有用。使用 AWS 管理控制台、AWS CLI 或 Amazon RDS API 查找自定义端点位置，如[查看 Aurora 集群的终端节点](#Aurora.Endpoints.Viewing)中所述。  
有关自定义端点的更多信息，请参阅 [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>

对于高可用性非常重要的集群，使用集群端点进行读/写或通用连接，并使用读取器端点进行只读连接。写入器和读取器端点比实例端点更好地管理数据库实例失效转移。与实例端点不同，如果集群中的数据库实例变得不可用，写入器和读取器端点会自动更改其连接到的数据库实例。有关集群和读取器端点的更多信息，请参阅 [Amazon Aurora 的集群端点](Aurora.Endpoints.Cluster.md)和 [Amazon Aurora 的读取器端点](Aurora.Endpoints.Reader.md)。

如果数据库集群的主数据库实例失败，Aurora 将自动失效转移到新的主数据库实例。它通过将现有 Aurora 副本提升为新的主数据库实例或者创建新的主数据库实例来完成该操作。如果发生了失效转移，您可以使用集群端点重新连接到新提升或新创建的主数据库实例，或者使用读取器端点重新连接到数据库集群中的 Aurora 副本之一。在失效转移期间，在将 Aurora 副本提升为新的主数据库实例之后，读取器终端节点可能会在很短的时间内将连接定向到数据库集群的新主数据库实例。

如果您设计自己的应用程序逻辑来管理与实例终端节点的连接，则可以手动或以编程方式搜索数据库集群中生成的可用数据库实例集。使用 [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 操作查找数据库集群和读取器端点、数据库实例、数据库实例是否为读取器及其提升层级。然后，您可以在失效转移后确认其实例类，并连接到适当的实例终端节点。

有关失效转移的更多信息，请参阅[Aurora 数据库集群的容错能力](Concepts.AuroraHighAvailability.md#Aurora.Managing.FaultTolerance)。

有关 Amazon Aurora 中的高可用性的更多信息，请参阅 [Amazon Aurora 的高可用性](Concepts.AuroraHighAvailability.md)。