为 EBS 支持的 Amazon Data Lifecycle Manager 自定义策略 AMIs - Amazon EBS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

为 EBS 支持的 Amazon Data Lifecycle Manager 自定义策略 AMIs

以下程序说明了如何使用 Amazon Data Lifecycle Manager 来自动执行 EBS 支持的 AMI 生命周期。

创建 AMI 生命周期策略

使用以下程序之一创建 AMI 生命周期策略。

Console
创建 AMI 策略
  1. 打开亚马逊 EC2 控制台,网址为https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,依次选择 Elastic Block StoreLifecycle Manager (生命周期管理器),然后选择 Create lifecycle policy (创建生命周期策略)。

  3. 选择策略类型页面,选择 EBS 支持的 AMI 策略,然后选择下一步

  4. 目标资源部分,对于目标资源标签,选择标识要备份的卷或实例的资源标签。策略只备份具有指定标签键和值对的资源。

  5. 对于 Description (描述),输入策略的简短描述。

  6. 对于 IAM 角色,请选择有权管理和快照 AMIs 以及描述实例的 IAM 角色。要使用 Amazon Data Lifecycle Manager 提供的默认角色,请选择默认角色。或者,要使用您之前创建的自定义 IAM 角色,请选择选择其他角色,然后选择要使用的角色。

  7. 对于 Policy tags (策略标签),选择要应用于生命周期策略的标签。您可以使用这些标签对策略进行标识和分类。

  8. 对于创建后的策略状态,选择启用策略,以在下次计划时间启动策略运行,或者选择禁用策略,以禁止策略运行。如果您现在不启用该策略,则只有在创建后手动启用该策略后,它 AMIs 才会开始创建。

  9. 实例重启部分中,指明是否在创建 AMI 之前重启实例。为了防止目标实例重启,请选择。选择可能会导致数据一致性问题。要在创建 AMI 之前重启实例,请选择。选择此选项可确保数据一致性,但可能导致多个目标实例同时重新启动。

  10. 选择下一步

  11. Configure schedule (配置计划) 页面配置策略计划。一个策略最多可以有四个计划。计划 1 是强制要求的计划。计划 2、3、4 是可选计划。对于您添加的每个策略计划,请执行以下操作:

    1. 计划详细信息部分中,执行以下操作:

      1. 对于计划名称,请指定计划的描述性名称。

      2. 频率和相关字段中配置策略运行之间的间隔。

        您可以按每日、每周、每月或每年计划配置策略运行。或者,选择自定义 cron 表达式以指定不超过一年的间隔时间。有关更多信息,请参阅 Amazon EventBridge 用户指南中的 Cron 和费率表达式

      3. 对于开始时间,请指定策略开始运行策略的时间。第一次策略运行在计划时间之后的一小时内开始。您必须输入 hh:mm UTC 格式的时间。

      4. 对于保留类型,请指定按计划 AMIs 创建的保留策略。

        您可以 AMIs 根据他们的总人数或年龄来保留。

        对于基于计数的保留,范围为 11000。在达到最大计数后,将在创建新 AMI 时注销最早 AMI。

        对于基于存在时间的保留,范围是 1 天到 100 年。在每个 AMI 的保留期限过期后,会将其注销。

        注意

        所有计划必须具有相同的保留类型。您只能为“计划 1”指定保留类型。计划 2、3、4 会继承计划 1 的保留类型。每个计划都可以有自己的保留计数或期限。

    2. 为配置标记。 AMIs

      标记部分中,请执行以下操作:

      1. 要将所有用户定义的标签从源实例复制到计划 AMIs 创建的标签,请选择从源实例复制标记

      2. 默认情况下,由计划 AMIs 创建的会自动使用源实例的 ID 进行标记。要防止发生此自动标记,请在变量标签中,删除 instance-id:$(instance-id) 平铺。

      3. 要指定要分配给此计划 AMIs 创建的其他标记,请选择添加标记

    3. 配置 AMI 弃用。

      要在不应再使用 AMIs 时将其弃用,请在 AMI 弃用部分,选择为此计划启用 AMI 弃用,然后指定 AMI 弃用规则。AMI 弃用规则指定何 AMIs 时弃用。

      如果计划使用基于计数的 AMI 保留期,则必须指定 AMIs 要弃用的最早保留的数量。弃用计数必须小于或等于计划的 AMI 保留计数,并且不能大于 1000。例如,如果将计划配置为最多保留 5 个 AMIs,则可以将计划配置为弃用最 AMIs旧的 5 个。

      如果计划使用基于年龄的 AMI 保留期,则必须指定不推荐使用的期限。 AMIs 弃用计数必须小于或等于计划的 AMI 保留期限,并且不能超过 10 年(120 个月、520 周或 3650 天)。例如,如果计划配置 AMIs 为保留 10 天,则可以将计划配置为在创建 AMIs 后最多 10 天后弃用。

    4. 配置跨区域复制。

      要将计划 AMIs 创建的复制到不同的区域,请在跨区域复制部分中,选择启用跨区域复制。您最多可以复制 AMIs 到账户中的三个其他区域。您必须为每个目标区域指定单独的跨区域复制规则。

      对于每个目标地区,您可以指定以下内容:

      • AMI 副本的保留策略。保留期限过期后,将自动取消注册目标区域中的副本。

      • AMI 副本的加密状态。如果源 AMI 已加密,或者默认启用了加密,则复制的 AMI 将始终 AMIs 处于加密状态。如果源 AMI 未加密,并且预设情况下禁用加密,则您可以选择启用加密。如果您未指定 KMS 密钥, AMIs 则在每个目标区域使用默认 KMS 密钥进行加密以进行 EBS 加密。如果您为目标区域指定 KMS 密钥,则选定的 IAM 角色必须具有对 KMS 密钥 的访问权限。

      • AMI 副本的弃用规则。当弃用期限过期时,将自动弃用 AMI 副本。弃用期限必须小于或等于副本保留期限,并且不能超过 10 年。

      • 是从源 AMI 复制所有标签还是不复制标签。

      注意

      请勿超过每个区域的并发 AMI 副本数。

    5. 要添加其他计划,请选择位于页面顶部的 Add another schedule (添加其他计划)。每个其他计划请按照本主题之前所述填写字段。

    6. 添加所需计划之后,请选择查看策略

  12. 查看策略摘要,然后选择创建策略

    注意

    如果发生 Role with name AWSDataLifecycleManagerDefaultRoleForAMIManagement already exists 错误,请参阅 排查 Amazon Data Lifecycle Manager 问题 来了解更多信息。

