全局表:使用 DynamoDB 进行多区域复制 - Amazon DynamoDB

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

全局表:使用 DynamoDB 进行多区域复制

DynamoDB 全局表有两种版本:版本 2019.11.21(当前)版本 2017.11.29。要找出正在使用的版本,请参阅确定版本

Amazon DynamoDB 全局表为部署多区域、多主动数据库提供了完全托管的解决方案,而不必构建和维护您自己的复制解决方案。使用全局表,您可以指定AWS希望表可用的区域。DynamoDB 执行在这些区域中创建相同的表并将持续数据更改传播到所有这些表所必需的所有任务。

例如,假设您有一个大型客户群跨越三个地理区域美国东海岸、美国西海岸和西欧。客户可以使用您的应用程序更新其配置文件信息。为了满足这个用例,您需要创建三个名为的完全相同的 DynamoDB 表。CustomerProfiles, 在三个不同的AWS客户所在的区域。这三个表彼此完全分离。对一个表中数据进行的更改不会体现在其他表中。如果没有托管复制解决方案,您可以编写代码在这些表之间复制数据更改。但是,这会是一个非常耗时的劳动密集型工作。

现在,您可以创建由三个特定于区域的全局表,而无需编写自己的代码。CustomerProfiles表。然后,DynamoDB 会自动在这些表中复制数据更改,以便更改CustomerProfiles数据将无缝传播到其他区域。此外,如果其中一个AWS区域将临时变得不可用,您的客户仍可以访问相同的CustomerProfiles其他地区的数据。

DynamoDB 全局表非常适合用户遍布全球各地的大规模应用程序。在此类环境中,用户需要非常快的应用程序性能。全局表提供自动的多活动复制,以AWS全球区域。这使得您可以向用户提供低延迟的数据访问,而无论他们身在何处。

注意
  • DynamoDB 全局表有两种版本:版本 2019.11.21(当前)版本 2017.11.29。我们建议使用全局表的 版本 2019.11.21(当前),它使您能够从填充有数据的表中动态添加新的副本表。与 版本 2017.11.29 相比,版本 2019.11.21(当前) 效率更高,消耗的写入容量更少。

  • 对全局表 版本 2017.11.29 的区域支持仅限于美国东部(弗吉尼亚北部)、美国东部(俄亥俄)、美国西部(加利福尼亚北部)、美国西部(俄勒冈)、欧洲(爱尔兰)、欧洲(伦敦)、欧洲(法兰克福)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京)和亚太地区(首尔)。

  • 如果使用全局表的 版本 2019.11.21(当前),并且还使用生存时间功能,则 DynamoDB 会将 TTL 删除复制到所有副本表。初始 TTL 删除不会在发生 TTL 到期的区域中消耗写入容量。但是,在每个副本区域中,当使用预配置的容量时,复制到副本表的 TTL 删除将消耗一个复制的写容量单位,或在使用按需容量模式时消耗一个复制的写容量单位,并且将收取适用的费用。

  • 事务操作仅在最初写入的区域内提供原子性、一致性、隔离性和持久性 (ACID) 保证。全局表中不支持跨区域的事务。例如,如果您有一个全局表,该表在美国东部(俄亥俄州)和美国西部(俄勒冈)区域中具有副本,并且在美国东部(弗吉尼亚北部)区域中执行 TransactWriteItems 操作,则在复制更改时,可能会在美国西部(俄勒冈州)区域观察到部分完成的事务。更改仅在源区域中提交后才会复制到其他区域。

  • 如果用于加密复制副本的客户管理 CMK 无法访问,DynamoDB 将从复制组中删除此复制副本。复制副本将不会被删除,并且复制将在检测到AWS KMS键为无法访问。

  • 如果您禁用AWS区域,DynamoDB 将在检测到AWS区域为无法访问。复制副本将不会被删除,并且复制将从此区域停止。

  • 如果您想禁用客户托管 CMK,则只有当密钥不再用于加密副本表时,才必须执行此操作。发出删除副本表的命令后,必须等待删除操作完成,并使全局表变为Active之前禁用密钥。不这样做可能会导致从副本表和复制副本表中进行部分数据复制。

  • 如果要修改或删除副本表的 IAM 角色策略,则必须在副本表位于Active状态。如果不执行此操作,则创建、更新或删除副本表可能会失败。

  • 全局表可以执行AWS KMS操作,通过使用AWSServiceRoleForDynamoDBReplication服务相关角色,针对客户托管 CMKAWS托管 CMK用于加密复制副本。

有关AWS区域可用性和定价,请参阅Amazon DynamoDB 定价