

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

# `AWSSupport-MigrateEC2ClassicToVPC`
<a name="automation-awssupport-migrate-ec2-classic-to-vpc"></a>

**Description**

`AWSSupport-MigrateEC2ClassicToVPC` Runbook 會將 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體從 EC2-Classic 遷移至虛擬私有雲端 (VPC)。此 Runbook 支援使用 Amazon Elastic Block Store (Amazon EBS) 根磁碟區遷移硬體虛擬機器 (HVM) 虛擬化類型的 Amazon EC2 執行個體。

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

**文件類型**

 自動化

**擁有者**

Amazon

**平台**

Linux

**參數**
+ AutomationAssumeRole

  類型：字串

  描述：（必要） 允許 Systems Manager Automation 代表您執行動作的 (IAM) 角色的 AWS Identity and Access Management Amazon Resource Name (ARN)。
+ ApproverIAM

  類型：StringList

  描述：（選用） 可以核准或拒絕動作的 IAM 使用者的 Amazon Resource Name (ARNs)。只有在您指定 參數`CutOver`的值時，才會套用此`MigrationType`參數。
+ DestinationSecurityGroupId

  類型：StringList

  描述：（選用） 您要與 VPC 中啟動的 Amazon EC2 執行個體建立關聯的安全群組 ID。如果您未指定此參數的值，自動化會在 VPC 中建立安全群組，並從 EC2-Classic 中的安全群組複製規則。如果規則無法複製到新的安全群組，則 VPC 的預設安全群組會與 Amazon EC2 執行個體相關聯。
+ DestinationSubnetId

  類型：字串

  描述：（選用） 您要遷移 Amazon EC2 執行個體的子網路 ID。如果您未指定此參數的值，自動化會從 VPC 隨機選擇子網路。
+ InstanceId

  類型：字串

  描述：（必要） 您要遷移的 Amazon EC2 執行個體 ID。
+ MigrationType

  類型：字串

  有效值：CutOver \$1 Test

  描述：（必要） 您要執行的遷移類型。

  `CutOver` 此選項需要核准，才能停止在 Amazon EC2 EC2-Classic 執行個體。核准此動作後，Amazon EC2 執行個體會停止，自動化會建立 Amazon Machine Image(AMI)。當AMI狀態為 時`available`，新的 Amazon EC2 執行個體會在`DestinationSubnetId`您在 VPC AMI中指定的 中從此啟動。如果您在 EC2-Classic 中執行的 Amazon EC2 執行個體已連接彈性 IP 地址，執行個體將移至 VPC 中新建立的 Amazon EC2 執行個體。如果 VPC 中啟動的 Amazon EC2 執行個體因任何原因無法建立，則會終止，並請求核准才能在 EC2-Classic 中啟動 Amazon EC2 執行個體。 EC2-Classic

  `Test` 選項會建立AMI在 EC2-Classic 中執行的 Amazon EC2 執行個體的 ，而不重新啟動。 EC2-Classic 由於 Amazon EC2 執行個體不會重新啟動，我們無法保證所建立映像的檔案系統完整性。當AMI狀態為 時`available`，新的 Amazon EC2 執行個體會在`DestinationSubnetId`您在 VPC 中指定的 AMI 中從此啟動。如果您在 Amazon EC2 EC2-Classic 執行個體已連接彈性 IP 地址，自動化會驗證`DestinationSubnetId`您指定的 是公有的。如果 VPC 中啟動的 Amazon EC2 執行個體因任何原因無法建立，則會終止並結束自動化。
+ SNSNotificationARNforApproval

  類型：字串

  描述：（選用） 您要傳送核准請求的 Amazon Simple Notification Service (Amazon SNS) 主題的 ARN。只有在您指定 參數`CutOver`的值時，才會套用此`MigrationType`參數。
+ TargetInstanceType

  類型：字串

  預設：t2.2xlarge

  描述：（選用） 您想要在 VPC 中啟動的 Amazon EC2 執行個體類型。僅支援以 Xen 為基礎的執行個體類型，例如 T2, M4 或 C4。