Command line

使用create-lifecycle-policy命令创建 AMI 生命周期策略。对于 PolicyType,请指定 IMAGE_MANAGEMENT

注意

为简化语法,以下示例使用包含策略详细信息的 JSON 文件 policyDetails.json

示例 1:基于存在时间的保留和 AMI 弃用

此示例创建了一个 AMI 生命周期策略,该策略在production不重启目标实例的情况下创建 AMIs 标签密钥为且值为的所有实例。purpose该策略包括一个每天可在 UTC 01:00 创建 AMI 的计划。该政策将保留2数 AMIs 天,日复一日地将其弃用。1它还会将标签从源实例复制到 AMIs 其创建的。

aws dlm create-lifecycle-policy \ --description "My AMI policy" \ --state ENABLED \ --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRoleForAMIManagement \ --policy-details file://policyDetails.json

以下是 policyDetails.json 文件的示例。

{ "PolicyType": "IMAGE_MANAGEMENT", "ResourceTypes": [ "INSTANCE" ], "TargetTags": [{ "Key": "purpose", "Value": "production" }], "Schedules": [{ "Name": "DailyAMIs", "TagsToAdd": [{ "Key": "type", "Value": "myDailyAMI" }], "CreateRule": { "Interval": 24, "IntervalUnit": "HOURS", "Times": [ "01:00" ] }, RetainRule":{ "Interval" : 2, "IntervalUnit" : "DAYS" }, DeprecateRule": { "Interval" : 1, "IntervalUnit" : "DAYS" }, "CopyTags": true } ], "Parameters" : { "NoReboot":true } }

如果请求成功,此命令将返回新创建的策略 ID。下面是示例输出。

{ "PolicyId": "policy-9876543210abcdef0" }
示例 2:基于计数的保留和使用跨区域复制的 AMI 弃用

