亚马逊 DynamoDB 的备份策略

作者: 泰德·赞博尔斯基 | 2023 年 5

讨论数据库时最重要的问题之一是 “我们将如何备份和恢复数据?”备份是任何灾难恢复策略的核心组成部分,主要受恢复点目标 (RPO) 和恢复时间目标 (RTO) 的控制。您要确保您的备份策略以最少的管理量支持您的需求,不会中断您的业务并且具有成本效益。在这篇文章中,我们回顾了您可以在 Amazon Dynamo DB 中使用的各种备份策略以及每种策略的最佳用例。

DynamoDB 时间点恢复

DynamoDB 时间点恢复 (PITR) 是 DynamoDB 中内置的一项完全托管的持续备份功能。启用后,PITR 允许您以每秒的粒度将表恢复到过去 35 天内的任何时间点。PITR 备份是系统级的,保存在 亚马逊云科技 托管账户中。即使您的帐户遭到入侵,未经授权的用户也无法删除此备份。您可以从 亚马逊云科技 管理控制台 、亚马逊云科技 开发工具包或 亚马逊云科技 命令行接口 ( 亚马逊云科技 CLI) 启用 PITR,如以下示例所示:

aws dynamodb update-continuous-backups --table-name <SOURCE-TABLE> -—point-in-time-recovery-specification PointInTimeRecoveryEnabled=true

请注意,启用 PITR 后不具有追溯效力。最早的可用还原点是您启用 PITR 的时间。

尽管 PITR 允许您使用 DynamoDB 控制台或 亚马逊云科技 命令行接口 (亚马逊云科技 CLI) 将表恢复到某个时间点,但某些源表级别的设置不会自动应用到新创建的表。其中包括自动扩展、 直播、上线 时间 (TTL) 等。 有关 使用 亚马逊云科技 CloudFormation 模板将亚马逊 DynamoDB 表设置自动应用于还原表的事件驱动解决方案,请参阅自动更新已恢复的亚马逊 Dy namoDB 表上的 表设置。

PITR 极大地降低了丢失数据的风险,并且对于对数据丢失敏感的工作负载很有用,因为它可以保护您免受意外删除和写入表的影响。每秒精度可以轻松实现严格的 RPO。在考虑诸如定时备份之类的替代方案时,您只能恢复到最后一个备份点,这可能意味着数据丢失数小时。有关 PITR 的概述,请参阅 亚马逊 DynamoDB 持续备份和时间点 恢复 (PITR)。

DynamoDB 按需备份

按需备份使您能够指示 DynamoDB 在不影响表性能的情况下启动全表备份。您可以使用服务 API 或控制台 将单个备份 恢复到新表 。恢复到新表时,DynamoDB 允许您保留或更改设置,例如全局二级索引 (GSI)、本地二级索引 (LSI) 或加密设置。

要创建按需备份,您可以使用控制台、 适用于所选编程语言的 亚马逊云科技 开发工具包 或 亚马逊云科技 CLI。以下是用于创建按需备份的 亚马逊云科技 CLI 命令的基本示例:

aws dynamodb create-backup --table-name <SOURCE-TABLE> --backup-name <BACKUP-NAME>

许多工作负载要求每周或每天在特定时间进行定时备份,乍一看,这似乎不是按需备份的功能。要实现定期 DynamoDB 备份,您可以使用 亚马逊云科技 Backup ,这是一项完全托管的集中式数据保护服务。您可以使用 亚马逊云科技 Backup 来创建和管理您的 DynamoDB 表的备份计划。亚马逊云科技 Backup 支持跨账户备份,允许将备份复制到其他 亚马逊云科技 账户,从而提供额外的保护。此外,如果您的备份需要长期保留以满足合规要求,则可以利用冷存储来节省成本。

以下是一些适合按需备份的方案:

  • 监管合规要求您将数据保留超过 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 是总部位于华盛顿州西雅图的亚马逊网络服务的解决方案架构师。他与非营利研究客户合作。他喜欢蜡烛。