Amazon RDS Multi-AZ
易于管理关系数据库,针对总拥有成本进行了优化
什么是 RDS 多可用区
Amazon RDS 多可用区部署为 RDS 数据库(DB)实例提供增强的可用性和持久性,使其成为生产数据库工作负载的理想之选。您可根据工作负载的可用性要求,在具有一个备用实例或两个可读备用实例的多可用区部署之间进行选择。
带一个备用实例的 RDS 多可用区
自动失效转移
通过自动数据库失效转移支持应用程序的高可用性,该失效转移最快可在 60 秒内完成,不会丢失数据,无需手动干预。
保护数据库性能
通过从备用实例进行备份,避免在备份过程中暂停主实例上的输入/输出活动。
增强持久性
使用 RDS 多可用区同步复制技术使备用数据库实例上的数据与主数据库实例保持一致。
提高可用性
通过在第二个可用区中部署备用实例来增强可用性,并在可用区或数据库实例出现故障时获得容错能力。
对照表
Amazon RDS Single-AZ,或带一个备用实例的 Amazon RDS Multi-AZ,或带两个可读备用实例的 Amazon RDS Multi-AZ
|
功能
|
单可用区
|
带一个备用实例的多可用区
|
带两个可读备用实例的多可用区
|
|---|---|---|---|
|
可用引擎
|
|
|
|
|
额外的读取容量
|
|
|
· |
|
事务提交延迟更低(吞吐量更高)
|
|
|
|
|
自动故障转移持续时间
|
|
|
|
|
次要版本升级停机时间
|
|
|
|
|
更高的可用区中断恢复能力
|
|
|
|
|
事务提交抖动更低
|
|
|
|
定价
Amazon RDS 多可用区可用于 RDS for PostgreSQL、RDS for MySQL、RDS for MariaDB、RDS for SQL Server、RDS for Oracle 和 RDS for Db2。带两个可读备用实例的 Amazon RDS 多可用区可用于 RDS for PostgreSQL 和 RDS for MySQL。要了解 Amazon Aurora 如何通过让您的数据在三个可用区保持持久性来增强可用性,请参阅包含 Aurora 副本的多可用区部署。
对于单可用区部署、带一个备用实例的多可用区部署和带两个可读备用实例的多可用区部署,定价按照使用的数据库实例小时数计费,起止时间分别为数据库实例的启动和停止或删除时间。部分数据库实例小时以一秒为增量计费,最低收取 10 分钟的费用,然后提供可计费状态更改(例如创建、启动或修改数据库实例类)。
更多关于 RDS 多可用区定价的信息,请访问 RDS 定价页面。
一般性问题
全部打开创建或修改数据库实例并以多可用区部署模式运行后,Amazon RDS 将自动在不同的可用区预置和维护同步“备用”副本。对数据库实例的更新将同步复制到可用区的备用副本中,以保持同步并保护最新的数据库更新,以防数据库实例出现故障。
如果遇到特定类型的计划内维护或很少出现的数据库实例故障或可用区故障,Amazon RDS 将自动故障转移到备用副本,以便在提升备用副本后尽快恢复数据库写入和读取操作。由于数据库实例的名称记录相同,所以应用程序无需手动管理干预即可恢复数据库操作。借助多可用区部署,您可以透明地进行复制。无需与备用副本交互,而且它不可用来服务读取流量。有关多可用区部署的更多信息,请参阅 Amazon RDS 用户指南。
可用区是区域内的不同位置,旨在隔离其他可用区的故障。每个可用区在其独立的、物理上显著不同的基础设施中运行,具有高度可靠性。可用区之间不共用像发电机和冷却设备那样的常见故障点。此外,它们在物理上也是相互独立的,即使火灾、龙卷风或洪涝等极为罕见的灾难也只会影响单个可用区。同一区域内的可用区之间具有低延迟的网络连接。
以多可用区部署模式运行数据库实例时,“主”副本服务于数据库写入和读取操作。此外,Amazon RDS 会在场景后预配置和维护“备用”副本,它是主副本的最新副本。在故障转移情况下,会“提升”备用副本。故障转移后,备用副本将成为主副本,并接受数据库操作。在提升前的任何时候,无需与备用副本直接交互(例如,执行读取操作)。如果您有兴趣扩展读取流量,以突破单个数据库实例的流量限制,请参阅关于只读副本的常见问题。
以多可用区部署模式运行数据库实例的主要优势是可提高数据库的持久性和可用性。多可用区部署提供了增强的可用性和容错功能,这使其自然而然成为生产环境的理想之选。
在遇到罕见的数据库实例组件故障或某个可用区的可用性受损的情况时,以多可用区部署模式运行数据库实例可确保数据安全无虞。例如,如果主副本中的存储卷出现故障,Amazon RDS 将自动启动故障转移到备用副本,在此您的所有数据库更新完整无缺。相对于单一可用区的标准部署,这种方式提供更长的数据持久性,否则将需要用户启动还原操作且最近可还原时间(通常在最后五分钟内)之后进行的更新将不可用。
此外,以多可用区部署模式运行时,您还可获得增强数据库可用性的优势。如果发生可用区故障或数据库实例故障,可用性影响将仅限于完成自动故障转移的时间。多可用区部署的可用性优势还可延伸到计划内维护。
例如,对于自动备份,由于从备用副本进行备份,所以在首选的备份窗口期间不会再暂停主副本中的 I/O 活动。至于打补丁或数据库实例类扩展,这些操作在自动故障转移前会首先在备用副本上执行。因此,可用性影响将仅限于完成自动故障转移的时间。
以多可用区部署模式运行数据库实例的另一潜在优势是,系统将自动执行数据库实例故障转移,无需进行管理。在 Amazon RDS 环境中,这意味着出现可用区故障或数据库实例故障时,无需监控数据库实例事件及启动手动数据库实例恢复(通过 RestoreDBInstanceToPointInTime 或 RestoreDBInstanceFromSnapshot API)。
您可以看到,由于是代您执行同步数据复制,所以相对于单一可用区中的标准数据库实例部署,延迟有所提升。
要创建多可用区数据库实例部署,只需在使用 AWS 管理控制台启动数据库实例时,单击“多可用区部署”的“是”选项。
另外,如果您使用的是 Amazon RDS API,则可调用 CreateDBInstance API 并将“多可用区”参数的值设置为“true”。 要将现有的标准(单一可用区)数据库实例转换为多可用区,请在 AWS 管理控制台中修改数据库实例,或使用 ModifyDBInstance API 并将“多可用区”参数的值设置为“是”。
- 已拍摄主实例的快照。
- 在不同的可用区,从该快照创建新的备用实例。
- 在主实例和备用实例之间配置同步复制。
对于 RDS for PostgreSQL、RDS for MySQL、RDS for MariaDB、RDS for SQL Server、RDS for Oracle 和 RDS for Db2 数据库引擎,当您选择将 Amazon RDS 实例从单可用区转换为多可用区时,会发生以下情况:
因此,在实例从单可用区转换为多可用区时,不会出现停机时间。不过,当备用实例在捕获数据以赶上主实例时,您可能会看到延迟增加。
- 主可用区的可用性受损
- 主节点的网络连接受损
- 主节点的计算单位出现故障
- 主区域的存储故障
Amazon RDS 可检测多可用区部署中最常见的故障并自动从中恢复过来,这样您可在无管理干预的情况下尽快恢复数据库操作。如果发生以下任何一种情况,Amazon RDS 将自动执行故障转移:
注意:为了获得更强的可用性,对多可用区部署启动诸如数据库实例扩展或系统升级之类的操作时,如操作系统安装补丁程序,这些操作首先会应用于备用,之后才自动进行故障转移。因此,可用性仅会在执行自动故障转移的时段内受到影响。请注意,Amazon RDS Multi-AZ 部署不会进行自动失效转移来响应某些数据库操作,如长时间运行查询、死锁或数据库崩溃错误。
会,Amazon RDS 将发出数据库实例事件,以通知您系统已执行自动失效转移。您可以单击 Amazon RDS 控制台的“事件”部分或使用 DescribeEvents API 返回数据库实例相关事件的相关信息。发生特定数据库事件时,您还可以通过 Amazon RDS 事件通知获取通知。
Amazon RDS 将自动进行失效转移,以便尽快恢复数据库操作而无需管理干预。故障转移后,Amazon RDS 会轻松翻转数据库实例的别名记录 (CNAME) 以指向备用副本,备用副本继而被提升为新的主副本。我们鼓励您遵循最佳做法,在应用程序层实施数据库连接重试。
故障转移(即从在主副本上检测到故障到在备用副本上继续事务之间的时间)通常在一至两分钟内完成。故障转移时间也会受是否必须还原大型未提交事务这一因素的影响;为获得最佳效果,建议对多可用区使用足够大的实例类型。AWS 还建议对多可用区实例使用预调配 IOPS,以获得快速、可预测及一致的吞吐量性能。
在各种故障条件下,Amazon RDS 会自动进行失效转移,无需用户操作。此外,Amazon RDS 会在重新引导实例时提供启动故障转移的选项。您可以通过 AWS 管理控制台或调用 RebootDBInstance API 来访问此功能。
对于多可用区部署,可以轻松地将“多可用区”参数设置为“是”。创建备用副本、同步复制和故障转移都将自动进行处理。这意味着,无法选择部署备用副本的可用区或更改可用的备用副本数(Amazon RDS 会为每个数据库实例主副本预置一个专用的备用副本)。备用副本也不可以配置为接受数据库读取活动。 了解有关多可用区配置的更多信息。
可以。备用副本将自动预置到与数据库实例主副本所在区域的不同可用区。
是的,您可以使用 AWS 管理控制台或 DescribeDBInstances API 查看当前主副本的位置。
可用区与同一区域内的其他可用区之间可以实现低延迟网络连接。此外,您在设计应用程序及其他 AWS 资源的架构时可以跨多个可用区设置冗余,以便应用程序在出现可用区故障时能够灵活反应。多可用区部署可满足数据库层的此项需求,而无需用户干预管理。
您可以按照在单一可用区或多可用区部署中运行标准部署的相同方式与自动备份和数据库快照功能交互。如果您正在运行多可用区部署,将自动从备用副本执行自动备份和数据库快照,以免主副本中的 I/O 暂停。请注意,在备份单一可用区和多可用区部署时,您可能会经历更长时间的 I/O 延迟(一般持续几分钟)。
多可用区部署与标准、单一可用区部署的还原操作启动方式也完全相同(时间点还原或从数据库快照还原)。您可以使用 RestoreDBInstanceFromSnapshot 或 RestoreDBInstanceToPointInTime API 创建新数据库实例部署。无论在标准部署还是多可用区部署中启动源备份,这些新数据库实例部署都可能是标准或多可用区模式。
RDS 多可用区入门
正在寻找有关如何快速开始使用 RDS 多可用区的信息? 以下是一些最重要的技术文档指南、用户指南和教程,其中介绍了如何通过几个步骤开始使用 RDS 多可用区。