Multi-AZ DB Cluster是具有两个可读数据库实例的RDS 的高可用性部署模式。 Multi-AZ DB CLuster在同一区域的三个独立AZ中具有一个writer和两个reader。 与Multi-AZ DB Instance相比,Multi-AZ DB Cluster可提供高可用性、更高的读取工作负载容量以及更低的写入延迟。 此外,它的故障转移时间也更快。
下图显示了多可用区数据库集群的架构:

借助Multi-AZ DB Cluster,RDS使用数据库引擎的复制功能将数据从writer实例复制到两个reader实例。 当对writer进行更改时,它将发送到每个reader。 提交更改需要至少一个reader的确认。
reader既充当自动故障转移目标,又提供读取功能以提高应用程序读取吞吐量。 如果写入器数据库实例发生中断,RDS 会故障转移到其中一个reader。
与在 EBS 卷之间使用同步复制的Multi-AZ DB Instance不同,Multi-AZ DB Cluster使用本地连接的 SSD 来存储事务日志,并使用数据库引擎的异步复制, 这会改善提交延迟。
此外,Multi-AZ DB Cluster故障转移到reader的速度比Multi-AZ DB Instance更快,通常在 35 秒内。
在第一节我们创建RDS数据库时,看到有三个部署方式:

Single DB Instance:最简单的方式,只部署一个数据库实例Multi-AZ DB Instance: 除了创建primary库,还会创建一个standby库,这个standby库平时不抗流量,仅在primary库发生故障时自动failover(后面章节会详细介绍它)Multi-AZ DB Cluster:本节我们先为rds-pg-labs数据库添加这种类型的read replica。进入rds-pg-labs集群,点击create read replica:

为read replica命名为rds-pg-multi-az-read:

选择Multi-AZ DB Cluster:

点击Create read replica。等待大概十分钟后它创建完成,它页面上它隶属于rds-pg-labs,并作为Multi-AZ DB replica cluster:

关于Multi-AZ DB replica cluster,可这样理解:
Multi-AZ DB Cluster这种方式read replica, 还不是primary进入这个rds-pg-multi-az-read节点中,它的endpoints跟普通的read replica也不一样,普通的read replica只有一个reader URL,而它有两个(一个reader 一个writer):

在Replication部分能看到它正在跟primary节点之间保持同步数据。
使用上面的endpoint登录上去,并执行命令检查复制延迟:

我们也可以将这个read replica cluster提升为独立的集群,点击Promote:

大概等1-2分钟提升完成。现在它变成独立的Multi-AZ DB Cluster存在了:
