在Amazon Aurora进行故障转移,读取最高优先级的副本
#aws #database #rds

在本文中,我将向您展示如何通过Amazon RDS管理控制台创建高可用的Aurora群集,添加2个具有不同优先级的Aurora副本,并且在不同的可用性区域中,测试失败情况,场景,失败情况,然后终止整个基础结构。

  • 默认情况下,Amazon Aurora群集只有一个主要的计算实例执行读/写操作。

  • 通过在群集中添加一个或多个Aurora副本,读取可伸缩性和高可用性。

  • 如果集群中的主要实例失败,Aurora会自动提升具有最高优先级的现有副本为新的主要实例。

  • 通常,您希望在不同的可用性区(AZ)中创建Aurora副本,而不是主要实例。

  • 以这种方式,您的数据库可以在基础架构的另一个AZ中迅速失败到另一个AZ中的副本,检测到主要AZ中的问题。

  • 但是,如果您没有在集群中添加Aurora副本,则必须等待Aurora在检测到故障时为您创建一个新的替换主实例,这可能需要更长的时间。

  • Amazon Aurora使用MySQL兼容性,但是您可以遵循PostgreSQL版本的类似过程。

请访问我的 GitHub Repository for Aurora articles 有关各种主题的不断更新。

让我们开始!

目标:

1。创建一个亚马逊极光群

2。创建高可用性的极光副本

3。设置故障转移的数据库群集

4。测试数据库故障转移

5。终止资源

先决条件:

  • AWS用户帐户带有管理员访问,而不是根帐户。
  • aws cli。

使用的资源:

Creating a RDS MySQL DB instance

该项目实施的步骤:

1.创建一个Amazon Aurora群集

  • 在“选择引擎”页面上,选择“标准创建”。

  • 创建具有以下参数的Amazon RDS数据库 -
    Standard create Amazon Aurora engine, Dev/Test, database-1, <username> admin, <password>, db.r5.large, default vpc, DB subnet group - default, public access - no, Under Multi-AZ deployment - select No, VPC security group - create new - aurora-sg, us-east-1a, under additional configuration - myrds

  • 创建数据库。

  • 等待3-4分钟,直到状态更改为 available

  • 注意: availability zone - us-east-1a

Image description

2.创建2个Aurora副本以进行高可用性

  • 您可以通过在AWS区域内的不同可用性区域(AZS)中添加读取副本来增加计算可用性。

  • 最多可以在区域内的AZS上添加15个Aurora副本。

创建第一读者

  • 选择集群的“单选”按钮,并通过选择操作>添加阅读器来创建Aurora副本。

  • reader-1, us-east-1c, Under Additional configuration - Failover priority - 0

  • 单击添加读取器。

创建第二读者

  • 选择集群的“单选”按钮,并通过选择操作>添加阅读器来创建Aurora副本。

  • reader-2, us-east-1d, Under Additional configuration - Failover priority - 1

  • 单击添加读取器。

Image description

3.设置故障转移的数据库群集

仅使用此步骤,如果您在创建步骤2中显示的读取副本时不使用优先顺序。

  • 选择阅读器db实例旁边的单选按钮 - reader-1 并选择修改。

  • 设置最高优先级。在故障转移下,选择tier-0。

    • 在故障转移期间,Amazon RDS将促进具有最高优先级(从第0层开始)的副本,以成为新的主要实例。
  • 选择继续,然后修改DB实例。

4.测试数据库故障转移

  • 在目标作者实例上选择“单选”按钮。

  • 然后选择操作>故障转移。

  • 在故障转移期间,Amazon RDS将促进具有最高优先级的副本(从第0层开始),成为新的主要实例。

  • 这将导致副本 - reader-1 with tier-0 被提升,因为新的主要(或作者)实例和旧的primary(或writer)实例成为新的读取副本。

  • reader-2 仍然是读取复制品,因为我们将优先顺序设置为 - tier-1

Image description

  • 故障转移所需的时间取决于故障转移时数据库活动的数量,但通常不到60秒。

  • 您可以在日志和事件下监视故障转移过程。

Image description

  • 通过使用端点,故障转移对应用程序透明。

  • 当群集和读取器端点用作数据库的DNS时,实例连接将保持相同并自动使用新的DB实例。

5.终止资源

  • delete reader-1 and reader-2

  • 删除Amazon Aurora群集

  • 不要创建最终快照,然后选择确认。输入删除我并选择删除。此步骤将删除Aurora群集,包括存储和所有自动DB备份。

Image description

  • 一段时间后,您将将该数据库1作为删除

Image description

到目前为止我们所做的

  • 我们已经通过Amazon RDS管理控制台创建了一个高可用的Aurora群集,添加了2个具有不同优先级的Aurora副本,并在不同的可用性区域中进行了测试,然后测试了一个失败的场景,然后终止了整个基础结构。<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< /li>