**必要的 IAM 許可**

`AutomationAssumeRole` 參數需要下列動作才能成功使用 Runbook。
+ `ssm:GetDocument`
+ `ssm:ListDocumentVersions`
+ `ssm:ListDocuments`
+ `ssm:StartAutomationExecution`
+ `sns:GetTopicAttributes`
+ `sns:ListSubscriptions`
+ `sns:ListTopics`
+ `sns:Publish`
+ `ec2:AssociateAddress`
+ `ec2:AuthorizeSecurityGroupIngress`
+ `ec2:CreateImage`
+ `ec2:CreateSecurityGroup`
+ `ec2:DeleteSecurityGroup`
+ `ec2:MoveAddressToVpc`
+ `ec2:RunInstances`
+ `ec2:StopInstances`
+ `ec2:CreateTags`
+ `ec2:DescribeAddresses`
+ `ec2:DescribeInstanceAttribute`
+ `ec2:DescribeInstances`
+ `ec2:DescribeInstanceStatus`
+ `ec2:DescribeRouteTables`
+ `ec2:DescribeSecurityGroupReferences`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeTags`
+ `ec2:DescribeVpcs`
+ `ec2:DescribeInstanceTypes`
+ `ec2:DescribeImages`

**文件步驟**
+ `aws:executeAwsApi` - 收集您在 `InstanceId` 參數中指定的 Amazon EC2 執行個體詳細資訊。
+ `aws:assertAwsResourceProperty` - 確認您在 `TargetInstanceType` 參數中指定的執行個體類型是以 Xen 為基礎。
+ `aws:assertAwsResourceProperty` - 確認您在 `InstanceId` 參數中指定的 Amazon EC2 執行個體屬於 HVM 虛擬化類型。
+ `aws:assertAwsResourceProperty` - 確認您在 `InstanceId` 參數中指定的 Amazon EC2 執行個體具有 Amazon EBS 根磁碟區。
+ `aws:executeScript` - 根據您為 `DestinationSecurityGroupId` 參數指定的值，視需要建立安全群組。
+ `aws:branch` - 根據您在 `DestinationSubnetId` 參數中指定的值進行分支。
+ `aws:executeAwsApi` - 在您執行此自動化的 AWS 區域 中識別預設 VPC。
+ `aws:executeAwsApi` - 隨機選擇位於預設 VPC 中的子網路 ID。
+ `aws:createImage` - 建立 AMI而不重新啟動 Amazon EC2 執行個體。
+ `aws:branch` - 根據您為 `MigrationType` 參數指定的值進行分支。
+ `aws:branch` - 根據您為 `DestinationSubnetId` 參數指定的值進行分支。
+ `aws:runInstances` - 從AMI建立的 啟動新的執行個體，而不重新啟動 Amazon EC2 EC2-Classic 執行個體。
+ `aws:changeInstanceState` - 如果上一個步驟因任何原因失敗，則終止新啟動的 Amazon EC2 執行個體。
+ `aws:runInstances` - 如果`DestinationSubnetId`提供 ，則從AMI建立的 啟動新的執行個體，而不在 EC2-Classic 中重新啟動 Amazon EC2 執行個體。 EC2-Classic 
+ `aws:changeInstanceState` - 如果上一個步驟因任何原因失敗，則終止新啟動的 Amazon EC2 執行個體。
+ `aws:assertAwsResourceProperty` - 確認在 Amazon EC2 EC2-Classic 執行個體的停止行為。
+ `aws:approve` - 等待核准以停止 Amazon EC2 執行個體。
+ `aws:changeInstanceState` - 停止在 Amazon EC2 EC2-Classic 執行個體。
+ `aws:changeInstanceState` - 如有需要，強制 會停止在 Amazon EC2 EC2-Classic 執行個體。
+ `aws:createImage` - 在 Amazon EC2 AMI 執行個體停止後建立 。
+ `aws:branch` - 根據 `DestinationSubnetId` 參數指定的值進行分支。
+ `aws:runInstances` - 從在 EC2-Classic 中AMI建立的已停止 Amazon EC2 執行個體啟動新執行個體。 Amazon EC2 EC2-Classic
+ `aws:approve` - 等待核准以終止新啟動的執行個體，並在上一個步驟因任何原因失敗時，在 EC2-Classic 中啟動 Amazon EC2 執行個體。 EC2-Classic 
+ `aws:changeInstanceState` - 終止新啟動的 Amazon EC2 執行個體。
+ `aws:runInstances` - 從 參數的 EC2-Classic 中AMI建立的已停止 Amazon EC2 執行個體啟動新執行個體`DestinationSubnetId`。 Amazon EC2 EC2-Classic 
+ `aws:approve` - 等待核准以終止新啟動的執行個體，並在上一個步驟因任何原因失敗時，在 EC2-Classic 中啟動 Amazon EC2 執行個體。 EC2-Classic 
+ `aws:changeInstanceState` - 終止新啟動的 Amazon EC2 執行個體。
+ `aws:changeInstanceState` - 啟動在 Amazon EC2 EC2-Classic 執行個體。
+ `aws:branch` - 根據 Amazon EC2 執行個體是否有公有 IP 地址進行分支。
+ `aws:executeAwsApi` - 驗證公有 IP 地址是否為彈性 IP 地址。
+ `aws:branch` - 根據您在 `MigrationType` 參數中指定的值進行分支。
+ `aws:executeAwsApi` - 將彈性 IP 地址移至您的 VPC。
+ `aws:executeAwsApi` - 收集已移至 VPC 的彈性 IP 地址的配置 ID。
+ `aws:branch` - 根據 VPC 中執行的 Amazon EC2 執行個體啟動的子網路進行分支。
+ `aws:executeAwsApi` - 將彈性 IP 地址連接到 VPC 中新啟動的執行個體。
+ `aws:executeScript` - 確認您 VPC 中新啟動的 Amazon EC2 執行個體為公有子網路。

**輸出**

g`etInstanceProperties.virtualizationType` - ECAmazon EC2 EC2-Classic 執行個體的虛擬化類型。

`getInstanceProperties.rootDeviceType` - ECAmazon EC2 EC2-Classic 執行個體的根裝置類型。

`createAMIWithoutReboot.ImageId` - 在不重新啟動在 Amazon EC2 EC2-Classic 執行個體的情況下AMI建立的 ID。

`getDefaultVPC.VpcId` - 若未提供 `DestinationSubnetId` 參數的值，則會啟動新 Amazon EC2 執行個體的預設 VPC ID。

`getSubnetIdinDefaultVPC.subnetIdFromDefaultVpc` - 預設 VPC 中的子網路 ID，如果未提供 `DestinationSubnetId` 參數的值，則會啟動新的 Amazon EC2 執行個體。



`launchTestInstanceDefaultVPC.InstanceIds` - 在`Test`遷移類型期間，在您預設 VPC 中新啟動的 Amazon EC2 執行個體 ID。

`launchTestInstanceProvidedSubnet.InstanceIds` - `DestinationSubnetId`您在`Test`遷移類型期間指定的 中新啟動的 Amazon EC2 執行個體 ID。

`createAMIAfterStoppingInstance.ImageId` - 停止在 Amazon EC2 EC2-Classic 執行個體後AMI建立的 ID。

`launchCutOverInstanceProvidedSubnet.InstanceIds` - `DestinationSubnetId`您在`CutOver`遷移類型期間指定的 中新啟動的 Amazon EC2 執行個體 ID。

`launchCutOverInstanceDefaultVPC.InstanceIds` - 在`CutOver`遷移類型期間，在您預設 VPC 中新啟動的 Amazon EC2 執行個體 ID。

`verifySubnetIsPublicTestDefaultVPC.IsSubnetPublic` - 預設 VPC 中自動化所選擇的子網路是否為公有子網路。

`verifySubnetIsPublicTestProvidedSubnet.IsSubnetPublic` - 您在 中指定的子網路`DestinationSubnetId`是否為公有子網路。