创建备份计划 - AWS Backup

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

创建备份计划

您可以使用 AWS Backup 控制台、APICLISDK、或 AWS CloudFormation 模板创建备份计划。

使用 AWS Backup 控制台创建备份计划

打开 AWS Backup 控制台,网址为 https://console.aws.amazon.com/backup。从控制面板中,选择管理备份计划。或者,使用导航窗格选择备份计划,并选择创建备份计划

启动选项

要启动新的备份计划,您有三种选择:

在此过程中,我们制定了一个新计划。配置的每个部分都有一个指向页面上扩展部分的链接,您可以在该部分中导航以获取更多详细信息。

  1. 在中输入计划名称备份计划名称。计划创建后无法更改其名称。

    如果您尝试创建与现有计划相同的备份计划,则会收到AlreadyExistsException错误消息。

  2. 您可以选择为备份计划添加标签。

  3. 备份规则配置:在备份规则配置部分,您将要设置备份计划、时段和生命周期。

  4. 计划:

    1. 在文本字段中输入备份规则名称

    2. 在备份保管库菜单中,选择 “默认” 或选择 “创建新的备份保管库” 来创建保管库。

    3. 在备份频率菜单中,选择您希望此计划创建备份的频率。

  5. 备份时段:

    1. 开始时间默认为系统本地时区的上午 12:30(24 小时内为 00:30)。

    2. 开始时间范围默认为 8 小时。您可以对此设置进行更改以指定开始备份的时间段。

    3. 完成时间范围默认为 7 天。即使作业在启动窗口结束时开始,也要确保有足够的时间完成备份。

  6. 连续备份和 point-in-time 恢复 (PITR)您可以选择 “启用连续备份以进行 point-in-time 恢复”(PITR)。要验证支持使用哪些资源进行此类备份,请参阅按资源划分的功能可用性矩阵。

  7. 生命周期

    1. 冷存储:选中此框可让符合条件的资源类型根据您在“总保留期”中指定的时间表转移到冷存储。要使用冷存储,您的总保留期必须不短于 90 天。

    2. 亚马逊的冷存储EBS是亚马逊EBS快照存档。转移到归档存储层的快照将作为冷层显示在控制台中。如果启用了冷存储,并且您的备份频率为每月或更少,则可以获取备份计划过渡EBS快照。

    3. 总保留期是您将资源存储在 AWS Backup中的天数。它是暖存储天数和冷存储天数的总和。

  8. 可选)如果您想将备份副本存储在其他 AWS 区域中,请使用复制到目的地来创建符合条件的资源的跨区域副本。

  9. 可选)将标签添加到恢复点。

  10. 当所有部分均设置为您的规格后,请选择保存备份规则

使用创建备份计划 AWS CLI

您也可以在JSON文档中定义备份计划,然后使用 AWS Backup 控制台或提供该计划 AWS CLI。以下JSON文档包含一个备份计划示例,该计划在太平洋时间 1:00 创建每日备份(如果适用,当地时间会调整为夏令时、标准时间或夏令时条件)。它会在一年后自动删除备份。

