

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

# `AWSSupport-CopyEC2Instance`
<a name="automation-awssupport-copyec2instance"></a>

 **描述** 

该`AWSSupport-CopyEC2Instance`运行手册为知识中心文章中概述的程序提供了自动解决方案。[如何将我的 EC2实例移动到另一个子网、可用区或 VPC](https://aws.amazon.com/premiumsupport/knowledge-center/move-ec2-instance/)？ 自动化的分支取决于您为 `Region` 和 `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](https://aws.amazon.com/premiumsupport/knowledge-center/back-up-instance-store-ebs/) BS？
+ 新的 Amazon EC2 实例具有不同的私有 IPv4 或公 IPv6 有 IP 地址。您必须使用分配给新实例的新 IP 地址，更新对旧 IP 地址的所有引用（例如，在 DNS 条目中）。如果您在源实例上使用弹性 IP 地址，请务必将其附加到新实例。
+ 当副本启动并尝试联系域时，可能会出现域安全标识符 (SID) 冲突问题。在捕获 AMI 之前，请使用 Sysprep 或从域中移除已加入域的实例，以防止出现冲突问题。有关更多信息，请参阅[如何使用 Sysprep 创建和安装自定义](https://aws.amazon.com/premiumsupport/knowledge-center/sysprep-create-install-ec2-windows-amis/)的可重复使用的 Windows？AMIs

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-CopyEC2Instance) 

**重要**  
我们不建议使用此运行手册来复制 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 \$1 false

  默认：True

  描述：（可选）如果您`true`为此参数指定，则自动化不会删除 AMI 源实例的。如果您`false`为此参数指定，则自动化会取消注册 AMI 并删除关联的快照。
+ KeepImageDestinationRegion

  类型：布尔值

  有效值：true \$1 false

  默认：True

  描述：（可选）如果您`true`为此参数指定，则自动化不会删除 AMI 它将被复制到您指定的区域。如果您`false`为此参数指定，则自动化会取消注册 AMI 并删除关联的快照。
+ NoRebootInstanceBeforeTakingImage

  类型：布尔值

  有效值：true \$1 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