【AWS】什么是Amazon DynamoDB Global Tables
2025年07月20日
文章浏览:47
【AWS】什么是Amazon DynamoDB Global Tables 

Amazon DynamoDB Global Tables 是一项完全托管的、

多区域、多活跃 (multi-region, multi-active) 数据库选项,

旨在为大规模的全球应用程序提供快速、本地化的读取/写入性能。


您可以将 Amazon DynamoDB Global Tables 想象成一个**“全球分布式数据库同步器”**。它消除了构建和维护您自己的跨区域数据复制解决方案的复杂性,让您能够轻松地在全球多个 AWS 区域部署和同步 DynamoDB 表,从而为全球用户提供低延迟的数据访问和高可用性。


Amazon DynamoDB Global Tables 的核心功能和优势

Global Tables 旨在解决全球分布式应用程序在数据复制、冲突解决和可用性方面的挑战。

  1. 完全托管的多区域复制:自动化复制: 您只需指定希望表可用的 AWS 区域,DynamoDB 就会自动在这些区域之间持续复制数据更改。您无需编写和维护复杂的复制代码。多活跃 (Multi-Active): 在所有参与区域中的副本表都是活跃的,这意味着应用程序可以在任何区域进行读写操作。简化运营: AWS 负责消息代理的预置、设置、维护、软件升级、安全更新以及故障检测和恢复,大大减少了您的运营责任。
  2. 快速、本地化的读写性能:低延迟: 应用程序可以在离用户最近的区域进行读写操作,从而显著减少网络延迟,提供个位数毫秒级的响应时间,无论用户身处何地。全球规模: 能够支持大规模的全球应用程序,处理巨大的读写吞吐量。
  3. 高可用性和灾难恢复:区域隔离: 即使某个 AWS 区域发生故障或降级,您的应用程序仍然可以在其他健康的区域继续运行,访问相同的数据,从而保持高可用性。零 RPO(恢复点目标)和低 RTO(恢复时间目标): 通过持续复制,Global Tables 可以实现接近零的数据丢失(零 RPO)和快速恢复(低 RTO),这对于关键任务应用程序至关重要。多区域强一致性 (MRSC): (新功能,目前在部分区域可用)提供零 RPO 的多区域强一致性,确保在任何区域读取的数据都是最新的,即使在罕见的全区域性事件中也能提供最高级别的韧性。
  4. 一致性和冲突解决:最终一致性: 默认情况下,Global Tables 提供最终一致性。对任何副本表中的任何项目所做的任何更改,都会复制到同一全局表中的所有其他副本。通常,新写入的项目会在一秒钟内传播到所有副本表。“最后写入者优先”冲突解决: 如果应用程序几乎同时更新不同区域中的同一项目,DynamoDB Global Tables 使用“最后写入者优先”策略来解决冲突,确保所有副本最终都收敛到相同的数据状态。多区域强一致性 (MRSC): 对于需要更强一致性的场景,MRSC 选项确保所有副本始终保持强一致性。
  5. 成本效益:按使用量付费: 您只需为在每个副本表上使用的资源(复制的写入请求单位数、读取请求、存储使用量)付费,没有前期成本或额外费用。优化数据传输: 复制时所消耗的复制写入容量单位数 (rWCU) 取决于您使用的全局表版本。
  6. 与现有 DynamoDB API 兼容:Global Tables 使用现有的 DynamoDB API,因此您无需更改应用程序代码即可开始使用。

Amazon DynamoDB Global Tables 的工作原理

