Amazon S3 备份 - AWS Backup

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon S3 备份

AWS Backup 支持将数据单独存储在 S3 中或与其他适用于数据库、存储和计算的 AWS 服务一起存储数据的应用程序的集中备份和还原。许多功能可用于进行 S3 备份,包括 Backup Audit Manager。

您可以在 AWS Backup 中使用单一备份策略集中自动创建应用程序数据的备份。 AWS Backup 自动将不同 AWS 服务和第三方应用程序的备份组织到一个集中的加密位置(称为备份保管库),以便您可以通过集中式体验管理整个应用程序的备份。对于 S3,您可以创建连续备份,还原存储在 S3 中的应用程序数据,只需单击一下 point-in-time 即可将备份还原到。

使用 AWS Backup,您可以为 S3 存储桶(包括对象数据、标签、访问控制列表 (ACL) 和用户定义的元数据)创建以下类型的备份:

  • 连续备份允许您还原至最近 35 天内的任何时间点。仅应在一个备份计划中配置 S3 存储桶的连续备份。

    有关支持的服务列表以及如何使用 AWS Backup 进行连续备份的说明,请参阅时间点故障恢复

  • 定期备份使用数据快照,允许您在指定的持续时间内保留数据,最长可达 99 年。您可以按照 1 小时、12 小时、1 天、1 周或 1 个月等频率安排定期备份。AWS Backup 在备份计划中定义的备份时段内进行定期备份。

    要了解 AWS Backup 如何将备份计划应用于您的资源,请参阅创建备份计划

跨账户和跨区域副本可用于 S3 备份,但连续备份的副本不具有 point-in-time 还原功能。

S3 存储桶的连续和定期备份必须位于同一个备份保管库中。

对于这两种备份类型,第一次备份是完整备份,而后续备份是对象级别的增量备份。例如,如果您的 1 GB 对象发生了 1 kB 的更改,则后续备份将在备份保管库中创建一个新的 1 GB 对象。

注意

您必须在 S3 存储桶上启用 S3 版本控制才能将 AWS Backup 用于 Amazon S3。我们保留这一先决条件是因为在 AWS 中,我们建议将 S3 版本控制作为数据保护的最佳实践。

建议您为 S3 版本设置生命周期过期时段。如果不设置生命周期过期时段,可能会增加您的 S3 成本,因为 AWS Backup 会备份和存储所有未过期的 S3 数据版本。要了解有关设置 S3 生命周期策略的更多信息,请按照本页上的说明进行操作。

比较 S3 备份类型

您的 S3 资源备份策略可以仅包括连续备份,也可以仅包括定期(快照)备份,或者两者兼而有之。以下信息可以帮助您选择最适合贵组织的方法:

仅连续备份:

  • 完成现有数据的第一次完整备份后,系统会实时跟踪您的 S3 存储桶数据的更改。

  • 跟踪的更改允许您在连续备份的保留期内使用 PITR(point-in-time 恢复)。要执行还原作业,请选择要还原到的时间点。

  • 每次连续备份的保留期最长为 35 天。

仅定期(快照)备份(计划备份或按需备份):

  • AWS Backup 扫描整个 S3 存储桶,检索每个对象的 ACL 和标签(如果适用且该功能已开启),然后为处于之前的快照中但在正在创建的快照中未找到的每个对象发起 Head 请求。

  • 备份是一 point-in-time 致的。

  • 记录的备份日期和时间是 AWS Backup 完成存储桶遍历的时间,而不是创建备份作业的时间。

  • 存储桶的第一次备份是完整备份。后续的每次备份都是增量备份,表示自上次快照以来数据发生的变化。

  • 对于定期备份创建的快照,保留期最长可达 99 年。

连续备份与定期/快照备份相结合:

  • 完成现有数据(每一个存储桶)的第一次完整备份后,系统会实时跟踪您的存储桶的更改。

  • 您可以从连续 point-in-time 恢复点执行恢复。

  • 快照是一 point-in-time 致的。

  • 快照直接从连续恢复点拍摄,无需重新扫描存储桶,从而加快处理速度。

  • 快照和连续恢复点共享数据沿袭;快照和连续恢复点之间的数据存储不会重复。

