本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWSSupport-CopyEC2Instance
描述
该AWSSupport-CopyEC2Instance运行手册为知识中心文章中概述的程序提供了自动解决方案。如何将我的 EC2实例移动到另一个子网、可用区或 VPCRegion 和 SubnetId 参数指定的值。
如果您为参数指定值但未为SubnetId参数指定值,Region则自动化会创建一个 Amazon Machine Image (AMI) 的目标实例并从中启动一个新实例 AMI 在您指定的子网中。
如果您为SubnetId参数和参数指定值,Region则自动化会创建一个 AMI 在目标实例中,复制 AMI 到 AWS 区域 您指定的,然后从中启动一个新实例 AMI 在您指定的子网中。
如果您为参数指定值但未为Region参数指定值,SubnetId则自动化会创建一个 AMI 在目标实例中,复制 AMI 到您指定的区域,然后从中启动一个新实例 AMI 位于目标区域的虚拟私有云 (VPC) 的默认子网中。
如果没有为Region或SubnetId参数指定任何值,则自动化会创建一个 AMI 的目标实例,并从中启动一个新实例 AMI 在您的 VPC 的默认子网中。
要复制 AMI 对于不同的区域,您必须为AutomationAssumeRole参数提供一个值。如果在waitForAvailableDestinationAmi步骤期间自动化超时,AMI 可能还在复制。在这种情况下,您可以等待复制完成,然后手动启动该实例。
在运行此自动化之前,请注意以下事项:
-
AMI 是基于Amazon Elastic Block Store (Amazon EBS) 快照。对于之前没有快照的大型文件系统,AMI 创建可能需要几个小时。要减少 AMI 创建时间,请在创建 Amazon EBS 快照之前创建 AMI.
-
创建一个 AMI 不会为实例上的实例存储卷创建快照。有关将实例存储卷备份到 Amazon EBS 的信息,请参阅如何将我的亚马逊实例上的实例存储卷备份到 Amazon EC2 E
BS? -
新的 Amazon EC2 实例具有不同的私有 IPv4 或公 IPv6 有 IP 地址。您必须使用分配给新实例的新 IP 地址,更新对旧 IP 地址的所有引用(例如,在 DNS 条目中)。如果您在源实例上使用弹性 IP 地址,请务必将其附加到新实例。
-
当副本启动并尝试联系域时,可能会出现域安全标识符 (SID) 冲突问题。在捕获 AMI 之前,请使用 Sysprep 或从域中移除已加入域的实例,以防止出现冲突问题。有关更多信息,请参阅如何使用 Sysprep 创建和安装自定义
的可重复使用的 Windows?AMIs
重要
我们不建议使用此运行手册来复制 Microsoft Active Directory Domain Controller 实例。
文档类型
自动化
所有者
Amazon
平台
Linux,macOS, Windows
参数
-
AutomationAssumeRole
类型:字符串
描述:(可选)允许 Systems Manager Automation 代表您执行操作 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称(ARN)。如果未指定角色,Systems Manager Automation 将使用启动此运行手册的用户的权限。
-
InstanceId
类型:字符串
描述:(必需)要复制的实例的 ID。
-
KeyPair
类型:字符串
描述:(可选)要与新复制的实例关联的密钥对。如果您要将实例复制到其他区域,请确保指定的区域存在密钥。
-
区域
类型:字符串
描述:(可选)要将实例复制到的区域。如果您为此参数指定一个值,但未为
SubnetId和SecurityGroupIds参数指定值,自动化将尝试使用默认安全组在默认的 VPC 中启动实例。如果在目标区域启用 EC2-Classic,则启动将失败。 -
SubnetId
类型:字符串
描述:(可选)要将实例复制到的子网的 ID。如果目标区域启用了 EC2-Classic,则必须为此参数提供一个值。
-
InstanceType
类型:字符串
描述:(可选)复制的实例应当启动的目标实例类型。如果您没有为此参数指定一个值,则使用源实例类型。如果要将实例复制到的区域不支持源实例类型,自动化将失败。
-
SecurityGroupIds
类型:字符串
描述:(可选) IDs 要与复制的实例关联的安全组列表,以逗号分隔。如果您未为此参数指定一个值,且该实例未被复制到其他区域,则使用与源实例关联的安全组。如果您要将实例复制到其他区域,则使用目的地区域中默认 VPC 的默认安全组。
-
KeepImageSourceRegion
类型:布尔值
有效值:true | false
默认:True
描述:(可选)如果您
true为此参数指定,则自动化不会删除 AMI 源实例的。如果您false为此参数指定,则自动化会取消注册 AMI 并删除关联的快照。 -
KeepImageDestinationRegion
类型:布尔值
有效值:true | false
默认:True
描述:(可选)如果您
true为此参数指定,则自动化不会删除 AMI 它将被复制到您指定的区域。如果您false为此参数指定,则自动化会取消注册 AMI 并删除关联的快照。 -
NoRebootInstanceBeforeTakingImage
类型:布尔值
有效值:true | false
默认:false
描述:(可选)如果您
true为此参数指定,则在创建源实例之前,不会重新启动源实例 AMI。 使用此选项时,无法保证所创建映像的文件系统的完整性。
所需的 IAM 权限
AutomationAssumeRole 参数需要执行以下操作才能成功使用运行手册。
-
ec2:CreateImage -
ec2:DeleteSnapshot -
ec2:DeregisterImage -
ec2:DescribeInstances -
ec2:DescribeImages -
ec2:RunInstances
如果您要将实例复制到其他区域,则还需要具有以下权限。
-
ec2:CopyImage
文档步骤
-
describeOriginalInstance详细信息-从要复制的实例中收集详细信息。
-
assertRootVolumeIsEbs -检查根卷设备类型是否为
ebs,如果不是,则结束自动化。 -
evalInputParameters -评估为输入参数提供的值。
-
createLocalAmi -创建一个 AMI 源实例的。
-
tagLocalAmi -标记 AMI 在上一步中创建。
-
branchAssertRegionIsSame -根据实例是在同一区域内复制还是复制到其他区域进行分支。
-
branchAssertSameRegionWithKeyPair -根据是否为在同一区域内复制的实例的
KeyPair参数提供了值进行分支。 -
sameRegionLaunchInstanceWithKeyPair -从启动 Amazon EC2 实例 AMI 源实例位于您使用指定的 key pair 指定的子网或子网中。
-
sameRegionLaunchInstanceWithoutKeyPair -从启动 Amazon EC2 实例 AMI 源实例位于同一子网或不带密钥对(key pair)的子网中。
-
copyAmiTo区域-复制 AMI 到目标地区。
-
waitForAvailableDestinationAmi -等待复制的内容 AMI 要成为的状态
available。 -
destinationRegionLaunch实例-使用复制的 EC2 实例启动 Amazon 实例 AMI.
-
branchAssertDestinationAmiToDelete -根据您为
KeepImageDestinationRegion参数提供的值进行分支。 -
deregisterDestinationAmiAndDeleteSnapshots -注销复制的内容 AMI 并删除关联的快照。
-
branchAssertSourceAmiTodelete -根据您为
KeepImageSourceRegion参数提供的值进行分支。 -
deregisterSourceAmiAndDeleteSnapshots -注销 AMI 从源实例创建并删除关联的快照。
-
sleep - 使自动化休眠 2 秒钟。这是最终步骤。
输出
sameRegionLaunchInstanceWithKeyPair.InstanceIds
sameRegionLaunchInstanceWithoutKeyPair.InstanceIds
destinationRegionLaunch实例。 DestinationInstanceId