本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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
是否為公有子網路。