支持的 S3 存储类

AWS Backup 允许备份存储在以下 S3 存储类中的 S3 数据:

  • S3 标准

  • S3 Standard - Infrequently Access (IA)

  • S3 单区 - IA

  • S3 Glacier Instant Retrieval

  • S3 Intelligent-Tiering (S3 INT)

除 Glacier Instant Retrieval 外,不支持归档存储类(包括 S3 INT - Glacier、Glacier Flexible Retrieval 和 Glacier Deep Archive)。

AWS Backup for Amazon S3 的注意事项

在备份 S3 资源时,应考虑以下几点:

  • 关注对象元数据支持:AWS Backup 支持以下元数据:标签、访问控制列表 (ACL)、用户定义的元数据、原始创建日期和版本 ID。您也可以还原除原始创建日期、版本 ID、存储类和电子标签之外的所有备份数据和元数据。

  • S3 对象键名称可以由大多数 UTF-8 可编码字符串组成。允许使用以下 Unicode 字符:#x9 | #xA | #xD | #x20 to #xD7FF | #xE000 to #xFFFD | #x10000 to #x10FFFF

    如果对象键名称包含不在此列表中的字符,可以将其从备份中排除。有关更多信息,请参阅字符的 W3C 规范

  • 冷存储转换:AWS Backup 的生命周期管理策略允许定义备份到期时间线,但目前不支持 S3 备份的冷存储转换。

  • 目前不支持对具有同一秒钟创建的同一对象的多个版本的 S3 存储桶进行备份。

  • 对于定期备份,AWS Backup 会尽最大努力跟踪对象元数据的所有更改。但是,如果您在 1 分钟内多次更新标签或 ACL,AWS Backup 可能无法捕获所有中间状态。

  • AWS Backup 当前不支持 SSE-C 加密对象的备份。AWS Backup 当前也不支持存储桶配置(包括存储桶策略、设置、名称或接入点)的备份。

  • 如果您创建 S3 智能层 (INT) 对象的备份,则源对象会移动到比其当前存储层更昂贵的存储层。

  • AWS Backup 当前不支持在 AWS Outposts 上进行 S3 备份。

重要

在记录数据读取事件的账户中,启用 CloudTrail 日志的 S3 存储桶需要将其访问日志保存到不同的目标存储桶中;如果 CloudTrail 日志保存在它们记录的同一个存储桶中,则会形成无限循环。此循环可能会触发意外和不必要的费用。

有关更多信息,请参阅《CloudTrail 用户指南》中的数据事件

S3 备份完成窗口

下表显示了不同大小的存储桶示例,可帮助您估计 S3 存储桶初始完整备份的完成时间。备份时间将因每个存储桶的大小、内容、配置和设置而异。

存储桶大小 对象数 预计完成初始备份所需的时间
425 GB 1.35 亿 31 小时
800 TB 6.7 亿 38 小时
6 PB 50 亿 100 小时
370 TB 75 亿 180 小时

Amazon S3 备份和还原权限和策略

要备份、复制和还原 S3 资源,您的角色中必须有正确的策略。要添加这些策略,请转到 AWS 托管策略。将AWSBackupServiceRolePolicyForS3BackupAWSBackupServiceRolePolicyForS3Restore添加到您打算用来备份和恢复 S3 存储桶的角色中。

如果您没有足够的权限,需请求贵组织管理(管理员)账户的经理将这些策略添加到目标角色。

有关更多信息,请参阅《IAM 用户指南》中的托管策略与内联策略

AWS Backup因为 S3 依赖于通过亚马逊接收 S3 事件 EventBridge。如果在 S3 存储桶通知设置中禁用此设置,则在关闭此设置的情况下,将停止对这些存储桶的连续备份。有关更多信息,请参阅使用 EventBridge

S3 备份的最佳实践和成本优化

最佳实践

