本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon S3 备份
概述
Amazon Backup 支持将数据单独存储在 S3 中或与其他数据库、存储和计算 Amazon 服务一起存储数据的应用程序的集中备份和恢复。许多功能可用于进行 S3 备份,包括 Backup Audit Manager。
您可以在中使用单一备份策略 Amazon Backup 来集中自动创建应用程序数据的备份。 Amazon Backup 自动将不同 Amazon 服务和第三方应用程序的备份组织到一个集中的加密位置(称为备份保管库),以便您可以通过集中式体验管理整个应用程序的备份。对于 S3,您可以创建连续备份,还原存储在 S3 中的应用程序数据,并且只需单击一下即可将备份还原到某个时间点。
Backup 分层
Amazon S3 是唯一支持将备份分层到成本较低的温存储层的资源。有关更多信息,请参阅 Backup 分层。
S3 备份的先决条件
Amazon S3 备份和还原权限和策略
要备份、复制和还原 S3 资源,您的角色中必须有正确的策略。要添加这些策略,请转到 Amazon 托管策略。将AWSBackupServiceRolePolicyForS3Backup和AWSBackupServiceRolePolicyForS3Restore添加到您打算用来备份和恢复 S3 存储桶的角色中。
如果您没有足够的权限,需请求贵组织管理(管理员)账户的经理将这些策略添加到目标角色。
有关更多信息,请参阅《IAM 用户指南》中的托管策略与内联策略。
备份和版本控制
您必须在 S3 存储桶上启用 S3 版本控制才能用 Amazon Backup 于 Amazon S3。
建议您为 S3 版本设置生命周期过期时段。
备份开始时,存储桶中的所有对象(包括所有版本)都将存储在恢复点(已完成的备份)中。这些对象可能包括每个对象的当前版本、旧版本、删除标记和待执行生命周期操作的对象。
亚马逊将计算备份中所有对象的存储成本,包括计划删除的对象(即将到期的对象)。您可以使用 CLI 或脚本从备份中删除计划到期的对象。
要了解有关设置 S3 生命周期策略的更多信息,请按照本页上的说明进行操作。
Amazon S3 备份的注意事项
在备份 S3 资源时,应考虑以下几点:
-
重点对象元数据支持- Amazon Backup 支持以下元数据:标签、访问控制列表 (ACL)、用户定义的元数据、原始创建日期和版本 ID。您也可以还原除原始创建日期、版本 ID、存储类和电子标签之外的所有备份数据和元数据。
-
恢复 S3 对象时,即使原始对象未使用校验和功能,也会 Amazon Backup 应用校验和值。
-
S3 对象密钥名称可以由大多数 UTF-8 可编码的字符串组成。允许使用以下 Unicode 字符:
#x9|#xA|#xD|#x20 to #xD7FF|#xE000 to #xFFFD|#x10000 to #x10FFFF。如果对象键名称包含不在此列表中的字符,可以将其从备份中排除。
-
冷存储过渡-使用 Amazon Backup 生命周期管理策略来定义备份到期的时间表。不支持对 S3 备份进行冷存储转换。
-
对于定期备份, Amazon Backup 请尽最大努力跟踪对象元数据的所有更改。但是,如果您在 1 分钟内多次更新标签或 ACL, Amazon Backup 可能无法捕获所有中间状态。
-
Amazon Backup 不支持 SSE-C-encrypted对象备份。 Amazon Backup 也不支持存储桶配置的备份,包括存储桶策略、设置、名称或访问点。
-
Amazon Backup 不支持在上备份 S3 Amazon Outposts。
-
CloudTrail logging — 如果您@@ 记录数据读取事件,则必须将 CloudTrail 日志传输到其他目标存储桶。如果您将 CloudTrail 日志保存在他们记录的存储桶中,则会出现无限循环,这可能会导致意外费用。
有关更多信息,请参阅《CloudTrail 用户指南》中的数据事件。
-
服务器访问日志记录:如果启用服务器访问日志记录,必须将日志传输到其他目标存储桶。如果将这些日志保存在它们记录的存储桶中,则会出现无限循环。有关更多信息,请参阅启用 Amazon S3 服务器访问日志记录。
支持的存储桶类型、数量和对象大小
Amazon Backup 支持对任何大小(不超过 Amazon S3 支持的最大对象大小)的 S3 对象进行备份和还原操作。
Amazon Backup 支持通用型 S3 存储桶的备份和恢复。目前,不支持目录存储桶。
Amazon 账户中允许的资源(例如存储桶)数量的上限(称为配额)取决于服务。Amazon S3 配额与 Amazon Backup 配额不同。
默认情况下,在每个 Amazon 账户中,您最多可以为 100 个存储桶创建备份。您可以请求将配额提高到 1000 个存储桶。
超过 1000 个存储桶的账户受配额限制;当请求超出配额时,可能会导致作业失败。最佳实践是将账户限制在 1000 个存储桶以内。
支持的 S3 存储类
Amazon Backup 允许您备份存储在以下 S3 存储类中的 S3 数据:
-
S3 标准
-
S3 标准 - 不频繁访问(IA)
-
S3 One Zone-IA
-
S3 Glacier Instant Retrieval
-
S3 Intelligent-Tiering (S3 INT)
存储类别 S3 Intelligent-Tiering (INT) 中的对象的备份可以访问这些对象。此访问会触发 S3 Intelligent-Tiering 自动将这些对象移至 “频繁访问”。
访问不频繁访问层(包括 S3 标准-不频繁访问 (IA) 和 S3 One Zone-IA 类别)的备份将按频繁访问的 S3 存储费用收取(适用于不频繁访问或存档即时访问层)。
不支持归档存储类别 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive。
有关 Amazon S3 存储定价的更多信息,请参阅 Amazon S3 定价
S3 备份类型
使用 Amazon Backup,您可以为 S3 存储桶创建以下类型的备份,包括对象数据、标签、访问控制列表 (ACL) 和用户定义的元数据:
-
连续备份允许您还原至最近 35 天内的任何时间点。仅应在一个备份计划中配置 S3 存储桶的连续备份。
有关支持的服务列表以及如何使用进行连续备份的说明 Amazon Backup ,请参阅Point-in-Time恢复。
-
定期备份使用数据快照,允许您在指定的持续时间内保留数据,最长可达 99 年。您可以按照 1 小时、12 小时、1 天、1 周或 1 个月等频率安排定期备份。 Amazon Backup 在备份计划中定义的备份时段内进行定期备份。
要了解如何将备份计划 Amazon Backup 应用于您的资源,请参阅创建备份计划。
Cross-account 跨区域副本可用于 S3 备份,但连续备份的副本不具有时间点还原功能。
S3 存储桶的连续和定期备份必须位于同一个备份保管库中。
Amazon Backup 因为 S3 依赖于通过亚马逊接收 S3 事件 EventBridge。如果在 S3 存储桶通知设置中禁用此设置,则在关闭此设置的情况下,将停止对这些存储桶的连续备份。有关更多信息,请参阅 Amazon 对 S3 连续备份的 EventBridge 依赖关系。
禁用 Amazon Backup的 Amazon EventBridge 规则还会导致您的持续备份停止。如果您有一个带有持续备份规则的有效备份计划,则当该规则重新触发时, Amazon Backup 将重新创建 Amazon EventBridge 规则并创建新的连续备份。
对于这两种备份类型,第一次备份是完整备份,而后续备份是对象级别的增量备份。
Amazon 对 S3 连续备份的 EventBridge 依赖关系
当您在 Amazon Backup 连续备份中注册 S3 存储桶时,会在您的账户(名为AwsBackupManagedRule-)中 Amazon Backup 自动创建一个 Amazon EventBridge 托管规则。此规则订阅存储桶上的以下 S3 事件并将其转发给服务: Amazon Backup N
Object Created(已创建对象)
Object ACL Updated(已更新对象 ACL)
Object Tags Added(已添加对象标签)
Object Tags Deleted(已删除对象标签)
已删除对象
这些事件 Amazon Backup 允许保持连续(时间点恢复)恢复窗口。
Amazon Backup 要接收这些事件,必须将 S3 配置为将其发布到默认 Amazon EventBridge 事件总线。这由存储桶的 Amazon EventBridge 通知设置控制,该设置独立于 Amazon Backup托管规则。
重要
如果禁用了存储桶级别 A EventBridge mazon 通知设置,S3 将停止发布对象级事件。 Amazon Backup托管的 Amazon EventBridge 规则仍处于启用状态,但未收到该存储桶的任何事件。这种失败是无声的 — 不会生成任何通知、警报或备份任务失败 Amazon Backup。
验证您的存储桶 EventBridge 已启用亚马逊
控制台:打开 S3 控制台,选择您的存储桶,选择 “属性” 选项卡,滚动到 “事件通知”,然后确认 Amazon EventBridge 显示为 “开启”。
CLI:
aws s3api get-bucket-notification-configuration --bucketamzn-s3-demo-bucket
按如下方式解释响应:
如果响应包含
"EventBridgeConfiguration": {},则表示已启 EventBridge 用 Amazon。如果响应中没有该
EventBridgeConfiguration字段,则 Amazon 将被禁 EventBridge 用。
启用亚马逊 EventBridge 通知
控制台:打开 S3 控制台,选择您的存储桶,选择 “属性”,滚动到 “事件通知”,选择 Amazon EventBridge,选择 “编辑”,打开,然后选择 “保存”。
CLI:
aws s3api put-bucket-notification-configuration \ --bucketamzn-s3-demo-bucket\ --notification-configuration '{"EventBridgeConfiguration": {}}'
重要
put-bucket-notification-configuration是替换操作,而不是合并。如果您的存储桶还有其他通知目标(SNS、SQS、Lambda),则必须在同一次调用中包括它们。否则,它们将被删除。
如果在持续备份下对存储桶禁 EventBridge 用 Amazon 会发生什么
S3 停止发布存储桶的对象级事件。
Amazon Backup托管的 Amazon EventBridge 规则仍处于启用状态,但未收到该存储桶的任何事件。
禁用后所做的新对象更改不会反映在持续恢复窗口中。
保留现有的恢复点和之前的连续备份历史记录(而不是删除)。
计划中定义的定时快照(定期)备份任务将继续按计划运行,只有连续 (PITR) 跟踪会受到影响。
不会生成任何通知或警报。从 Amazon Backup 侧面看,失败是沉默的。
检测对亚马逊 EventBridge 通知设置的更改
由于 Amazon Backup 无法检测存储桶级别 A EventBridge mazon 何时被禁用,因此可以考虑设置主动监控,以便在通知设置更改时提醒您。您可以使用以下两种方法中的一种或两种:
-
CloudTrail + Amazon EventBridge — 创建一条亚马逊 EventBridge 规则,通过匹配
PutBucketNotificationConfigurationAPI 调用, CloudTrail 以便在有人更改存储桶的通知配置时实时发出警报。可以使用以下事件模式:{ "source": ["aws.s3"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventSource": ["s3.amazonaws.com"], "eventName": ["PutBucketNotificationConfiguration"] } }这 CloudTrail 需要启用并记录 S3 管理事件(默认启用)。目标(SNS、Lambda 等)应检查事件详情,以确定是否专门删除了 EventBridge 亚马逊通知。
-
Amazon Config— 使用 Amazon Config 托管规则在配置
s3-event-notifications-enabled更改时标记不合规的存储桶。
备份角色所需的亚马逊 EventBridge 权限
用于 S3 连续备份 (PITR) 任务的 IAM 角色必须具有以下 Amazon EventBridge 权限 Amazon Backup 才能管理:AwsBackupManagedRule
{ "Sid": "EventBridgePermissionsForAwsBackupManagedRule", "Effect": "Allow", "Action": [ "events:DeleteRule", "events:PutTargets", "events:DescribeRule", "events:EnableRule", "events:PutRule", "events:RemoveTargets", "events:ListTargetsByRule", "events:DisableRule" ], "Resource": [ "arn:aws:events:*:*:rule/AwsBackupManagedRule*" ] }, { "Sid": "EventBridgeListRulesPermissions", "Effect": "Allow", "Action": "events:ListRules", "Resource": "*" }
Amazon 托管策略AWSBackupServiceRolePolicyForS3Backup已包含这些权限。如果您使用自定义 IAM 角色,则必须明确添加它们。
Re-enable 持续的备份覆盖范围
Re-enable 使用上述控制台或 CLI 步骤进行存储桶级别 EventBridge Amazon。S3 将恢复发布事件,托管规则将恢复将其转发到 Amazon Backup。 EventBridge 在 Amazon 禁用期间所做的更改不会被追溯捕获。现有的持续恢复点和之前的备份历史记录仍然有效。
比较 S3 备份类型
您的 S3 资源备份策略可以仅包括连续备份,也可以仅包括定期(快照)备份,或者两者兼而有之。以下信息可以帮助您选择最适合贵组织的方法:
仅连续备份:
-
完成现有数据的第一次完整备份后,系统会实时跟踪您的 S3 存储桶数据的更改。
-
跟踪的更改让您可以在连续备份的保留期内使用 PITR(时间点还原)。要执行还原作业,请选择要还原到的时间点。
-
每次连续备份的保留期最长为 35 天。
-
对于通过 CLI 创建的备份计划,Amazon S3 的高级备份设置(包括在备份中包含标签和 ACL 的选项)默认处于启用状态。您可以在备份选项中排除这些内容。有关语法的示例,请参阅 Amazon S3 高级备份设置。
仅定期(快照)备份(计划备份或按需备份):
-
Amazon Backup 扫描整个 S3 存储桶,检索每个对象的 ACL 和标签,然后为之前的快照中但在正在创建的快照中未找到的每个对象发起 Head 请求。
-
备份的时间点一致。
-
记录的备份日期和时间是 Amazon Backup 完成存储桶遍历的时间,而不是创建备份任务的时间。
-
存储桶的第一次备份是完整备份。后续的每次备份都是增量备份,表示自上次快照以来数据发生的变化。
-
对于定期备份创建的快照,保留期最长可达 99 年。
连续备份与 periodic/snapshot 备份相结合:
-
完成现有数据(每一个存储桶)的第一次完整备份后,系统会实时跟踪您的存储桶的更改。
-
您可以从连续恢复点执行时间点还原。
-
快照的时间点一致。
-
快照直接从连续恢复点拍摄,无需重新扫描存储桶,从而加快处理速度。
-
快照和连续恢复点共享数据沿袭;快照和连续恢复点之间的数据存储不会重复。
-
当针对
continuous恢复点更改高级 Amazon S3 备份设置(例如在备份中包含标签和 ACL)时,会 Amazon Backup 停止该恢复点并使用更新的设置创建一个新的恢复点。
当针对 S3 存储桶运行连续备份作业时,您仍然可以启动定期(快照)备份作业。但是,以下行为适用:
-
快照备份作业将使用与现有连续备份相同的备份选项(ACL 和对象标签设置)。
-
如果您为快照作业指定的备份选项与连续备份使用的备份选项不同,则该快照作业仍将使用连续备份的设置并在完成时显示“已完成,但存在问题”状态。
发生这种情况时,您将看到以下状态消息:
"Periodic/snapshot backup for bucket <bucket name> has different backup options than the continuous backup. When using continuous backups along with snapshot backups for the same bucket, the snapshot will use the same settings for backing up ACLs and Object tags as the continuous backup."
下表显示了更改现有连续恢复点时何时需要 BackupOptions 进行全面扫描:
| 上一页 BackupOptions | 全新 BackupOptions | 完全扫描 |
|---|---|---|
| 已启用备份 ACL 和备份 ObjectTags | 已禁用 BackupACL 和备份 ObjectTags | 否 |
| 已启用备份 ACL 和备份 ObjectTags | 已启用 BackupACL;已禁用备份 ObjectTags | 否 |
| 已启用备份 ACL 和备份 ObjectTags | 已禁用 BackupACL;已启用备份 ObjectTags | 否 |
| 已禁用 BackupACL 和备份 ObjectTags | 已启用备份 ACL 和备份 ObjectTags | 是 |
| 已启用 BackupACL;已禁用备份 ObjectTags | 已启用备份 ACL 和备份 ObjectTags | 是 |
| 已禁用 BackupACL;已启用备份 ObjectTags | 已启用备份 ACL 和备份 ObjectTags | 是 |
S3 备份完成窗口
下表显示了不同大小的存储桶示例,可帮助您估计 S3 存储桶初始完整备份的完成时间。备份时间将因每个存储桶的大小、内容、配置和设置而异。
| 桶大小 | 对象数 | 预计完成初始备份所需的时间 |
|---|---|---|
| 425 GB | 1.35 亿 | 31 小时 |
| 800 TB | 6.7 亿 | 38 小时 |
| 6 PB | 50 亿 | 100 小时 |
| 370 TB | 75 亿 | 180 小时 |
S3 备份的最佳实践和成本考虑因素
大型存储桶最佳实践
对于对象数超过 3 亿的存储桶:
-
对于对象数超过 3 亿的存储桶,在存储桶的初始完整备份期间,备份速率最高可达每秒 17,000 个对象(增量备份的速度会有所不同);包含的对象数少于 3 亿的存储桶以接近每秒 1,000 个对象的速率进行备份。
-
建议进行连续备份。
-
如果计划的备份生命周期超过 35 天,还可以在存储连续备份的同一个保管库中为存储桶启用快照备份。
备份策略优化
-
对于至少每天或更频繁地进行备份的客户,如果备份中的数据在两次备份之间变化最小,则使用连续备份可以实现成本效益。
-
不经常更改的较大存储桶可以从连续备份中受益,因为无需对先前存在的对象(与之前的备份相比未更改的对象)执行整个存储桶的扫描以及每个对象的多个请求时,这可以降低成本。
-
如果备份计划既包含保留期为 2 天的连续备份,又包含保留期更长的快照,则包含超过 1 亿个对象且删除率与总体备份大小相比较小的存储桶可能会实现成本效益。
-
当不需要执行存储桶扫描时,定期(快照)备份时间与备份过程的开始时间一致。在同时包含连续备份和快照的存储桶中不需要执行扫描,因为在这些情况下,快照是从连续恢复点拍摄的。
对象生命周期和删除标记
-
S3 生命周期策略具有一项名为删除过期对象删除标记的可选功能。此功能停用后,删除标记(有时为数百万个)将在没有清理计划的情况下过期。备份没有此功能的存储桶时,有两个问题会影响时间和成本:
-
就像对象一样备份删除标记。备份时间和还原时间可能会受到影响,具体取决于对象与删除标记的比例。
-
备份的每个对象和标记都有最低费用。每个删除标记的费用与 128KiB 对象相同。
-
存储类别成本注意事项
-
对于单个对象 S3-GIR (Amazon S3 Glacier 即时检索), Amazon Backup 执行多个调用,这将在执行备份时产生取回费用。
类似的检索成本也适用于对象为 S3-IA 和 S3 One Zone-IA 存储类别的存储桶。
Amazon 服务成本优化
-
将 Amazon KMS、 CloudTrail CloudWatch、Amazon 和 Amazon 的功能 GuardDuty 作为备份策略的一部分,可能会产生超出 S3 存储桶数据存储的额外成本。有关如何调整这些功能的信息,请参阅以下内容:
-
您可以通过排除 Amazon KMS 事件和禁用 S3 数据事件来降低 CloudTrail 成本:
-
排除 Amazon KMS 事件:在《CloudTrail 用户指南》中,在控制台中创建跟踪(基本事件选择器)允许选择排除 Amazon KMS 事件,从而将这些事件过滤出您的跟踪(默认设置包括所有 KMS 事件):
-
只有当您在跟踪中记录管理事件时,用于记录或排除 KMS 事件的选项才可用。如果选择不记录管理事件,则不会记录 KMS 事件,并且您无法更改 KMS 事件日志记录设置。
-
Amazon KMS 诸如
EncryptDecrypt、和之类的操作GenerateDataKey通常会生成大量事件(超过 99%)。这些操作现在记录为读取事件。 Low-volume,相关的 KMS 操作(例如DisableDelete、和ScheduleKey(通常占不到 KMS 事件量的 0.5%)将被记录为写入事件。 -
如果要排除大批量事件(例如
Encrypt、Decrypt和GenerateDataKey),但仍然记录相关事件(例如Disable、Delete和ScheduleKey),请选择记录写入管理事件,然后清除排除 Amazon KMS 事件复选框。
-
-
禁用 S3 数据事件:默认情况下,跟踪和事件数据存储不记录数据事件。在初始备份之前禁用 S3 数据事件可降低成本。
-
-
为了降低 CloudWatch 成本,您可以在更新跟踪以禁用 “ CloudWatch 日志” 设置时停止向 CloudWatch 日志发送 CloudTrail 事件。
-
在 Amazon GuardDuty 用户指南中@@ 估算 GuardDuty 使用成本。
S3 备份消息
备份作业完成或失败时,您可能会看到以下消息。下表有助于您确定导致出现状态消息的可能原因。
| 场景 | 作业状态 | Message | 示例 |
|---|---|---|---|
备份所有对象失败,无法创建快照或初始连续备份 |
|
“没有从源存储桶备份任何对象 |
备份角色无权获取对象版本 ACL。因此,不会备份任何对象。 |
备份所有对象失败,无法创建后续连续备份。 |
|
“没有从源存储桶备份任何对象 |
Amazon S3 高级备份设置
Amazon Backup 提供高级设置来控制您的 Amazon S3 备份中包含哪些元数据。您可以选择排除访问控制列表(ACL)和对象标签,如果您的对象在设置时没有使用 ACL 和对象标签,这会很有用。换句话说,如果您不对 S3 资源使用 ACL 或对象标签,则可能会发现将其从备份中排除是有益的。
配置 ACL 和对象标签的备份
您可以通过 Amazon Backup 控制台或通过配置 ACL 和对象标签备份选项 Amazon CLI。