AWSPremiumSupport-ChangeInstanceTypeIntelToAMD - AWS Systems Manager 自动化运行手册参考

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

AWSPremiumSupport-ChangeInstanceTypeIntelToAMD

描述

AWSPremiumSupport-ChangeInstanceTypeIntelToAMD 运行手册自动执行从英特尔支持的 Amazon Elastic Compute Cloud (Amazon EC2) 实例迁移到 AMD 支持的同等实例类型。此运行手册支持基于 Nitro 系统构建的通用型 (M)、可突发性通用型 (T)、计算优化型 (C) 和内存优化型 (R) 实例。此运行手册可用于不由 Systems Manager 管理的实例。

为了降低数据丢失和停机的潜在风险,运行手册会检查实例的停止行为、实例是否在 Amazon EC2 Auto Scaling 组中、实例的运行状况,以及同一个可用区中是否有 AMD 支持的同等实例类型可用。默认情况下,如果已附加实例存储卷或实例是 AWS CloudFormation 堆栈的一部分,则此运行手册不会更改实例类型。如果要更改此行为,请为 AllowInstanceStoreInstancesAllowCloudFormationInstances 参数中的任意一个指定 yes

重要

访问 AWSPremiumSupport-* 运行手册需要订阅 Enterprise 或 Business Support。有关更多信息,请参阅比较 AWS Support 计划

注意事项

  • 我们建议您在使用此运行手册之前先备份您的实例。

  • 更改实例类型需要运行手册来停止您的实例。当实例停止时,存储在 RAM 或实例存储卷中的所有数据都将丢失,自动公有 IPv4 地址将释放。有关更多信息,请参阅停止和启动实例

  • 如果您没有为 TargetInstanceType 参数指定一个值,则运行手册会尝试根据同一实例族中的虚拟 CPU 和内存来识别等效的 AMD 实例。如果运行手册无法识别等效的 AMD 实例类型,运行手册将结束。

  • 使用 DryRun 选项,您可以捕获等效的 AMD 实例类型并验证需求,而无需实际更改实例类型。

运行此自动化(控制台)

文档类型

自动化

所有者

Amazon

平台

Linux、macOS、Windows

参数

  • AutomationAssumeRole

    类型:字符串

    说明:(可选)允许 Systems Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的 Amazon Resource Name (ARN)。如果未指定任何角色,则 Systems Manager Automation 使用启动此运行手册的用户的权限。

  • 确认

    类型:字符串

    描述:(必填)输入 yes 以确认您的目标实例将停止(如果它正在运行)。

  • InstanceId

    类型:字符串

    描述:(必填)要更改其类型的 Amazon EC2 实例的 ID。

  • TargetInstanceType

    类型:字符串

    默认:自动

    描述:(可选)要将您的实例更改为的 AMD 实例类型。默认的 automatic 值使用在虚拟 CPU 和内存方面等效的实例类型。例如,m5.large 将更改为 m5a.large。

  • AllowInstanceStoreInstances

    类型:字符串

    有效值:否 | 是

    默认值:no

    描述:(可选)如果您指定 yes,运行手册将在已附加实例存储卷的实例上运行。

  • AllowCloudFormationInstances

    类型:字符串

    有效值:否 | 是

    默认值:no

    描述:(可选)如果设置为 yes,运行手册将在属于 AWS CloudFormation 堆栈的实例上运行。

  • AllowCrossGeneration

    类型:字符串

    有效值:否 | 是

    默认值:no

    描述:(可选)如果设置为 yes,运行手册将尝试在同一实例族中查找最新的等效 AMD 实例类型。

  • DryRun

    类型:字符串

    有效值:否 | 是

    默认值:no

    描述:(可选)如果设置为 yes,运行手册将返回等效的 AMD 实例类型并验证迁移要求,而无需更改实例类型。

  • SleepWait

    类型:字符串

    默认:PT3S

    描述:(可选)运行手册在开始新的自动化之前应等待的时间。您为此参数提供的值必须符合 ISO 8601 标准。要了解有关创建 ISO 8601 字符串的更多信息,请参阅为 Systems Manager 创建格式化的日期和时间字符串

所需的 IAM 权限

