亚马逊AWS官方博客

Amazon DynamoDB 更新 – 全局表和按需备份

各行各业的 AWS 客户都在使用 Amazon DynamoDB 存储关键任务数据。金融服务、商业、广告技术、物联网和游戏应用程序 (仅举几例) 每秒向包含数百 TB 数据和数万亿项目的表发起数百万个请求,依靠 DynamoDB 在十毫秒内返回结果。

今天,我们介绍两个强大且必将受到欢迎的新功能:

全局表 – 现在您可以创建跨两个或更多 AWS 区域自动复制的表,可完全支持只需几次点击即可实现的多主表写入。这让您能够为全球用户群构建快速、大规模扩展的应用程序,而无需管理复制过程。

按需备份 – 现在您可以一键创建 DynamoDB 表的完整备份,并且对性能或可用性没有任何影响。您的应用程序保持在线状态全速运行。备份适用于长期保留和存档,可帮助您满足法规要求。

全局表
DynamoDB 已将您的表复制到三个可用区,为您提供持久、高度可用的存储。现在,您可以使用全局表在两个或更多 AWS 区域间复制表 – 只需几次点击操作即可完成设置。您将获得极高的读写性能,并可进一步扩展,满足要求最苛刻的全球应用程序的需求。

您无需对现有代码进行任何更改,只需将写入请求和最终一致性读取请求发送到任意指定区域的 DynamoDB 终端节点即可 (与强一致性读取关联的写入应共享一个公共终端节点)。DynamoDB 在后台实施多主表写入,确保以对特定项目的最后一次写入为准。使用全局表时,每个项目将包含一个时间戳属性,用于表示最近一次写入的时间。更新通过 DynamoDB Streams 异步传播到其他区域,通常在一秒内完成 (可以使用新的 ReplicationLatency 和 PendingReplicationCount 指标跟踪这一过程)。

入门很简单。按照常规方式创建表,然后一键添加到其他区域的复制。必须从空表开始,且所有表都具有相同的名称和键配置 (哈希和可选排序键)。所有表还应共享一组一致的 Auto Scaling、TTL、本地二级索引、全局二级索引、预配置吞吐量设置和 IAM 策略。为方便起见,系统为新全局表自动启用 Auto Scaling。

如果不使用 DynamoDB Auto Scaling,您应该预配置充足的读取容量,以应对本地读取;预配置充足的写入容量,以容纳组中所有表的写入;并为源自本地区域的每个应用程序写入预配置额外的系统 写入。系统写入用于支持“以最后一次写入为准”模型。

下面,我们创建一个跨三个区域的全局表。先按照常规方式创建表,然后单击 Global Tables 选项卡:

DynamoDB 对表进行检查,确保其满足要求。它指出需要启用 DynamoDB Streams,于是我照做。接下来,单击 Add region,选择 EU (Frankfurt),然后单击 Continue

数秒内,表创建完毕:

再次执行上述操作,现在我有了一个跨三个 AWS 区域的全局表:

我在欧洲 (爱尔兰) 创建一个项目:

欧洲 (法兰克福) 即刻也显示了此项目:

跨区域复制过程添加 aws:rep:updateregionaws:rep:updatetime 属性;它们对应用程序可见,但您不应修改它们。

全局表于今日在美国东部 (弗吉尼亚北部)美国东部 (俄亥俄)欧洲 (爱尔兰)欧洲 (法兰克福) 区域推出,并将于 2018 年扩展到更多区域。您需要支付常规 DynamoDB 价格的读取容量和存储费用,以及跨区域复制的数据传输费。写入容量按复制的写入容量单位计费。

按需备份
此功能旨在帮助您满足法规对长期存档和数据保留的要求。您可以通过点击操作 (或 API 调用) 创建备份,而不消耗预置的吞吐容量或影响应用程序的响应能力。备份以高持久性方式存储,可用于创建新表。

现在,DynamoDB 控制台包含 Backups 部分:

我只需单击 Create backup 并为备份输入一个名称:

即可立即生成备份!备份使用 Amazon 托管密钥加密,并包含所有表数据、预配置容量设置、本地和全局二级索引设置以及流。它不包括 Auto Scaling 或 TTL 设置、标签、IAM 策略、CloudWatch 指标或 CloudWatch 警报。

考虑到有些客户的表大小接近 0.5 PB,您可能会对此功能为何能即刻生成备份感到好奇。事实上,DynamoDB 在后台创建完整快照并保存所有更改日志。因此,生成备份就变得十分简单,只需保存时间戳和表的当前元数据即可。

下面是我的备份:

我通过以下方式将备份还原到新表:

下面是需要牢记的关于 DynamoDB 备份的一些事项:

设置 – 创建新表后,DynamoDB 必须先完成一些设置工作 (大概需要一顿饭的工夫),然后才能开始创建第一个备份。

还原 – 还原时间视表大小而定。对于非常大的表,完成还原可能需要半小时到数小时的时间。

可用性 – 我们将尽快逐账户部署此项新功能,美国东部 (弗吉尼亚北部)美国东部 (俄亥俄)美国西部 (俄勒冈)欧洲 (爱尔兰) 区域率先部署。

定价 – 备份存储费用以每月千兆字节为单位计算,还原费用基于还原数据量计算。

Jeff