{ "BackupPlan":{ "BackupPlanName":"test-plan", "Rules":[ { "RuleName":"test-rule", "TargetBackupVaultName":"test-vault", "ScheduleExpression":"cron(0 1 ? * * *)", "ScheduleExpressionTimezone":"America/Los_Angeles", "StartWindowMinutes":integer, // Value is in minutes "CompletionWindowMinutes":integer, // Value is in minutes "Lifecycle":{ "DeleteAfterDays":integer, // Value is in days } } ] } }

您可以使用自己选择的名称存储JSON文档。以下CLI命令显示create-backup-plan的名称JSON为test-backup-plan.json

aws backup create-backup-plan --cli-input-json file://PATH-TO-FILE/test-backup-plan.json

请注意,虽然有些系统将一周中的几天从 0 到 6 进行编号,但我们从 1 到 7 进行编号。有关更多信息,请参阅 Cron 表达式。有关时区的更多信息,请参阅 Amazon Location Service API 参考TimeZone中的。

备份计划选项和配置

在 AWS Backup 控制台中定义备份计划时,需要配置以下选项:

备份计划名称

您必须提供唯一备份计划名称。

如果您选择与现有计划名称相同的名称,将会收到一条错误消息。

备份规则

备份计划由一个或多个备份规则组成。向备份计划添加备份规则或编辑备份计划中的现有规则:

  1. 在 AWS Backup 控制台的左侧导航窗格中,选择 Backup 计划

  2. 备份计划名称下,选择一个备份计划。

  3. 备份规则部分下:

    • 要添加备份规则,请选择添加备份规则

    • 要编辑现有备份规则,请选择规则,然后选择编辑

注意

如果您的备份计划包含多个规则,并且两个规则的时间范围重叠,请 AWS Backup 优化备份并针对保留时间较长的规则进行备份。优化功能考虑了完整的启动时段,而不仅仅是每日备份的时间。

每个备份规则都包含以下元素。

备份规则名称

备份规则名称区分大小写。必须包含 1 到 50 个字母数字字符或连字符。

Backup frequency (备份频率)

备份频率决定了 AWS Backup 创建快照备份的频率。使用控制台,您可从每小时、每 12 个小时、每天、每周或每月中选择频率。您还可以创建 Cron 表达式,以每小时一次的频率创建快照备份。使用 AWS Backup CLI,您可以将快照备份的频率安排为每小时。

如果选择每周,您可以指定在一周中的星期几进行备份。如果选择每月,您可以选择在一月中具体哪一天进行备份。

您也可以选中 “为支持的资源启用连续备份” 复选框来创建启用 point-in-time 还原 (PITR) 的连续备份规则。与快照备份不同,连续备份允许您执行 point-in-time 恢复。要详细了解连续备份,请参阅时间点恢复

备份时段

备份时段由备份时段的开始时间和持续时间(以小时为单位)构成。备份作业会在此时段内启动。控制台中的默认设置为:

  • 系统所在时区当地时间@@ 上午 12:30(24 小时系统为 0:30)

  • 8 小时内开始

  • 7 天内完成

    在参数内完成不适用于 Amazon FSx 资源)

您可以使用 cron 表达式来自定义备份频率和备份时段开始时间。要查看 AWS cron 表达式的六个字段,请参阅 A ma CloudWatch zon Events 用户指南中的 Cron 表达式。 AWS cron 表达式的两个示例是15 * ? * * *(每小时在过去 15 分钟时进行一次备份)和0 12 * * ? *(每天中午 12 点进行备份UTC)。要查看示例表,请单击前面的链接并向下滚动页面。

AWS Backup 在 00:00 到 23:59 之间评估 cron 表达式。如果您创建了“每 12 小时”的备份规则,但提供的开始时间晚于 11:59,则该规则每天只会运行一次。

连续备份和 point-in-time 恢复 (PITR) 引用一段时间内记录的更改;因此,无法使用时间或 cron 表达式来安排这些更改。

注意

通常, AWS 数据库服务无法在维护时段前 1 小时或维护时段内启动备份,Amazon FSx 也无法在维护时段或自动备份窗口前 4 小时或期间启动备份(Amazon Aurora 不受此维护时段限制的约束)。在这段时间内安排的快照备份将失败。

当您选择使用 AWS Backup 对受支持的服务进行快照和连续备份时,会发生异常。 AWS Backup 将自动安排备份时段以避免冲突。有关支持的服务列表以及如何使用 AWS Backup 进行连续备份的说明,请参阅时间点恢复

重叠备份规则

有时,备份计划可能包含多个重叠的规则。当不同规则的起始窗口重叠时, AWS Backup 会根据保留期较长的规则保留备份。例如,假设有一个备份计划包含两条规则:

  1. 每小时备份一次,起始时间为 1 小时,并保留 1 天。

  2. 每 12 小时备份一次,起始时间为 8 小时,并保留 1 周。

24 小时后,第二条规则创建两个备份(因为它的保留期更长)。第一条规则创建八个备份(因为第二条规则的 8 小时启动时间使每小时备份无法运行)。具体来说:

在这个开始时间内 此规则创建 1 个备份
午夜至早上 8 点 12 小时
8 点到 9 点 每小时
9 点到 10 点 每小时
10 点到 11 点 每小时
11 点到中午 每小时
中午至晚上 8 点 12 小时
8 点到 9 点 每小时
9 点到 10 点 每小时
10 点到 11 点 每小时
11 点到午夜 每小时

在启动时段内,备份作业的状态将保持 CREATED 状态,直到成功启动或启动时段结束为止。如果在启动窗口内 AWS Backup 收到允许重试作业的错误消息, AWS Backup 则至少每 10 分钟自动重试一次以开始作业,直到备份成功开始(任务状态更改为RUNNING)或任务状态更改为EXPIRED(预计在启动窗口时间结束时发生)。

生命周期和存储层

备份将存储您指定的天数(即备份生命周期)。备份可以还原,直到其生命周期结束。

在 AWS Backup 控制台中备份规则配置的生命周期部分中,将其设置为总保留期。

如果您使用 AWS CLI,则使用参数进行设置DeleteAfterDays。快照的保留期可以介于 1 天到 100 年之间(如果不输入具体时间,则无限期),而连续备份的保留期可以从 1 天到 35 天不等。备份的创建日期是备份作业的开始日期,而不是其完成的日期。如果您的备份任务未在开始日期完成,请使用开始日期来帮助计算保留期。

备份保存在存储层中。如 AWS Backup 定价所述,每个层的存储和还原成本都不同。每个备份都已创建并存储在暖存储中。根据您选择的备份存储时间长短,您可能希望将备份转移到成本较低的层(名为“冷存储”)。按资源划分的功能可用性中显示了哪些资源具有此可选功能。

Console
  1. 打开 AWS Backup 控制台,网址为 https://console.aws.amazon.com/backup

  2. 创建或编辑备份计划。

  3. 在备份规则配置的生命周期部分,选中将备份从暖存储移至冷存储框。

  4. 可选)如果 Amazon EBS 是您备份的资源之一,并且您的备份频率为每月或更低,则可以使用EBS快照存档将其过渡到冷层。

  5. 输入您希望将备份保留在温存储空间中的值(以天为单位)。 AWS Backup 建议至少 8 天。

  6. 输入总保留期的值(以天为单位)。总保留期和暖存储时间之间的差值将是备份在冷存储中保留的天数。

AWS CLI
  1. 使用 create-backup-plan 或者 update-backup-plan

  2. OptInToArchiveForSupportedResources为EBS资源添加布尔参数。

  3. 包含 MoveToColdStorageAfterdays 参数。

  4. 使用 DeleteAfterDays 参数。此值必须是 90(天)加上您输入的 MoveToColdStorageAfterDays 值。

冷存储目前可用于以下资源类型:

资源类型 冷存储中的增量备份或完整备份

AWS CloudFormation

增量

DynamoDB,带 高级功能

完整;任何层中都没有增量备份

亚马逊EBS(使用EBS快照存档)

完整;转移后增量备份将变为完整备份。

Amazon EFS

增量

SAPHANA在 Amazon EC2 实例上运行的数据库

增量

Amazon Timestream

增量

VMware虚拟机

增量

通过控制台或命令行启用向冷存储的转移后,以下条件对于冷存储(或归档)中的备份是成立的:

  • 过渡后的备份除了在温存储中存储的时间外,还必须在冷库中存储至少 90 天。 AWS Backup 要求将保留期设置为 90 天,比 “几天后过渡到低温” 设置长 90 天。在备份转换为冷态后,您无法更改“转换为冷态前经过的天数”设置。

  • 一些服务支持增量备份。对于增量备份,必须至少有一个热完整备份。 AWS Backup 建议您将生命周期设置为在至少 8 天后才将备份移至冷存储。如果过早地将完整备份过渡到冷存储(例如,1 天后过渡到冷存储),则 AWS Backup 会创建另一个热完整备份。

  • 对于支持增量备份的资源类型,如果热备份不再引用 AWS Backup 过渡后的数据,则会将数据从温存储转换为冷存储。冷备份中保留的仅供其他冷备份引用的备份数据按冷存储层定价计费。其他备份则继续按暖存储层定价计费。

备份保管库

备份保管库是一个用来整理备份的容器。由备份规则创建的备份存储到您在备份规则中指定的备份保管库。您可以使用备份存储库来设置 AWS Key Management Service (AWS KMS) 加密密钥,该密钥用于加密备份库中的备份并控制对备份库中备份的访问权限。您还可以向备份保管库添加标签来帮助组织备份保管库。如果您不想使用默认保管库,可以自行创建保管库。有关创建备份存储库的 step-by-step 说明,请参阅步骤 3:创建备份保管库

复制到区域

作为备份计划的一部分,您可以选择在另一个 AWS 区域创建备份副本。有关备份副本的更多信息,请参阅跨 AWS 区域创建备份副本

在定义备份副本时,您可以配置以下选项:

目的地区域

备份副本的目的地区域。

(高级设置)备份保管库

副本的目的地备份保管库。

(高级设置)IAM角色

创建副本时 AWS Backup 使用的IAM角色。该角色还必须 AWS Backup 列为可信实体,这样 AWS Backup 才能担任该角色。如果您选择默认,但您的账户中没有 AWS Backup 默认角色,则会为您创建一个具有正确权限的角色。

(高级设置)生命周期

指定将备份副本转换到冷存储的时间以及副本的到期(删除)时间。转换到冷存储的备份必须在冷存储中存储至少 90 天。在副本转换为冷存储后,您无法更改此值。

过期指定副本在创建后多少天删除。这必须比转换为冷存储值多 90 天。

添加到恢复点的标签

您在此处列出的标签,在创建备份时将自动添加到备份。

添加到备份计划的标签

这些标签与备份计划本身关联,帮助您组织和跟踪备份计划。

高级备份设置

为在 Amazon EC2 实例上运行的第三方应用程序启用应用程序一致性备份。目前, AWS Backup 支持 Windows VSS 备份。 AWS Backup 从 Windows VSS 备份中排除特定的亚马逊EC2实例类型。有关更多信息,请参阅 创建 Windows VSS 备份

AWS CloudFormation 备份计划模板

我们提供了两个示例 AWS CloudFormation 模板供您参考。第一个模板可创建一个简单的备份计划。第二个模板允许在VSS备份计划中进行备份。

注意

如果您使用的是默认服务角色,请替换 service-roleAWSBackupServiceRolePolicyForBackup

Description: backup plan template to back up all resources daily at 5am UTC, and tag all recovery points with backup:daily. Resources: KMSKey: Type: AWS::KMS::Key Properties: Description: "Encryption key for daily" EnableKeyRotation: True Enabled: True KeyPolicy: Version: "2012-10-17" Statement: - Effect: Allow Principal: "AWS": { "Fn::Sub": "arn:${AWS::Partition}:iam::${AWS::AccountId}:root" } Action: - kms:* Resource: "*" BackupVaultWithDailyBackups: Type: "AWS::Backup::BackupVault" Properties: BackupVaultName: "BackupVaultWithDailyBackups" EncryptionKeyArn: !GetAtt KMSKey.Arn BackupPlanWithDailyBackups: Type: "AWS::Backup::BackupPlan" Properties: BackupPlan: BackupPlanName: "BackupPlanWithDailyBackups" BackupPlanRule: - RuleName: "RuleForDailyBackups" TargetBackupVault: !Ref BackupVaultWithDailyBackups ScheduleExpression: "cron(0 5 ? * * *)" DependsOn: BackupVaultWithDailyBackups DDBTableWithDailyBackupTag: Type: "AWS::DynamoDB::Table" Properties: TableName: "TestTable" AttributeDefinitions: - AttributeName: "Album" AttributeType: "S" KeySchema: - AttributeName: "Album" KeyType: "HASH" ProvisionedThroughput: ReadCapacityUnits: "5" WriteCapacityUnits: "5" Tags: - Key: "backup" Value: "daily" BackupRole: Type: "AWS::IAM::Role" Properties: AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: "Allow" Principal: Service: - "backup.amazonaws.com" Action: - "sts:AssumeRole" ManagedPolicyArns: - "arn:aws:iam::aws:policy/service-role/service-role" TagBasedBackupSelection: Type: "AWS::Backup::BackupSelection" Properties: BackupSelection: SelectionName: "TagBasedBackupSelection" IamRoleArn: !GetAtt BackupRole.Arn ListOfTags: - ConditionType: "STRINGEQUALS" ConditionKey: "backup" ConditionValue: "daily" BackupPlanId: !Ref BackupPlanWithDailyBackups DependsOn: BackupPlanWithDailyBackups
Description: backup plan template to enable Windows VSS and add backup rule to take backup of assigned resources daily at 5am UTC. Resources: KMSKey: Type: AWS::KMS::Key Properties: Description: "Encryption key for daily" EnableKeyRotation: True Enabled: True KeyPolicy: Version: "2012-10-17" Statement: - Effect: Allow Principal: "AWS": { "Fn::Sub": "arn:${AWS::Partition}:iam::${AWS::AccountId}:root" } Action: - kms:* Resource: "*" BackupVaultWithDailyBackups: Type: "AWS::Backup::BackupVault" Properties: BackupVaultName: "BackupVaultWithDailyBackups" EncryptionKeyArn: !GetAtt KMSKey.Arn BackupPlanWithDailyBackups: Type: "AWS::Backup::BackupPlan" Properties: BackupPlan: BackupPlanName: "BackupPlanWithDailyBackups" AdvancedBackupSettings: - ResourceType: EC2 BackupOptions: WindowsVSS: enabled BackupPlanRule: - RuleName: "RuleForDailyBackups" TargetBackupVault: !Ref BackupVaultWithDailyBackups ScheduleExpression: "cron(0 5 ? * * *)" DependsOn: BackupVaultWithDailyBackups