AWSPremiumSupport-ChangeInstanceTypeIntelToAMD - AWS Systems Manager 自動化手冊參考

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

AWSPremiumSupport-ChangeInstanceTypeIntelToAMD

Description (描述)

執行手AWSPremiumSupport-ChangeInstanceTypeIntelToAMD冊可自動從英特爾驅動的亞馬遜彈性運算雲端 (Amazon EC2) 執行個體遷移到同等 AMD 支援的執行個體類型。此 Runbook 支援在 Nitro 系統上建置的一般用途 (M)、高載通用 (T)、運算最佳化 (C) 和記憶體最佳化 (R) 執行個體。此 runbook 可以在不受系統管理員管理的執行個體上使用。

為了降低資料遺失和停機的潛在風險,runbook 會檢查執行個體的停止行為、執行個體是否位於 Amazon EC2 Auto Scaling 群組中、執行個體的運作狀態,以及相同的 AMD 支援執行個體類型是否可在相同的可用區域中使用。根據預設,如果執行個體儲存磁碟區已連接,或執行個體是AWS CloudFormation堆疊的一部分,則此 runbook 不會變更執行個體類型。如果您想要變更此行為,請yesAllowInstanceStoreInstancesAllowCloudFormationInstances參數中的任一指定。

重要

存取 AWSPremiumSupport-* Runbook 需要企業或商業支援訂閱。如需詳細資訊,請參閱比較AWS Support方案

考量

  • 我們建議您在使用此 runbook 之前備份您的執行個體。

  • 變更執行個體類型需要 runbook 停止執行個體。當執行個體停止時,儲存在 RAM 或執行個體儲存磁碟區中的任何資料都會遺失,並釋放自動公用 IPv4 位址。如需詳細資訊,請參閱停止和啟動執行個體

  • 如果您沒有為TargetInstanceType參數指定值,runbook 會嘗試以相同執行個體系列中的虛擬 CPU 和記憶體來識別相等的 AMD 執行個體。如果無法識別相等的 AMD 執行個體類型,執行手冊就會結束。

  • 透過使用DryRun此選項,您可以擷取相等的 AMD 執行個體類型,並驗證需求,而無需實際變更執行個體類型。

運行此自動化(控制台)

文件類型

 自動化

擁有者

Amazon

平台

Linux 系統macOS, Windows

參數

  • AutomationAssumeRole

    類型:字串

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

  • 確認

    類型:字串

    說明:(必要) 輸入yes以確認目標執行個體在執行時將會停止。

  • InstanceId

    類型:字串

    說明:(必填) 您要變更其類型之 Amazon EC2 執行個體的 ID。

  • TargetInstanceType

    類型:字串

    預設值:自動

    說明:(選用) 您要將執行個體變更為的 AMD 執行個體類型。預設automatic值使用對等的執行個體類型,就虛擬 CPU 和記憶體而言。例如,m5.large 會變更為 m5a.large。

  • AllowInstanceStoreInstances

    類型:字串

    有效值:否 | 是

    預設:否

    說明:(選擇性) 如果您指定yes,runbook 會在已連接執行個體儲存磁碟區的執行個體上執行。

  • AllowCloudFormationInstances

    類型:字串

    有效值:否 | 是

    預設:否

    描述:(選擇性) 如果設定為yes,會在屬於AWS CloudFormation堆疊一部分的執行個體上執行 runbook。

  • AllowCrossGeneration

    類型:字串

    有效值:否 | 是

    預設:否

    說明:(選用) 如果設為yes,runbook 會嘗試在相同的執行個體系列中尋找最新的相等 AMD 執行個體類型。

  • DryRun

    類型:字串

    有效值:否 | 是

    預設:否

    說明:(選用) 如果設定為yes,runbook 會傳回相等的 AMD 執行個體類型並驗證遷移需求,而不需變更執行個體類型。

  • SleepWait

    類型:字串

    預設值:

    描述:(選擇性) runbook 在開始新的自動化操作之前應該等待的時間。您為此參數提供的值必須與 ISO 8601 標準相符。如需有關建立 ISO 8601 字串的詳細資訊,請參閱 < 格式化系統管理員的日期和時間字串 >。

必要的 IAM 許可

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

  • ssm:DescribeAutomationExecutions

  • ssm:GetAutomationExecution

  • ssm:StartAutomationExecution

  • ec2:GetInstanceTypesFromInstanceRequirements

  • ec2:DescribeInstanceAttribute

  • ec2:DescribeInstances

  • ec2:DescribeInstanceStatus

  • ec2:DescribeInstanceTypeOfferings

  • ec2:DescribeInstanceTypes

  • ec2:DescribeTags

  • ec2:ModifyInstanceAttribute

  • ec2:StartInstances

  • ec2:StopInstances

