本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWSSupport-MigrateEC2ClassicToVPC
Description
AWSSupport-MigrateEC2ClassicToVPC Runbook 會將 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體從 EC2-Classic 遷移至虛擬私有雲端 (VPC)。此 Runbook 支援使用 Amazon Elastic Block Store (Amazon EBS) 根磁碟區遷移硬體虛擬機器 (HVM) 虛擬化類型的 Amazon EC2 執行個體。
文件類型
自動化
擁有者
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 | 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-ClassicTest選項會建立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 執行個體為公有子網路。
輸出
getInstanceProperties.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是否為公有子網路。