此示例创建了一个 AMI 生命周期策略,该策略创建 AMIs 标签密钥为purpose且值为的所有实例,production并重新启动目标实例。该策略包括一个可在 UTC 17:30 起每 6 小时创建 AMI 的计划。该政策保留3 AMIs 并自动弃用最旧的。2 AMIs它还具有跨区域复制规则,可以复制到 AMI 副本 AMIs us-east-1、保留 2 AMI 副本并自动弃用最旧的 AMI。

aws dlm create-lifecycle-policy \ --description "My AMI policy" \ --state ENABLED \ --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRoleForAMIManagement \ --policy-details file://policyDetails.json

以下是 policyDetails.json 文件的示例。

{ "PolicyType": "IMAGE_MANAGEMENT", "ResourceTypes" : [ "INSTANCE" ], "TargetTags": [{ "Key":"purpose", "Value":"production" }], "Parameters" : { "NoReboot": true }, "Schedules" : [{ "Name" : "Schedule1", "CopyTags": true, "CreateRule" : { "Interval": 6, "IntervalUnit": "HOURS", "Times" : ["17:30"] }, "RetainRule":{ "Count" : 3 }, "DeprecateRule":{ "Count" : 2 }, "CrossRegionCopyRules": [{ "TargetRegion": "us-east-1", "Encrypted": true, "RetainRule":{ "IntervalUnit": "DAYS", "Interval": 2 }, "DeprecateRule":{ "IntervalUnit": "DAYS", "Interval": 1 }, "CopyTags": true }] }] }

AMI 生命周期策略的注意事项

创建 AMI 生命周期策略时应注意以下一般注意事项

  • AMI 生命周期策略仅针对与策略位于同一区域的实例。

  • 第一个 AMI 创建操作将在指定开始时间之后的一小时内启动。后续 AMI 创建操作将在计划时间的一小时内开始。

  • 当 Amazon Data Lifecycle Manager 注销 AMI 时,它会自动删除其支持的快照。

  • 目标资源标签区分大小写。

  • 如果您从策略所针对的实例中移除目标标签,Amazon Data Lifecycle Manager 将不再管理标准 AMIs 中的现有标签;如果不再需要它们,则必须手动将其删除。

  • 您可以创建多个策略来备份实例。例如,如果一个实例有两个标签,其中标签 A 是策略 A 每隔 12 小时创建一个 AMI 的目标,标签 B 是策略 B 每隔 24 小时创建一个 AMI 的目标,则 Amazon Dat a Lifecycle Manager 会 AMIs 根据这两个策略的计划进行创建。或者,您可以通过创建包含多个计划的单个策略来实现相同的结果。例如,您可以创建仅针对标签 A 的单个策略,并指定两个计划,以分别用于每 12 小时和每 24 小时一次的策略。

  • 在下次运行策略时,备份中将自动包含在创建策略后挂载到目标实例的新卷。策略运行时挂载到实例的所有卷都包括在内。

  • 如果您创建了具有基于 cron 的自定义计划的策略,并且配置为仅创建一个 AMI,则该策略不会在达到保留阈值时自动注销该 AMI。如果不再需要该 AMI,则必须手动将其注销。

  • 如果您创建基于存在时间的策略,其保留期短于创建频率,Amazon Data Lifecycle Manager 将始终保留最后一个 AMI,直到创建下一个 AMI。例如,如果基于存在时间的策略每月创建一个 AMI,保留期为七天,则 Amazon Data Lifecycle Manager 会将每个 AMI 保留一个月,即使保留期为七天。

  • 对于基于计数的策略,Amazon Data Lifecycle Manager 在尝试 AMIs 根据保留政策注销最旧的 AMI 之前,始终根据创建频率进行创建。

  • 成功取消注册 AMI 并删除其关联的备份快照可能需要几小时。如果 Amazon Data Lifecycle Manager 在成功注销先前创建的 AMI 之前创建了下一个 AMI AMIs ,则您可以暂时保留大于您的保留计数的数量。

终止策略针对的实例时应注意以下注意事项:

  • 如果您终止了保留计划为基于计数的策略所针对的实例,则该策略将不再管理先前从 AMIs 已终止的实例中创建的实例。 AMIs 如果不再需要它们,则必须提前手动注销它们。

  • 如果您终止了具有基于年龄的保留计划的策略所针对的实例,则该策略将继续取消注册 AMIs 之前按照定义的计划从已终止的实例创建的实例,直至但不包括最后一个 AMI。如果不再需要最后一个 AMI,则必须手动将其注销。