对于对象数超过 3 亿的存储桶:

  • 对于对象数超过 3 亿的存储桶,在存储桶的初始完整备份期间,备份速率最高可达每秒 17,000 个对象(增量备份的速度会有所不同);包含的对象数少于 3 亿的存储桶以接近每秒 1,000 个对象的速率进行备份。

  • 建议进行连续备份。

  • 如果计划的备份生命周期超过 35 天,还可以在存储连续备份的同一个保管库中为存储桶启用快照备份。

成本优化

  • S3 生命周期策略具有一项名为删除过期对象删除标记的可选功能。此功能停用后,删除标记(有时为数百万个)将在没有清理计划的情况下过期。备份没有此功能的存储桶时,有两个问题会影响时间和成本:

    • 就像对象一样备份删除标记。备份时间和还原时间可能会受到影响,具体取决于对象与删除标记的比例。

    • 备份的每个对象和标记都有最低费用。每个删除标记的费用与 128KiB 对象相同。

  • 对于至少每天或更频繁地进行备份的客户,如果备份中的数据在两次备份之间变化最小,则使用连续备份可以实现成本效益。

  • 不经常更改的较大存储桶可以从连续备份中受益,因为无需对先前存在的对象(与之前的备份相比未更改的对象)执行整个存储桶的扫描以及每个对象的多个请求时,这可以降低成本。

  • 如果备份计划既包含保留期为 2 天的连续备份,又包含保留期更长的快照,则包含超过 1 亿个对象且删除率与总体备份大小相比较小的存储桶可能会实现成本效益。

  • 当不需要执行存储桶扫描时,定期(快照)备份时间与备份过程的开始时间一致。在同时包含连续备份和快照的存储桶中不需要执行扫描,因为在这些情况下,快照是从连续恢复点拍摄的。

  • AWS KMS CloudTrail、和 Amazon 作为备份策略一部分的 CloudWatch 功能可能会导致除 S3 存储桶数据存储之外的额外成本。有关如何调整这些功能的信息,请参阅以下内容:

    • 《Amazon S3 用户指南》中的使用 Amazon S3 存储桶密钥降低 SSE-KMS 的成本

    • 您可以通过排除AWS KMS事件和禁用 S3 数据事件来降低 CloudTrail 成本:

      • 排除AWS KMS事件:在《CloudTrail 用户指南》中,在控制台中创建跟踪(基本事件选择器)允许选择排除AWS KMS事件,从而将这些事件过滤出您的跟踪(默认设置包括所有 KMS 事件):

      • 只有当您在跟踪中记录管理事件时,用于记录或排除 KMS 事件的选项才可用。如果选择不记录管理事件,则不会记录 KMS 事件,并且您无法更改 KMS 事件日志记录设置。

      • EncryptDecryptGenerateDataKey 等 AWS KMS 操作通常会生成大量事件(占比超过 99%)。这些操作现在记录为读取事件。DisableDeleteScheduleKey(通常占不到 KMS 事件量的 0.5%)等少量的相关 KMS 操作记录为写入事件。

      • 如果要排除大批量事件(例如 EncryptDecryptGenerateDataKey),但仍然记录相关事件(例如 DisableDeleteScheduleKey),请选择记录写入管理事件,然后清除排除 AWS KMS 事件复选框。

      • 禁用 S3 数据事件:默认情况下,跟踪和事件数据存储不记录数据事件。在初始备份之前禁用 S3 数据事件可降低成本。

    • 为了降低 CloudWatch 成本,您可以在更新跟踪以禁用 “ CloudWatch 日志” 设置时停止向 CloudWatch 日志发送 CloudTrail 事件。

还原 S3 备份

您可以将使用 AWS Backup 备份的 S3 数据还原到 S3 Standard 存储类。您可以将 S3 数据还原到现有存储桶,包括原始存储桶。在还原期间,还可以创建一个新的 S3 存储桶作为还原目标。您只能将 S3 备份还原到备份所在的同一 AWS 区域。

您可以还原整个 S3 存储桶,也可以还原存储桶中的文件夹或对象。AWS Backup 还原该对象的当前版本。

要使用 AWS Backup 还原 S3 数据,请参阅还原 S3 数据