

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

 **Description** 

`AWSSupport-CopyEC2Instance` Runbook 為 知識中心文章中概述的程序提供自動化解決方案 [如何將 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的 ，並從 VPC 預設子網路AMI中的 啟動新的執行個體。

若要AMI將 複製到不同的區域，您必須提供 `AutomationAssumeRole` 參數的值。如果自動化在`waitForAvailableDestinationAmi`步驟期間逾時，則 AMI可能仍在複製。如果是這種情況，您可以等待複製完成，並手動啟動執行個體。

執行此自動化之前，請注意下列事項：
+ AMI是以 Amazon Elastic Block Store (Amazon EBS) 快照為基礎。對於沒有先前快照的大型檔案系統，AMI建立可能需要幾個小時。若要縮短AMI建立時間，請在建立 之前建立 Amazon EBS 快照AMI。
+ 建立 AMI不會為執行個體上的執行個體存放磁碟區建立快照。如需將執行個體存放磁碟區備份至 Amazon EBS 的資訊，請參閱[如何將 Amazon EC2 執行個體上的執行個體存放磁碟區備份至 Amazon EBS？](https://aws.amazon.com/premiumsupport/knowledge-center/back-up-instance-store-ebs/)
+ 新的 Amazon EC2 執行個體具有不同的私有 IPv4 或公有 IPv6 IP 地址。您必須使用指派給新執行個體的新 IP 地址，更新舊 IP 地址 （例如，在 DNS 項目中） 的所有參考。如果您在來源執行個體上使用彈性 IP 地址，請務必將其連接至新的執行個體。
+ 當複製啟動並嘗試聯絡網域時，可能會發生網域安全識別符 (SID) 衝突問題。擷取 AMI 之前，請使用 Sysprep 或從網域移除網域加入的執行個體，以防止衝突問題。如需詳細資訊，請參閱[如何使用 Sysprep 來建立和安裝自訂可重複使用AMIs？](https://aws.amazon.com/premiumsupport/knowledge-center/sysprep-create-install-ec2-windows-amis/)

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

**重要**  
我們不建議使用此 Runbook 複製 Microsoft Active Directory 網域控制站執行個體。

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux、macOS、 Windows

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（選用） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。如果未指定角色，Systems Manager Automation 會使用啟動此 Runbook 的使用者許可。
+ 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` 參數需要下列動作才能成功使用 Runbook。
+ `ec2:CreateImage`
+ `ec2:DeleteSnapshot`
+ `ec2:DeregisterImage`
+ `ec2:DescribeInstances`
+ `ec2:DescribeImages`
+ `ec2:RunInstances`

如果您要將執行個體複製到不同的區域，您也需要下列許可。
+ `ec2:CopyImage`

 **文件步驟** 
+ describeOriginalInstanceDetails - 從要複製的執行個體收集詳細資訊。
+ assertRootVolumeIsEbs - 檢查根磁碟區裝置類型是否為 `ebs`，如果不是，則結束自動化。
+ evalInputParameters - 評估為輸入參數提供的值。
+ createLocalAmi - 建立來源執行個體AMI的 。
+ tagLocalAmi - 標記在上一個步驟中AMI建立的 。
+ branchAssertRegionIsSame - 根據執行個體是在相同區域還是複製到不同區域而建立的分支。
+ branchAssertSameRegionWithKeyPair - 根據是否為相同區域內複製之執行個體的 `KeyPair` 參數提供值而進行分支。
+ sameRegionLaunchInstanceWithKeyPair - 使用您指定的金鑰對，從相同子網路或您指定的子網路中的來源執行個體AMI的 啟動 Amazon EC2 執行個體。
+ sameRegionLaunchInstanceWithoutKeyPair - 從相同子網路或您指定的子網路中的來源執行個體AMI的 啟動 Amazon EC2 執行個體，而不需要金鑰對。
+ copyAmiToRegion - AMI將 複製到目的地區域。
+ waitForAvailableDestinationAmi - 等待複製AMI的狀態變成 `available`。
+ destinationRegionLaunchInstance - 使用複製的 啟動 Amazon EC2 執行個體AMI。
+ branchAssertDestinationAmiToDelete - 根據您為 `KeepImageDestinationRegion` 參數提供的值來分支。
+ deregisterDestinationAmiAndDeleteSnapshots - 取消註冊複製的 AMI並刪除相關聯的快照。
+ branchAssertSourceAmiTodelete - 根據您為 `KeepImageSourceRegion` 參數提供的值來分支。
+ deregisterSourceAmiAndDeleteSnapshots - 從來源執行個體取消註冊AMI建立的 ，並刪除相關聯的快照。
+ sleep - 將自動化休眠 2 秒。這是終端機步驟。

 **輸出** 

sameRegionLaunchInstanceWithKeyPair.InstanceIds

sameRegionLaunchInstanceWithoutKeyPair.InstanceIds

destinationRegionLaunchInstance.DestinationInstanceId