全局表的最佳实践
以下各节介绍用于部署和使用全局表的最佳实践。
版本
DynamoDB 全局表有两个版本可用:版本 2019.11.21(当前版)和版本 2017.11.29(旧版)。您应尽可能使用版本 2019.11.21(当前版)。
删除保护
您应该对要防止意外删除的全局表副本启用删除保护。必须对每个副本启用删除保护。
使用 Amazon CloudFormation
Amazon CloudFormation 目前不支持跨堆栈协调多区域资源,例如全局表。如果您在单独的区域堆栈中定义全局表的每个副本,则由于在执行副本更新时检测到堆栈间存在偏差,您将遇到错误。为避免出现此问题,您应选择一个区域作为部署全局表的参考区域,并在该区域的堆栈中定义全局表的所有副本。
重要
无法通过更改模板中的类型将 AWS::DynamoDB::Table
类型的资源转换为 AWS::DynamoDB::GlobalTable
类型的资源。尝试通过更改单区域表的 CloudFormation 资源类型来将该表转换为全局表,可能会导致 DynamoDB 表被删除。
可以使用 AWS::DynamoDB::GlobalTable
资源在单个区域中创建表。此表将像任何其它单区域表一样进行部署。如果您稍后更新堆栈以将其它区域添加到资源中,则副本将添加到表中,而该表将安全地转换为全局表。
如果您希望将现有的 AWS::DynamoDB::Table
资源转换为 AWS::DynamoDB::GlobalTable
资源,建议按照以下步骤转换资源类型:
-
将
AWS::DynamoDB::Table
删除策略设置为保留。 -
从堆栈定义中移除该表。
-
在 Amazon 管理控制台中将副本添加到单区域表,同时将单区域表转换为全局表。
-
将新的全局表作为新的
AWS::DynamoDB::GlobalTable
资源导入到堆栈中。
备份和时间点故障恢复
为全局表中的一个副本启用自动备份和时间点故障恢复(PITR),可能足以实现灾难恢复目标。使用 Amazon-Backup 创建的副本备份可以自动跨区域复制,以提高韧性。在选择备份和 PITR 支持策略时,请考虑多区域高可用性背景下的灾难恢复计划目标。
专为实现多区域高可用性而设计
有关部署全局表的规范性指导,请参阅 DynamoDB 全局表设计的最佳实践。