全局表 - 多活、多区域复制
Amazon DynamoDB 全局表是一项完全托管式、多区域和多活数据库功能,它为全局扩展的应用程序提供易于使用的数据复制以及快速的本地读写性能。
全局表可以跨 AWS 区域以及(可选)跨 AWS 账户自动复制 DynamoDB 表数据,而无需您构建和维护自己的复制解决方案。全局表非常适合需要通过多区域部署来实现业务连续性和高可用性的应用程序。任何全局表副本都可以处理读写操作。如果应用程序处理在某个区域中断,应用程序可以通过将流量转移到其它区域,来实现恢复点目标(RPO)较低或为零的高韧性。在 DynamoDB 可用的所有区域中均可使用全局表。
一致性模式
创建全局表时,可以配置其一致性模式。全局表支持两种一致性模式:多区域最终一致性(MREC)和多区域强一致性(MRSC)。
如果您在创建全局表时未指定一致性模式,则全局表默认为多区域最终一致性(MREC)。全局表不能包含配置了不同一致性模式的副本。创建全局表后,无法更改其一致性模式。
账户配置
DynamoDB 现在支持两种全局表模型,每种模型都设计用于不同的架构模式:
-
同账户全局表:在单个 AWS 账户中创建和管理所有副本。
-
多账户全局表:副本跨多个 AWS 账户部署,并加入到共享复制组中。
同账户和多账户模型都支持多区域写入、异步复制、以最后写入者为准冲突解决方案,并采用相同的计费模型。但是,这两种模型在账户、权限、加密和表治理的管理方式上有所不同。
为 MRSC 配置的全局表仅支持同账户配置。
您可以使用 AWS 管理控制台来配置全局表。全局表使用现有的 DynamoDB API 来读取表中的数据和将数据写入表中,因此无需对应用程序进行任何更改。您只需为您预置或使用的资源付费,而无需支付任何前期费用,也没有任何承诺。
同账户和多账户全局表的对比
| 属性 | 同账户全局表 | 多账户全局表 |
|---|---|---|
| 主要使用案例 | 为单个 AWS 账户内的应用程序实现多区域韧性 | 为由不同团队、不同业务部门或不同账户(具有严格的跨账户安全边界)拥有的应用程序实现多区域、多账户复制 |
| 账户模型 | 在一个 AWS 账户中创建和管理所有副本 | 在同一个部署中跨多个 AWS 账户创建副本 |
| 资源所有权 | 一个账户拥有表和所有副本 | 每个账户都拥有其本地副本;复制组跨多个账户 |
| 支持的版本 | 全局表版本 2019.11.21(当前版本)和版本 2017.11.29(旧版) | 全局表版本 2019.11.21(当前版本) |
| 控制面板操作 | 通过表拥有者账户创建、修改和删除副本 | 分布式控制面板操作:账户加入或退出复制组 |
| 数据面板操作 | 每个区域的标准 DynamoDB 端点 | 各账户/区域的数据面板访问;通过复制组进行路由 |
| 安全边界 | 单个 IAM 和 KMS 边界 | 各账户有不同的 IAM、KMS、计费、CloudTrail 和治理方式 |
| 适用于 | 对表拥有集中所有权的组织 | 具有联合团队、治理边界或多账户设置的组织 |