

# Amazon Aurora 的最佳实践
<a name="Aurora.BestPractices"></a>

接下来，您可以找到有关使用 Amazon Aurora 数据库集群或向其迁移数据的一般最佳实践和选项的信息。

一些 Amazon Aurora 的最佳实践是特定于特殊数据库引擎的。有关特定于数据库引擎的 Aurora 最佳实践的更多信息，请参阅以下内容。


| 数据库引擎 | 最佳实践 | 
| --- | --- | 
|  Amazon Aurora MySQL  |  请参阅 [Amazon Aurora MySQL 的最佳实践](AuroraMySQL.BestPractices.md)  | 
|  Amazon Aurora PostgreSQL  |  请参阅 [Amazon Aurora PostgreSQL 的最佳实践](AuroraPostgreSQL.BestPractices.md)  | 

**注意**  
有关 Aurora 的常见建议，请参阅 [来自 Amazon Aurora 的建议](monitoring-recommendations.md)。

**Topics**
+ [Amazon Aurora 的基本操作指导方针](#Aurora.BestPractices.OperationalGuidelines)
+ [数据库实例 RAM 建议](#Aurora.BestPractices.Performance.Sizing)
+ [Amazon 数据库驱动程序](#Aurora.BestPractices.Drivers)
+ [监控 Amazon Aurora](#Aurora.BestPractices.Monitoring)
+ [使用数据库参数组和数据库集群参数组](#Aurora.BestPractices.ParameterGroups)
+ [Amazon Aurora 最佳实践视频](#Aurora.BestPractices.Presentation)

## Amazon Aurora 的基本操作指导方针
<a name="Aurora.BestPractices.OperationalGuidelines"></a>

以下是使用 Amazon Aurora 时每个人都应遵循的基本操作指导方针。Amazon RDS 服务等级协议要求您遵循以下指导方针：
+ 监控您的内存、CPU 和存储空间的使用情况。可将 Amazon CloudWatch 设置为在使用模式发生更改或接近部署容量时向您发送通知。这样，您就可以保持系统的性能和可用性。
+ 如果您的客户端应用程序正在缓存数据库实例的域名服务 (DNS) 数据，请将生存时间 (TTL) 值设置为小于 30 秒。数据库实例的底层 IP 地址在故障转移后可能会发生变化。因此，如果您的应用程序试图连接到不再使用的 IP 地址，那么缓存 DNS 数据达较长时间可能导致连接失败。如果连接使用读取器端点，并且只读副本实例之一处于维护状态或已删除，那么具有多个只读副本的 Aurora 数据库集群也会遭遇连接失败。
+ 测试数据库集群的故障转移，以了解对于您的使用案例而言，该过程需要多长时间。测试故障转移可帮助您确保访问数据库集群的应用程序能够在故障转移后自动连接到新的数据库集群。

## 数据库实例 RAM 建议
<a name="Aurora.BestPractices.Performance.Sizing"></a>

要获得最佳性能，请分配足够多的 RAM，以便您的工作集几乎完全位于内存中。要确定您的工作集是否几乎完全位于内存中，请在 Amazon CloudWatch 中检查以下指标：
+ `VolumeReadIOPS` – 此指标测量集群卷中的读取 I/O 操作的平均数量，每隔 5 分钟报告一次。`VolumeReadIOPS` 值应该是一个较小且稳定的值。在某些情况下，您可能发现读取 I/O 处于高峰或高于平常。如果是这样，请调查数据库集群中的数据库实例，以查看哪些数据库实例正在导致 I/O 增加。
**提示**  
 如果您的 Aurora MySQL 集群使用并行查询，您可能会看到 `VolumeReadIOPS` 值出现增长。并行查询不使用缓冲池。因此，尽管查询速度很快，但这种优化的处理可能会导致读取操作和相关费用的增加。
+ `BufferCacheHitRatio` – 该指标测量数据库集群中的数据库实例的缓冲区缓存处理的请求百分比。通过使用该指标，您可以深入了解从内存中处理的数据量。

  高命中率表明您的数据库实例有足够的可用内存。低命中率表示您对这个数据库实例的查询经常转向磁盘。调查工作负载以查看哪些查询正在导致该行为。

在调查工作负载后，如果发现需要更多内存，则考虑将数据库实例类扩展为具有更多 RAM 的类。在执行该操作后，您可以调查前面讨论的指标，并继续根据需要进行扩展。如果您的 Aurora 集群大于 40 TB，请勿使用 db.t2、db.t3 或 db.t4g 实例类。

有关更多信息，请参阅 [Amazon Aurora 的 Amazon CloudWatch 指标](Aurora.AuroraMonitoring.Metrics.md)。

## Amazon 数据库驱动程序
<a name="Aurora.BestPractices.Drivers"></a>

推荐使用 Amazon 驱动程序套件来建立应用程序连接。借助这些驱动程序可显著缩短切换和故障转移时间，并支持使用 Amazon Secrets Manager、Amazon Identity and Access Management（IAM）和联合身份进行身份验证。Amazon 驱动程序依靠监控数据库集群状态和了解集群拓扑，来确定新的写入器。这种方法将切换和故障转移时间缩短到几秒钟，而开源驱动程序的切换和故障转移时间则为几十秒。

随着新服务功能的推出，使用 Amazon 驱动程序套件可为这些服务功能提供内置支持。

有关更多信息，请参阅 [使用 Amazon 驱动程序连接到 Aurora 数据库集群](Aurora.Connecting.md#Aurora.Connecting.Drivers)。

## 监控 Amazon Aurora
<a name="Aurora.BestPractices.Monitoring"></a>

Amazon Aurora 提供了各种指标和洞察，您可以监控它们以确定 Aurora 数据库集群的运行状况和性能。您可以使用各种工具（例如 Amazon Web Services 管理控制台、Amazon CLI 和 CloudWatch API）查看 Aurora 指标。您可以在 Performance Insights 控制面板中查看组合的 Performance Insights 和 CloudWatch 指标，并监控您的数据库实例。为使用此监控视图，必须为您的数据库实例开启 Performance Insights。有关监控视图的信息，请参阅[使用性能详情控制面板查看组合指标](Viewing_Unifiedmetrics.md)。

您可以创建特定时间段的性能分析报告，并查看已确定的见解和解决问题的建议。有关更多信息，请参阅[在性能详情中创建性能分析报告](USER_PerfInsights.UsingDashboard.AnalyzePerformanceTimePeriod.md)。

## 使用数据库参数组和数据库集群参数组
<a name="Aurora.BestPractices.ParameterGroups"></a>

在将参数组更改应用于生产数据库集群之前，我们建议您在测试数据库集群上试验数据库参数组和数据库集群参数组更改。不正确地设置数据库引擎参数可能会产生意外的不利影响，包括性能下降和系统不稳定。

在修改数据库引擎参数时，请务必谨慎，并在修改数据库参数组之前备份数据库集群。有关备份数据库集群的信息，请参阅[备份和还原 Amazon Aurora 数据库集群](BackupRestoreAurora.md)。

## Amazon Aurora 最佳实践视频
<a name="Aurora.BestPractices.Presentation"></a>

YouTube 上的 Amazon 在线技术谈话频道包括一个视频演示，旨在介绍创建和配置更安全且可用性更高的 Amazon Aurora 数据库集群的最佳实践。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/ydzd95r4_VQ/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/ydzd95r4_VQ)