文件步驟

  1. aws:assertAwsResourceProperty:確認目標 Amazon EC2 執行個體的狀態為runningpendingstopped、或stopping。否則,自動化結束。

  2. aws:executeAwsApi:從目標 Amazon EC2 執行個體收集屬性。

  3. aws:branch:根據 Amazon EC2 執行個體的狀態分支自動化。

    1. 如果是stoppedstopping,則自動化會執行,aws:waitForAwsResourceProperty直到 Amazon EC2 執行個體完全停止為止。

    2. 如果是runningpending,則自動化會執行,aws:waitForAwsResourceProperty直到 Amazon EC2 執行個體通過狀態檢查為止。

  4. aws:assertAwsResourceProperty:檢查aws:autoscaling:groupName標籤是否已套用,以確認 Amazon EC2 執行個體不屬於自動擴展群組。

  5. aws:executeAwsApi:收集目前的執行個體類型屬性,以尋找相等的 AMD 執行個體類型。

  6. aws:assertAwsResourceProperty:確認AWS Marketplace產品代碼與 Amazon EC2 執行個體沒有關聯。部分產品並不適用於所有執行個體類型。

  7. aws:branch:根據您是否希望自動化檢查 Amazon EC2 執行個體是否屬於AWS CloudFormation堆疊來分支自動化

    1. 如果將標aws:cloudformation:stack-name籤套用至執行個體,則會執行自動化作業aws:assertAwsResourceProperty以確認執行個體不屬於AWS CloudFormation堆疊。

  8. aws:branch:根據執行個體根磁碟區類型是否為 Amazon 彈性區塊存放區 (Amazon EBS) 來分支自動化。

  9. aws:assertAwsResourceProperty:確認執行個體關閉行為是stop與否terminate

  10. aws:executeScript:確認此 runbook 只有一個針對當前實例的自動化操作。如果另一個自動化操作已在針對同一個執行個體進行中,則會傳回錯誤並結束。

  11. aws:executeAwsApi:傳回具有相同記憶體和 vCPU 數量的 AMD 執行個體類型清單。

  12. aws:executeScript:檢查目前的執行個體類型是否受支援,並傳回相等的 AMD 執行個體類型。如果沒有相等的,則自動化結束。

  13. aws:executeScript:確認 AMD 執行個體類型在相同的可用區域中可用,並驗證提供的 IAM 許可。

  14. aws:branch:根據DryRun參數值是否為分支自動化yes

  15. aws:branch:檢查原始執行個體和目標例證類型是否相同。如果它們是相同的,自動化結束。

  16. aws:executeAwsApi:取得目前執行個體狀態。

  17. aws:changeInstanceState:停止亞馬遜 EC2 實例。

  18. aws:changeInstanceState:如果執行個體停留在停止狀態,則強制停止執行個體。

  19. aws:executeAwsApi:將執行個體類型變更為目標 AMD 執行個體類型。

  20. aws:sleep: 為了達到最終一致性,變更執行個體類型後等待 3 秒。

  21. aws:branch:根據先前的執行個體狀態分支自動化。如果是running,則會啟動執行個體。

    1. aws:changeInstanceState:如果 Amazon EC2 執行個體在變更執行個體類型之前已執行,請啟動該執行個體。

    2. aws:waitForAwsResourceProperty:等待 Amazon EC2 執行個體通過狀態檢查。如果執行個體未通過狀態檢查,執行個體就會變回其原始執行個體類型。

      1. aws:changeInstanceState:先停止 Amazon EC2 執行個體,再將其變更為原始執行個體類型。

      2. aws:changeInstanceState:強制 Amazon EC2 執行個體停止,然後再將其變更為原始執行個體類型,以防卡在停止狀態。

      3. aws:executeAwsApi:將亞馬遜 EC2 實例更改為其原始類型。

      4. aws:sleep: 變更執行個體類型後等待 3 秒,以達到最終一致性。

      5. aws:changeInstanceState:如果 Amazon EC2 執行個體在變更執行個體類型之前已執行,請啟動該執行個體。

      6. aws:waitForAwsResourceProperty:等待 Amazon EC2 執行個體通過狀態檢查。

  22. aws:sleep:在結束手冊之前等待。