AutomationAssumeRole 参数需要执行以下操作才能成功使用运行手册。

  • ssm:DescribeAutomationExecutions

  • ssm:GetAutomationExecution

  • ssm:StartAutomationExecution

  • ec2:GetInstanceTypesFromInstanceRequirements

  • ec2:DescribeInstanceAttribute

  • ec2:DescribeInstances

  • ec2:DescribeInstanceStatus

  • ec2:DescribeInstanceTypeOfferings

  • ec2:DescribeInstanceTypes

  • ec2:DescribeTags

  • ec2:ModifyInstanceAttribute

  • ec2:StartInstances

  • ec2:StopInstances

文档步骤

  1. aws:assertAwsResourceProperty:确认目标 Amazon EC2 实例的状态为 runningpendingstoppedstopping。否则,自动化将结束。

  2. aws:executeAwsApi:从 Amazon EC2 目标实例收集属性。

  3. aws:branch:根据 Amazon EC2 实例的状态对自动化进行分支。

    1. 如果为 stoppedstopping,则自动化会运行 aws:waitForAwsResourceProperty,直到 Amazon EC2 实例完全停止。

    2. 如果为 runningpending,则自动化会运行 aws:waitForAwsResourceProperty,直到 Amazon EC2 实例通过状态检查。

  4. aws:assertAwsResourceProperty:通过检查 aws:autoscaling:groupName 标签是否已应用,确认 Amazon EC2 实例不是 Auto Scaling 组的一部分。

  5. aws:executeAwsApi:收集当前实例类型属性以查找等效的 AMD 实例类型。

  6. aws:assertAwsResourceProperty:确认 AWS Marketplace 产品代码未与 Amazon EC2 实例关联。某些产品类型并非在所有实例类型上都可用。

  7. aws:branch:根据您是否希望自动化检查 Amazon EC2 实例是否是 AWS CloudFormation 堆栈的一部分,对自动化进行分支

    1. 如果 aws:cloudformation:stack-name 标签应用于实例,则自动化会运行 aws:assertAwsResourceProperty 以确认该实例不是 AWS CloudFormation 堆栈的一部分。

  8. aws:branch:根据实例根卷类型是否为 Amazon Elastic Block Store (Amazon EBS) 的实例对自动化进行分支。

  9. aws:assertAwsResourceProperty:确认实例关闭行为是 stop 且不是 terminate

  10. aws:executeScript:确认此运行手册中只有一个针对当前实例的自动化。如果针对同一实例的另一个自动化已经在进行,则它会返回错误并结束。

  11. aws:executeAwsApi:返回具有相同内存和 vCPU 量的 AMD 实例类型的列表。

  12. aws:executeScript:检查当前实例类型是否受支持并返回其等效的 AMD 实例类型。如果没有等效类型,自动化将结束。

  13. aws:executeScript:确认 AMD 实例类型在同一可用区中可用,并验证所提供的 IAM 权限。

  14. aws:branch:根据 DryRun 参数值是否为 yes 对自动化进行分支。

  15. aws:branch:检查原始和目标实例类型是否相同。如果它们相同,自动化将结束。

  16. aws:executeAwsApi:获取当前实例状态。

  17. aws:changeInstanceState:停止 Amazon EC2 实例。

  18. aws:changeInstanceState: 如果实例卡在了停止状态,则强制其停止。

  19. aws:executeAwsApi:将实例类型更改为目标 AMD 实例类型。

  20. aws:sleep:更改实例类型后等待 3 秒钟以确保最终一致性。

  21. aws:branch:根据前实例的状态对自动化进行分支。如果是 running,则实例已启动。

    1. aws:changeInstanceState:如果 Amazon EC2 实例在更改实例类型之前正在运行,则启动该实例。

    2. aws:waitForAwsResourceProperty:等待 Amazon EC2 实例通过状态检查。如果实例未通过状态检查,实例将变回其原始的实例类型。

      1. aws:changeInstanceState:停止 Amazon EC2 实例,然后将其更改为原始实例类型。

      2. aws:changeInstanceState:强制 Amazon EC2 实例停止,然后再将其更改为原始实例类型,以防它卡在停止状态。

      3. aws:executeAwsApi:将 Amazon EC2 实例更改为其原始类型。

      4. aws:sleep:更改实例类型后等待 3 秒钟以确保最终一致性。

      5. aws:changeInstanceState:如果 Amazon EC2 实例在更改实例类型之前正在运行,则启动该实例。

      6. aws:waitForAwsResourceProperty:等待 Amazon EC2 实例通过状态检查。

  22. aws:sleep: 等待,然后结束运行手册。