亚马逊AWS官方博客

使用全新的 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:

aws dynamodb update-table \ 
    --table-name demo-mrsc \ 
    --replica-updates '[{"Create": {"RegionName": "us-east-2"}}]' \ 
    --global-table-witness-updates '[{"Create": {"RegionName": "us-west-2"}}]' \ 
    --multi-region-consistency STRONG \ 
    --region us-east-1

处理完成后,我可以查看我的 MRSC 全局表的状态。我可以看到我已经为 DynamoDB 全局表配置了见证副本。见证副本可以降低成本,同时仍能提供多区域强一致性带来的韧性优势。

然后,在我的应用程序中,可以使用 ConsistentRead 来读取具有高度一致性的数据。以下是一个 Python 示例:

import boto3

# Configure the DynamoDB client for your region
dynamodb = boto3.resource('dynamodb', region_name='us-east-2')
table = dynamodb.Table('demo-mrsc')

pk_id = "demo#test123"

# Read with strong consistency across regions
response = table.get_item(
    Key={
        'PK': pk_id
    },
    ConsistentRead=True
)

print(response)

对于需要最强韧性的操作,我可以使用 ConsistentRead=True。对于那些不太关键的操作,如果最终一致性是可以接受的,则可以省略此参数,以提高性能并降低成本。

其他需要了解的事项

请注意以下几点:

  • 可用性 – Amazon DynamoDB 多区域强一致性功能适用于以下 AWS 区域:美国东部(俄亥俄州、弗吉尼亚州北部)、美国西部(俄勒冈州)、亚太地区(大阪、首尔、东京)和欧洲(法兰克福、爱尔兰、伦敦、巴黎)区域
  • 定价 – 多区域强一致性定价遵循现有的全局表定价结构。DynamoDB 最近将全局表定价最多降低了 67%,使这种高韧性架构比以往任何时候都更经济实惠。访问 AWS 数据库博客中的 Amazon DynamoDB 降低按需吞吐量和全球表的定价,以了解更多信息。

访问 Amazon DynamoDB 全局表,详细了解如何实现最高级别的应用程序韧性、使您的应用程序始终可用并且无论处于哪个区域都能够读取到最新的数据。

祝大家构建顺利!

Donnie


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。