亚马逊 DynamoDB 的备份策略
讨论数据库时最重要的问题之一是 “我们将如何备份和恢复数据?”备份是任何灾难恢复策略的核心组成部分,主要受恢复点目标 (RPO) 和恢复时间目标 (RTO) 的控制。您要确保您的备份策略以最少的管理量支持您的需求,不会中断您的业务并且具有成本效益。在这篇文章中,我们回顾了您可以在
DynamoDB 时间点恢复
DynamoDB
请注意,启用 PITR 后不具有追溯效力。最早的可用还原点是您启用 PITR 的时间。
尽管 PITR 允许您使用 DynamoDB 控制台或 亚马逊云科技 命令行接口 (亚马逊云科技 CLI) 将表恢复到某个时间点,但某些源表级别的设置不会自动应用到新创建的表。其中包括自动扩展、
PITR 极大地降低了丢失数据的风险,并且对于对数据丢失敏感的工作负载很有用,因为它可以保护您免受意外删除和写入表的影响。每秒精度可以轻松实现严格的 RPO。在考虑诸如定时备份之类的替代方案时,您只能恢复到最后一个备份点,这可能意味着数据丢失数小时。有关 PITR 的概述,请参阅
DynamoDB 按需备份
按需备份使您能够指示 DynamoDB 在不影响表性能的情况下启动全表备份。您可以使用服务 API 或控制台
要创建按需备份,您可以使用控制台、 适用于所选编程语言的
许多工作负载要求每周或每天在特定时间进行定时备份,乍一看,这似乎不是按需备份的功能。要实现定期 DynamoDB 备份,您可以使用
以下是一些适合按需备份的方案:
- 监管合规要求您将数据保留超过 35 天,例如根据美国证券交易委员会的要求将数据保留 7 年
- 您需要在 亚马逊云科技 账户(例如开发账户或测试账户)之间复制一张表
- 您想将数据复制或迁移到不同的 亚马逊云科技 区域
如何在 PITR 和按需备份之间做出选择
让我们考虑几种不同的 DynamoDB 工作负载:
- 工作负载 1 — 一个 DynamoDB 表,它为 Web 应用程序提供支持,RPO 为 45 分钟,数据保留要求为 30 天。
- 工作负载 2 — 一个 DynamoDB 表,它为金融服务应用程序提供支持,RPO 为 15 分钟,合规性要求将数据保留 7 年。
- 工作负载 3 — 为研究应用程序提供支持的 DynamoDB 表。表中的数据保持不变,因为它被用作查询表,以支持研究应用程序执行的仿真运行。因为数据是不变的,所以没有 RPO,但是重新创建数据的成本很高,因此仍然需要备份。
在第一个工作负载中,PITR 可以满足整个备份要求。由于 PITR 具有每秒精度和 35 天的保留期,因此 45 分钟 RPO 和 30 天的保留要求很容易得到满足。第二个工作负载要复杂一些。启用 PITR 将满足 RPO,但不能满足 7 年的保留期要求。在这里,您可以将 亚马逊云科技 Backup 与 PITR 结合使用来满足此要求。您可以使用 亚马逊云科技 Backup 安排按需备份并将其保留 7 年,将其存储在冷库中以节省成本。第三个工作负载可以通过单个按需备份来完成,因为数据是不变的。
从这些示例中,我们可以看到一些一般准则:
- 对于大多数表,尤其是 RPO 要求较低的表,您应该使用 PITR
- 如果您的 RPO 较低但还需要将副本保留超过 35 天,请将按需备份与 亚马逊云科技 Backup 配合使用 PITR
结论
在这篇文章中,您了解了备份 DynamoDB 表的不同方法,以帮助您满足备份和合规性要求。要了解更多信息,请参阅
我们鼓励您使用这篇文章作为评估您的 DynamoDB 备份策略的起点,并邀请您在评论部分留下问题或评论。
作者简介
Ted Zamborsky
Ted Zamborsky 是总部位于华盛顿州西雅图的亚马逊网络服务的解决方案架构师。他与非营利研究客户合作。他喜欢蜡烛。