AWSSupport-CopyEC2Instance - AWS Systems Manager 自動化 Runbook 參考

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

AWSSupport-CopyEC2Instance

Description (描述)

AWSSupport-CopyEC2Instancerunbook 針對知識中心文章中概述的程序提供自動化解決方案如何將 EC2 執行個體移至另一個子網路、可用區域或 V PC? 自動化會根據您為RegionSubnetId參數指定的值進行分支。

如果您為參數指定值,但不指定SubnetIdRegion數的值,則自動化會建立目標執行個體的 Amazon Machine Image (AMI),並從您指定的子網路AMI中啟動新執行個體。

如果您指定SubnetId參數和參數的值,則自動化會建立目標執行個體AMI的一個,複製AMI到AWS 區域您指定的執行個體,然後從您指定的子網路AMI中啟動新執行個體。Region

如果您為參數指定值,但不指定Region參數的值,則自動化會建立目標執行個體AMI的一個,將該執行個體複製AMI到您指定的區域,然後從目的地區域AMI中虛擬私人雲端 (VPC) 的預設子網路中啟動新執行個體。SubnetId

如果未指定RegionSubnetId參數的值,則自動化會建立目標執行個AMI體,並從 VPC 的預設子網路AMI中啟動新執行個體。

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

執行此自動化操作之前,請注意下列事項:

  • AMIs 是以亞馬遜彈性區塊存放區 (Amazon EBS) 快照為基礎。對於沒有先前快照的大型檔案系統,AMI建立可能需要數小時的時間。若要縮短建AMI立時間,請先建立 Amazon EBS 快照,然後再建立. AMI

  • 建立執行個體AMI並不會為執行個體上的執行個體儲存磁碟區建立快照。如需將執行個體存放磁碟區備份到 Amazon EBS 的相關資訊,請參閱如何將 Amazon EC2 執行個體上的執行個體存放區磁碟區備份到 Amazon E BS?

  • 新的亞馬遜 EC2 執行個體具有不同的私有 IPv4 或公有 IPv6 IP 地址。您必須使用指派給新執行個體的新 IP 位址來更新舊 IP 位址的所有參照 (例如,在 DNS 項目中)。如果您在來源執行個體上使用彈性 IP 位址,請務必將其附加至新執行個體。

  • 當副本啟動並嘗試連絡網域時,可能會發生網域安全性識別碼 (SID) 衝突問題。擷取 AMI 之前,請使用 Sysprep 或從網域移除加入網域的執行個體,以避免發生衝突問題。如需詳細資訊,請參閱如何使用 Sysprep 建立和安裝自訂可重複使用的 Windows AMI?

運行此自動化(控制台)

重要

我們不建議使用此 Runbook 複製微軟活動目錄域控制器實例。

文件類型

 自動化

擁有者

Amazon

平台

Linux,macOS, Windows

參數

  • AutomationAssumeRole

    類型:字串

    說明:(選用) 允許系統管理員自動化代表您執行動作的 AWS Identity and Access Management (IAM) 角色的 Amazon 資源名稱 (ARN)。如果未指定角色,系統管理員自動化會使用啟動此 runbook 的使用者的權限。

  • InstanceId

    類型:字串

    說明:(必要) 您要複製之執行個體的 ID。

  • KeyPair

    類型:字串

    說明:(選擇性) 您要與新複製的執行個體建立關聯的金鑰配對。如果您要將執行個體複製到不同的區域,請確定金鑰組存在於指定的 [區域] 中。

  • 區域

    類型:字串

    說明:(選擇性) 您要複製執行個體的目標區域。如果您為此參數指定值,但未指定SubnetIdSecurityGroupIds參數的值,則自動化會嘗試在具有預設安全性群組的預設 VPC 中啟動執行個體。如果目的地區域中已啟用 EC2-Classic,則啟動將失敗。

  • SubnetId

    類型:字串

    說明:(選擇性) 您要將執行個體複製到哪個子網路的 ID。如果在目標區域中啟用 EC2-Classic,您必須提供此參數的值。

  • InstanceType

    類型:字串

    說明:(選擇性) 複製執行處理應啟動為的執行個體類型。如果未指定此參數的值,則會使用來源執行環境型態。如果要複製執行處理的目標區域中不支援來源執行環境型態,則自動化會失敗。

  • SecurityGroupIds

    類型:字串

    說明:(選擇性) 您要與複製執行個體建立關聯的安全群組 ID 清單 (以逗號分隔)。如果您未指定此參數的值,且未將執行處理複製到其他「區域」,則會使用與來源執行環境相關聯的安全性群組。如果您要將執行個體複製到其他區域,則會使用目標區域中預設 VPC 的預設安全性群組。

  • KeepImageSourceRegion

    類型:布林值

    有效值:true | false

    預設:true

    說明:(選擇性) 如果您true為此參數指定,則自動化操作不會刪除來源執行環境AMI的。如果您false為此參數指定,則自動化會取消註冊AMI並刪除相關聯的快照。

  • KeepImageDestinationRegion

    類型:布林值

    有效值:true | false

    預設:true

    描述:(選擇性) 如果您true為此參數指定,則自動化操作不會刪除複製到您指定之「區域」的內容。AMI如果您false為此參數指定,則自動化會取消註冊AMI並刪除相關聯的快照。

  • NoRebootInstanceBeforeTakingImage

    類型:布林值

    有效值:true | false

    預設:false

    說明:(選擇性) 如果您true為此參數指定,則在建立之前,不會重新啟動來源執行處理AMI。使用此選項時,無法保證所建立映像的檔案系統完整性。

必要的 IAM 許可

AutomationAssumeRole參數需要執行下列動作,才能成功使用 Runbook。

  • 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-從相同子網路中的AMI來源執行個體或您使用指定的金鑰組指定的子網路啟動 Amazon EC2 執行個體。

  • sameRegionLaunchInstanceWithoutKeyPair-從相同子網路中AMI的來源執行個體啟動 Amazon EC2 執行個體,或您指定但不使用金鑰組的子網路。

  • copyAmiTo區域-複製AMI到目的地區域。

  • waitForAvailableDestinationAmi-等待複製的AMI狀態變成available

  • destinationRegionLaunch執行個體-使用複製的執行個體啟動 Amazon EC2 執行個體AMI。

  • branchAssertDestinationAmiToDelete-根據您為KeepImageDestinationRegion參數提供的值進行分支。

  • deregisterDestinationAmiAndDeleteSnapshots-取消註冊複製的快照AMI並刪除相關聯的快照。

  • branchAssertSourceAmiTodelete-根據您為KeepImageSourceRegion參數提供的值進行分支。

  • deregisterSourceAmiAndDeleteSnapshots-取消註冊從來源執行個體AMI建立的快照,並刪除相關聯的快照。

  • 睡眠-睡眠自動化 2 秒鐘。這是終端機步驟。

輸出

sameRegionLaunchInstanceWithKeyPair.InstanceIds

sameRegionLaunchInstanceWithoutKeyPair.InstanceIds

destinationRegionLaunch執行個體。 DestinationInstanceId