AMI 策略和 AMI 弃用应注意以下事项:

  • 如果您增加具有基于计数的保留期的计划的 AMI 弃用次数,则更改将应用于该计划创建的所有 AMIs (现有和新的)。

  • 如果您延长了保留期限为基于年龄的计划的 AMI 弃用期,则更改仅适用于新 AMIs 计划。现有 AMIs 不受影响。

  • 如果您从计划中删除 AMI 弃用规则,Amazon Data Lifecycle Manager 将不会取消 AMIs 该计划之前已弃用的弃用规则。

  • 如果您减少计划的 AMI 弃用次数或期限,Amazon Data Lifecycle Manager 将不会取消 AMIs 该计划之前已弃用的弃用次数。

  • 如果您手动弃用由 AMI 策略创建的 AMI,则 Amazon Data Lifecycle Manager 将不会覆盖弃用操作。

  • 如果您手动取消之前已被 AMI 策略弃用的 AMI 的弃用,则 Amazon Data Lifecycle Manager 将不会覆盖取消操作。

  • 如果 AMI 由多个冲突的计划创建,并且其中一个或多个计划没有 AMI 弃用规则,则 Amazon Data Lifecycle Manager 将不会弃用该 AMI。

  • 如果 AMI 由多个相互冲突的计划创建,并且其中所有计划都有 AMI 弃用规则,则 Amazon Data Lifecycle Manager 将会使用导致最新弃用日期的弃用规则。

以下注意事项适用于 AMI 策略和回收站

  • 如果 Amazon Data Lifecycle Manager 注销 AMI 并在达到策略的保留阈值时将其发送到回收站,并且您从回收站手动还原 AMI,则必须在不再需要该 AMI 时手动注销 AMI。Amazon Data Lifecycle Manager 将不再管理该 AMI。

  • 如果您手动注销由策略创建的 AMI,并且该 AMI 在达到策略的保留阈值时位于回收站中,则 Amazon Data Lifecycle Manager 将不会注销该 AMI。AMIs 当它们在回收站中时,Amazon Data Lifecycle Manager 无法进行管理。

    如果在达到策略的保留阈值之前从回收站还原了 AMI,则 Amazon Data Lifecycle Manager 将在达到策略的保留阈值时注销 AMI。

    如果在达到策略的保留阈值之后从回收站还原了 AMI,则 Amazon Data Lifecycle Manager 将不再注销 AMI。如果不再需要 AMI,则必须手动将其删除。

以下注意事项适用于处于错误状态的 AMI 策略:

  • 对于具有基于年龄的保留时间表的策略 AMIs ,如果设置为在策略处于该error状态时到期,则会无限期保留。您必须 AMIs 手动取消注册。重新启用策略后,Amazon Data Lifecycle Manager 将在保留期到期后恢复注销注册 AMIs 。

  • 对于保留时间表基于计数的策略,该策略在状态下停止创建和取消注册 AMIs 。error当您重新启用策略时,Amazon Data Lifecycle Manager 会恢复创建 AMIs,并在达到保留阈值后恢复注销注册 AMIs 。

以下注意事项适用于 AMI 策略和禁用 AMIs

  • 如果您禁用了 Amazon Data Lifecycle Manager 创建的 AMI,并且在达到其保留阈值时该 AMI 被禁用,则 Amazon Data Lifecycle Manager 将注销该 AMI 并删除其关联的快照。

  • 如果您禁用了 Amazon Data Lifecycle Manager 创建的 AMI,并手动归档了其关联的快照,并且这些快照在达到保留阈值时处于已归档状态,则 Amazon Data Lifecycle Manager 将不会删除这些快照,也不会再对其进行管理。

以下注意事项适用于 AMI 策略和 AMI 取消注册保护

  • 如果您手动为由 Amazon Data Lifecycle Manager 创建的 AMI 启用取消注册保护,并且在达到 AMI 保留阈值时该保护仍在启用,则 Amazon Data Lifecycle Manager 将不再管理该 AMI。如果不再需要 AMI,则必须手动取消注册并删除其底层快照。

其他资源

有关更多信息,请参阅使用亚马逊数据生命周期管理器 Amazon 存储自动化 Amazon EBS 快照和 AMI 管理博客。