Amazon DynamoDB Global Tables 的核心是多个副本表 (Replica Tables),它们在不同区域中,但被 DynamoDB 视为一个逻辑上的单一单元。

  1. 创建全局表:您通过 AWS 控制台或 AWS CLI 创建一个全局表。您选择一个或多个 AWS 区域来承载该全局表的副本。每个副本表在结构上与常规 DynamoDB 表相同,具有相同的表名和相同的主键架构。
  2. 数据写入:当应用程序向任何一个区域中的副本表写入数据时,DynamoDB 会自动将该写入操作异步地复制到全局表中的所有其他副本表。对于多区域强一致性 (MRSC) 模式,写入操作会在所有副本之间保持强一致性。
  3. 数据读取:应用程序可以从离用户最近的副本表进行读取操作,以获得低延迟。默认情况下,读取操作是最终一致的。如果需要,您可以指定强一致性读取,但这可能会增加延迟,因为需要确保数据在所有副本上都已同步。对于 MRSC 模式,读取操作默认为强一致性。
  4. 冲突解决:如果在不同区域几乎同时对同一项目进行更新,DynamoDB 会使用“最后写入者优先”策略来解决冲突。它会根据服务器端的时间戳来确定哪个写入是“最后”的。
  5. 监控复制延迟:您可以使用 Amazon CloudWatch 监控 ReplicationLatency 指标,它跟踪从一个项目写入源副本表到该项目出现在目标副本表之间经过的时间。

Amazon DynamoDB Global Tables 的典型用例

  • 全球分布式应用程序:对于拥有全球用户群的应用程序(例如,社交媒体、游戏、电子商务平台),Global Tables 允许用户在离他们最近的区域访问数据,提供极低的延迟和卓越的用户体验。
  • 灾难恢复和业务连续性:提高应用程序的弹性。如果一个区域发生中断,应用程序可以快速将流量重定向到另一个健康的区域,确保业务的连续性,并满足严格的 RPO 和 RTO 目标。
  • 无服务器架构:作为无服务器应用程序(如 AWS Lambda、Amazon API Gateway)的后端数据存储,提供全球可用的、高性能的 NoSQL 数据库。
  • 大数据和 IoT 数据摄取:收集来自全球 IoT 设备或大规模数据源的数据,并将其存储在离数据源最近的区域,然后自动复制到其他区域进行分析或备份。
  • 用户配置文件和会话管理:存储全球用户的配置文件、会话状态或个性化数据,确保无论用户从哪个地理位置访问,都能获得一致且快速的体验。
  • 金融服务和支付处理:对于需要零 RPO 和高韧性的关键金融应用,多区域强一致性 (MRSC) 功能提供了更高的可靠性。

总结来说,Amazon DynamoDB Global Tables 是一项强大的服务,它通过提供完全托管的、多区域、多活跃的数据库复制功能,极大地简化了全球分布式应用程序的构建,实现了低延迟、高可用性、高弹性和简化运营,是构建全球规模无服务器和微服务应用程序的理想选择。


过去考试题

あるグローバル企業が、シンプルなタイムトラッキングモバイルアプリを構築しています。

このアプリはグローバルに動作する必要があり、収集したデータをデータベースに保存する必要があります。

データは、ユーザーに最も近いAWSリージョンからアクセスできなければなりません。

このようなデータストレージの要件を、

運用上のオーバーヘッドを最小限に抑えて満たすために、会社は何をすべきでしょうか?


  1. グローバルに構築されたAWSリージョンを利用する。
  2. 機密性の高いデータを保存するために、Amazon S3を使用する。
  3. Amazon DynamoDBのグローバルテーブルを使用し、データを複数のリージョンに分散させる。
  4. データベースをオンプレミスに構築する。

    Amazon DynamoDBのグローバルテーブル機能を利用すれば、複数のリージョンにデータを自動的に複製できます。これにより、グローバルに配信されたアプリケーションでユーザーに最も近いリージョンからデータにアクセスできるようになります。運用オーバーヘッドも最小限に抑えられます。


    A.グローバルに構築されたAWSリージョンを利用するだけでは、データがグローバルに複製されるわけではありません。

    B.Amazon S3はオブジェクトストレージであり、構造化データの保存には適していません。

    D.オンプレミスでデータベースを構築すれば、グローバル配信の要件を満たせません。




    关注 收藏