本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWSSupport-CloneXenEC2InstanceAndMigrateToNitro
描述
该AWSSupport-CloneXenEC2InstanceAndMigrateToNitro运行手册克隆、准备和迁移目前在亚马逊 EC2 Xen 平台上运行的克隆亚马逊弹性计算云(亚马逊 EC2)Linux 实例,使其在亚马逊 EC2 Nitro 平台上运行。这种自动化分为三个不同的分支:
-
初步检查:评估继续迁移的所有先决条件,包括检查目标 Amazon EC2 实例是否已在 Nitro 平台上运行、确定生命周期状态、验证操作系统以及验证 Systems Manager 连接。
-
测试:在继续操作之前,AMI从目标 Amazon EC2 实例创建测试并启动测试 Amazon EC2 实例以验证迁移过程。
-
CloneAndMigrate: 创建目标 Amazon EC2 实例的克隆,安装必要的驱动程序,为 Nitro 平台配置系统,并将实例类型更改为所需的 Nitro 类型。
重要
在批准停止目标 Amazon EC2 实例之前,请确保该实例上运行的所有应用程序均已正常关闭。如果 Amazon EC2 实例没有关联的弹性 IP 地址,则一旦停止并启动该实例,自动公有 IPv4 地址就会发生变化。
重要
免责声明:执行本操作手册可能会向您的账户收取额外费用,例如亚马逊 EC2 实例、亚马逊 EBS Volumes & s。AMI请参阅亚马逊 EC2 定价
重要
先决条件
目标 Amazon EC2 实例需要出站访问存储库才能安装驱动程序和依赖项kernel-devel,例如gcc、patch、、rpm-build、wget、dracut、make、linux-headers、,并在需要时unzip使用包管理器。
受支持的操作系统
Red Hat Enterprise Linux(RHEL)8 和 9
Amazon Linux 2 和 AL2023
Ubuntu 服务器 18.04 LTS、20.04 和 22.04
Debian 11 和 12(仅限AWS 分区)
SUSE12SP5 和 SUSE15SP (5,6)
如何工作?
该运行手册执行以下高级步骤:
验证先决条件并检查实例是否适合迁移。
创建和测试AMI以确保迁移成功。
启用增强联网 (ENA) 属性并安装最新的 ENA 驱动程序。
在 initramfs 中验证和配置 NVMe 模块。
分析和修改/etc/fstab ,将设备名称替换为 UUID。
禁用可预测的接口命名并删除永久网络规则。
将克隆的实例类型更改为所需的 Nitro 类型。
创建可用作启动 Nitro 实例的黄金映像的最终AMI版本。
文档类型
自动化
所有者
Amazon
平台
Linux
参数
所需的 IAM 权限
AutomationAssumeRole 参数需要执行以下操作才能成功使用运行手册。
autoscaling:DescribeAutoScalingInstancesec2:CreateImageec2:CreateTagsec2:DescribeImagesec2:DescribeInstanceAttributeec2:DescribeInstancesec2:DescribeInstanceStatusec2:DescribeInstanceTypeOfferingsec2:DescribeInstanceTypesec2:DeregisterImageec2:ModifyInstanceAttributeec2:RunInstancesec2:StartInstancesec2:StopInstancesec2:TerminateInstancesiam:PassRolesns:Publishssm:DescribeAutomationExecutionsssm:DescribeInstanceInformationssm:SendCommand
示例 IAM 策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:DescribeAutoScalingInstances", "ec2:CreateImage", "ec2:CreateTags", "ec2:DescribeImages", :ec2:DescribeInstanceAttribute:, "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "ec2:DescribeInstanceTypes", "ec2:DeregisterImage", "ec2:ModifyInstanceAttribute", "ec2:RunInstances", "ec2:StartInstances", "ec2:StopInstances", "ec2:TerminateInstances", "iam:PassRole", "ssm:DescribeAutomationExecutions", "ssm:DescribeInstanceInformation", "ssm:SendCommand" ], "Resource": "*" } ] }
说明
按照这些步骤对自动化进行配置:
-
导航到
AWSSupport-CloneXenEC2InstanceAndMigrateToNitro“系统管理器” 下的 “文档”。 -
选择
Execute automation。 -
对于输入参数,输入以下内容:
-
AutomationAssumeRole (可选):
描述:(可选)允许 Systems Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的 ARN。如果未指定角色,Systems Manager Automation 将使用启动此运行手册的用户的权限。
类型:
AWS::IAM::Role::Arn
-
TargetInstanceId (必填):
描述:(必填)您要迁移到 Nitro 平台的目标 Amazon EC2 实例的实例 ID。
类型:
AWS::EC2::Instance::Id
-
NitroInstanceType (可选):
描述:(可选)输入目标 Nitro 实例类型。仅支持 Nitro M5、M6、C5、C6、R5、R6 和 T3 实例(例如 t3.small)。默认值:m5.xlarge。
类型:
String-
允许的模式:
^(m5a?z?d?n?|c5a?d?n?|r5a?d?n?b?|(c|m|r)6(a|i)?d?)\\.(2|4|8|12|16|24|32)?xlarge$|^t3a?\\.((x|2x)?large|nano|micro|small|medium)$ 默认值:
m5.xlarge
-
SNSTopicArn (必填):
描述:(必填)提供亚马逊 SNS 主题的 ARN 以获取批准通知。此 Amazon SNS 主题用于在自动化执行期间发送批准通知。
类型:
String-
允许的模式:
^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):sns:(us(-gov|-isob?)?|ap|ca|af|me|cn|eu|sa)-(central|(north|south)?(east|west)?)-\\d:\\d{12}:[a-zA-Z0-9_.-]{1,256}$
-
approverIAM(必填):
描述:(必填)提供 AWS 经过身份验证且能够批准或拒绝操作的委托人列表。最大审批者数量为 10。
类型:
StringList-
允许的模式:
^[a-zA-Z0-9_+=,.@\\-\/]{1,128}$|^arn:(aws|aws-cn|aws-us-gov|aws-iso(-[a-z])?):(sts|iam)::[0-9]{12}:[a-zA-Z0-9_+=,.@\\-\/]{1,256}$
-
MinimumRequiredApprovals (可选):
描述:(可选)恢复自动化所需的最低批准次数。默认值:1。
类型:整数
默认:1
-
DeleteResourcesOnFailure (可选):
描述:(可选)是否终止克隆的 Amazon EC2 实例以及自动化AMI是否失败。
类型:
Boolean-
允许的值:
[true, false] 默认值:
true
-
致谢(必填):
描述:(必填)请阅读本自动化运行手册所执行操作的完整详细信息,如果您确认这些步骤,请写上 “是的,我理解并同意”。
类型:
String-
允许的模式:
^Yes, I understand and acknowledge$
-
AllowInstanceStoreInstances (可选):
描述:(可选)如果您指定
yes,运行手册将在已附加实例存储卷的实例上运行。警告:当实例停止时,实例存储卷中的数据会丢失。此参数有助于避免意外丢失数据。类型:
Boolean-
允许的值:
[yes, no] 默认值:
no
-
-
选择执行。
-
自动化启动。
-
文档将执行以下步骤:
-
checkConcurrency:确保本运行手册仅针对当前 Amazon EC2 实例执行一次。
-
getTargetInstanceProperties:获取目标 Amazon EC2 实例的详细信息。
-
checkIfNitroInstanceTypeIsSupportedInAZ:确定在与目标 Amazon EC2 实例相同的可用区域中是否支持目标 Nitro 实例类型。
-
createTestImage:AMI从提供的实例创建测试。
-
launchTestInstanceInSameSubnet:AMI使用与目标亚马逊 EC2 实例相同的配置从测试中启动一个测试 Amazon EC2 实例。
-
approvalToStopTargetInstance:等待指定负责人批准后停止目标实例。
-
createBackupImage:AMI从提供的实例中创建一个用于备份。
-
launchInstanceInSameSubnet:AMI使用与源亚马逊 EC2 实例相同的配置,从备份中启动新的 Amazon EC2 实例。
-
checkAndInstallENADrivers:确定 Amazon EC2 实例上增强网络适配器 (ENA) 驱动程序的可用性以及安装(如果缺失)。
-
checkAndAddNVMEDrivers:确定克隆的 Amazon EC2 实例上的 NVMe 驱动程序的可用性以及安装(如果缺失)。
-
checkAndModifyFSTABEntries:确定是否在中使用设备名称
/etc/fstab并将其替换为其 UUID(如果找到)。 -
setNitroInstanceTypeForClonedInstance:为克隆的亚马逊 EC2 实例设置提供的目标 Amazon EC2 实例类型。
-
approvalForCreatingImageAfterDriversInstallation:如果克隆的亚马逊 EC2 实例在 Nitro 平台上成功启动,则等待用户批准。
-
createImageAfterDriversInstallation:仅当新的亚马逊 EC2 实例在 Nitro 平台上成功启动时,才从新的 Amazon EC2 实例创建映像。
-
-
完成后,查看 “输出” 部分,了解详细的执行结果。
参考
AWS Systems Manager 自动化