使用Amazon DynamoDB全局表的多区域强一致性构建最高弹性应用
尽管数万客户已成功使用最终一致性的Amazon DynamoDB全局表,但我们观察到对更强弹性的需求正在增长。许多组织发现DynamoDB的多可用区架构和最终一致性全局表能满足需求,但支付处理系统和金融服务等关键应用要求更高。
对于这些应用,客户在罕见的区域范围内事件中需要零恢复点目标(RPO),这意味着您可以将应用定向到任何区域读取最新数据。您的多区域应用无论位于何处,始终需要访问相同的数据。
从今天开始,您可以使用新的Amazon DynamoDB全局表功能,提供多区域强一致性(MRSC),实现零RPO。此功能最初在AWS re:Invent 2024上作为预览版宣布,简化了构建高弹性全局应用的过程。
以下是如何从现有的空DynamoDB表启用MRSC:
使用MRSC,DynamoDB现在为您的应用提供最高级别的弹性。如果区域中的应用处理中断,您可以将流量重定向到包含MRSC副本的另一个区域,并确保处理的是最新数据。
入门指南
让我带您了解如何使用这一新功能。
要开始使用MRSC,我需要从一个不包含任何数据的现有DynamoDB表创建全局表。我导航到现有表,选择“全局表”选项卡,然后选择“创建副本”。
MRSC可用性架构需要三个AWS区域。我可以配置MRSC为三个完整副本,或两个副本加一个见证。见证仅包含复制的变更数据,以提供所需的可用性,而无需维护表的完整副本。
以下截图显示了我如何配置两个副本加一个见证的MRSC。要配置三个完整副本的MRSC,我可以清除“将区域2配置为见证”。
如果我需要以编程方式更新现有表,可以使用Amazon Q CLI生成所需命令,提示如下:
Hey Q! Update my existing DynamoDB table called “demo-mrsc” in us-east-1 with multi-Region strong consistency across us-east-2 with witness in us-west-2 Regions
不久后,Q CLI将回复以下命令:
To update your DynamoDB table with multi-Region strong consistency, you’ll need to use the update-table command with the appropriate parameters. Here’s how you would do it:
|
|
处理完成后,我可以检查MRSC全局表的状态。我可以看到为DynamoDB全局表配置了见证。见证降低了成本,同时仍提供多区域强一致性的弹性优势。
然后,在我的应用中,我可以使用ConsistentRead以强一致性读取数据。以下是一个Python示例:
|
|
对于需要最强弹性的操作,我可以使用ConsistentRead=True。对于可以接受最终一致性的较不关键操作,我可以省略此参数以提高性能并降低成本。
其他注意事项
以下是几点需要注意的事项:
- 可用性 – Amazon DynamoDB多区域强一致性功能在以下AWS区域可用:美国东部(俄亥俄、北弗吉尼亚)、美国西部(俄勒冈)、亚太(大阪、首尔、东京)和欧洲(法兰克福、爱尔兰、伦敦、巴黎)
- 定价 – 多区域强一致性定价遵循现有的全局表定价结构。DynamoDB最近将全局表定价降低了高达67%,使得这一高弹性架构比以往更经济实惠。访问AWS数据库博客中的“Amazon DynamoDB降低按需吞吐量和全局表定价”以了解更多信息。
了解更多关于如何实现最高级别的应用弹性,使您的应用始终可用并在任何区域读取最新数据,请访问Amazon DynamoDB全局表。
祝您构建愉快!
— Donnie