在無法存取的執行個體上執行EC2Rescue工具 - AWS Systems Manager

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

在無法存取的執行個體上執行EC2Rescue工具

EC2Rescue可協助您診斷和疑難排解適用於 Linux 和Windows Server. EC2 您可以手動執行此工具,如〈使用 EC2Rescue Linux 伺服器〉和〈用EC2Rescue於 Windows 伺服器〉中所述。或者,您可以使用 Systems Manager Automation 和 AWSSupport-ExecuteEC2Rescue Runbook 自動執行工具。自動化是的一項功能 AWS Systems Manager。AWSSupport-ExecuteEC2Rescuerunbook 旨在執行 Systems Manager 動作、動作和 Lambda 函數的組合,這些函數會自 AWS CloudFormation 動化通常需要使用EC2Rescue的步驟。

您可以使用 AWSSupport-ExecuteEC2Rescue Runbook 針對不同類型的作業系統 (OS) 問題疑難排解並可能修復。具有加密根磁碟區的執行個體不受支援。請參閱下列主題以取得完整的清單:

視窗︰請參閱搭配命令列使EC2Rescue用 Windows 伺服器中的救援動作

LinuxmacOS:某些 EC2Rescue Linux 模組可偵測並嘗試修正問題。如需詳細資訊,請參aws-ec2rescue-linux閱上每個模組的文件GitHub。

運作方式

使用 Automation 和 AWSSupport-ExecuteEC2Rescue Runbook 對執行個體進行故障診斷的運作方式如下:

  • 您要指定無法連線的執行個體 ID 並執行 Runbook。

  • 系統會建立暫時性的VPC,然後執行一系列 Lambda 函數來設定VPC.

  • 系統會在與原始執行個體位於相同可用區域VPC中的暫時性識別子網路。

  • 系統會啟動SSM已啟用的暫時協助程式執行個體。

  • 系統會停止您的原始執行個體,並建立備份。接著系統會將原始根磁碟區連接至協助程式執行個體。

  • 系統會使用Run Command在協助程式執行個體EC2Rescue上執行。EC2Rescue識別並嘗試修正連接的原始根磁碟區上的問題。完成後,將根磁碟區EC2Rescue重新附加至原始例證。

  • 系統會重新啟動您的原始執行個體,並終止暫時執行個體。系統也會終止在自動化開始時建立的暫時性VPC和 Lambda 函數。

開始之前

執行以下自動化之前,請先執行以下項目:

  • 複製無法連線之執行個體的執行個體 ID。您會在程序中指定此 ID。

  • 或者,收集與無法連線之執行個體位於相同可用區域中的子網路 ID。EC2Rescue執行個體將在此子網路中建立。如果您未指定子網路,則自動化會VPC在您的 AWS 帳戶. 確認您至少 AWS 帳戶 有一個VPC可用的。默認情況下,您可以VPCs在一個區域中創建五個。如果您已經在區域VPCs中建立了五個,則自動化操作會失敗,而不會對執行個體進行變更。如需 Amazon VPC 配額的詳細資訊,請參閱 Amazon VPC 使用者指南中的VPC和子網路

  • 或者,您可以為自動化建立和指定 AWS Identity and Access Management (IAM) 角色。如果您不指定此角色,則自動化會在執行自動化的使用者內容中執行。

授予 AWSSupport-EC2Rescue 在執行個體上執行動作的許可

EC2Rescue需要權限才能在自動化期間對執行個體執行一系列動作。這些動作會叫用 AWS Lambda IAM、和 Amazon EC2 服務,以安全且安全地嘗試修復執行個體的問題。如果您在您的 AWS 帳戶 和/或中具有管理員層級權限VPC,則可以執行自動化操作而無需設定權限,如本節所述。如果您沒有管理員層級的許可,則您或管理員必須使用以下其中一個選項來設定許可。

使用 IAM 政策授予許可

您可以將下列IAM原則作為內嵌原則附加至使用者、群組或角色;或者,您可以建立新的IAM受管理原則,並將其附加至您的使用者、群組或角色。如需有關新增內嵌政策至使用者、群組或角色的詳細資訊,請參閱使用內嵌政策。如需建立新受管政策的詳細資訊,請參閱使用受管政策

注意

如果您建立新的IAM受管原則,也必須將 A mazonSSMAutomation 角色受管理的原則附加至該原則,以便您的執行個體能夠與 Systems Manager 通訊API。

IAM政策 AWSSupport-EC2Rescue

Replace (取代) account ID 使用您自己的信息。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "lambda:InvokeFunction", "lambda:DeleteFunction", "lambda:GetFunction" ], "Resource": "arn:aws:lambda:*:account ID:function:AWSSupport-EC2Rescue-*", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::awssupport-ssm.*/*.template", "arn:aws:s3:::awssupport-ssm.*/*.zip" ], "Effect": "Allow" }, { "Action": [ "iam:CreateRole", "iam:CreateInstanceProfile", "iam:GetRole", "iam:GetInstanceProfile", "iam:PutRolePolicy", "iam:DetachRolePolicy", "iam:AttachRolePolicy", "iam:PassRole", "iam:AddRoleToInstanceProfile", "iam:RemoveRoleFromInstanceProfile", "iam:DeleteRole", "iam:DeleteRolePolicy", "iam:DeleteInstanceProfile" ], "Resource": [ "arn:aws:iam::account ID:role/AWSSupport-EC2Rescue-*", "arn:aws:iam::account ID:instance-profile/AWSSupport-EC2Rescue-*" ], "Effect": "Allow" }, { "Action": [ "lambda:CreateFunction", "ec2:CreateVpc", "ec2:ModifyVpcAttribute", "ec2:DeleteVpc", "ec2:CreateInternetGateway", "ec2:AttachInternetGateway", "ec2:DetachInternetGateway", "ec2:DeleteInternetGateway", "ec2:CreateSubnet", "ec2:DeleteSubnet", "ec2:CreateRoute", "ec2:DeleteRoute", "ec2:CreateRouteTable", "ec2:AssociateRouteTable", "ec2:DisassociateRouteTable", "ec2:DeleteRouteTable", "ec2:CreateVpcEndpoint", "ec2:DeleteVpcEndpoints", "ec2:ModifyVpcEndpoint", "ec2:Describe*" ], "Resource": "*", "Effect": "Allow" } ] }

使用 AWS CloudFormation 範本授與權限

AWS CloudFormation 使用預先設定的範本,將建立IAM角色和原則的程序自動化。使用下列程序,透過使用建立EC2Rescue自動化的必要IAM角色和原則 AWS CloudFormation。

若要建立必要的IAM角色和原則 EC2Rescue
  1. 下載 AWSSupport-EC2RescueRole.zip 並將 AWSSupport-EC2RescueRole.json 檔案解壓縮至本機電腦上的目錄。

  2. 如果您 AWS 帳戶 的分割區位於特殊分割區中,請編輯範本,將ARN值變更為分割區的值。

    例如,對於中國區域,將 arn:aws 的所有案例變更為 arn:aws-cn

  3. 請登入 AWS Management Console 並開啟 AWS CloudFormation 主控台,網址為 https://console.aws.amazon.com/cloudformation

  4. 選擇 Create stack (建立堆疊)With new resources (standard) (使用新資源 (標準))

  5. Create stack (建立堆疊) 頁面上,對於 Prerequisite - Prepare template (先決條件 - 準備範本),選擇 Template is ready (範本已準備就緒)

  6. 對於 Specify template (指定範本),選擇 Upload a template file (上傳範本檔案)

  7. 選擇 Choose file (選擇檔案),然後瀏覽並從您解壓縮檔案的目錄中選取 AWSSupport-EC2RescueRole.json 檔案。

  8. 選擇 Next (下一步)

  9. Specify stack details (指定堆疊詳細資訊) 頁面上,對於 Stack name (堆疊名稱) 欄位,輸入識別此堆疊的名稱,然後選擇 Next (下一步)

  10. (選用) 在 Tags (標籤) 區域中將一個或多個標籤索引鍵名稱/值對套用到堆疊。

    標籤是您指派給資源的選用性中繼資料。標籤可讓您以不同的方式 (例如用途、擁有者或環境) 將資源分類。例如,您可能想要標記堆疊來識別其執行的任務類型、相關的目標類型或其他資源,以及其執行所在的環境。

  11. 選擇 Next (下一步)

  12. 在 [複查] 頁面上,檢閱堆疊詳細資料,然後向下捲動並選擇 [我確認 AWS CloudFormation 可能會建立IAM資源] 選項。

  13. 選擇建立堆疊

    AWS CloudFormation 顯示 CREATE_IN_ PROGRESS 狀態持續幾分鐘。堆疊建立COMPLETE之後,狀態會變更為 CREATE_。您也可以選擇重新整理圖示來檢查建立程序的狀態。

  14. Stacks (堆疊) 清單中,選擇您剛建立堆疊的選項按鈕,然後選擇 Outputs (輸出) 索引標籤。

  15. 請記下 Value (值)。是ARN的 AssumeRole. 您可以在下一個程序中執行自動化ARN時指定此選項執行自動化

執行自動化

重要

以下自動化工作流程會停止無法連線的執行個體。停止執行個體可能會導致已連接執行個體存放磁碟區上的資料遺失 (若有)。停止執行個體也可能會導致公有 IP 變更 (若無關聯的彈性 IP)。

執行 AWSSupport-ExecuteEC2Rescue 自動化。
  1. 在開啟 AWS Systems Manager 主控台https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 Automation (自動化)。

  3. 選擇 Execute automation (執行自動化)

  4. Automation document (自動化文件) 部分,從清單選擇 Owned by Amazon (由 Amazon 所有)

  5. 在 Runbook 清單中,選擇 AWSSupport-ExecuteEC2Rescue 卡片中的按鈕,然後選擇 Next (下一步)。

  6. Execute automation document (執行自動化文件) 頁面上,選擇 Simple execution (簡易執行)

  7. Document details (文件詳細資訊) 部分,確認 Document version (文件版本) 設為最高的預設版本。例如,$ DEFAULT3 (預設值)

  8. Input parameters (輸入參數) 區段中,指定以下參數:

    1. 對於 UnreachableInstanceId,指定無法連線之執行處理的 ID。

    2. (選擇性) 對於 EC2RescueInstanceType,指定執行個體的執行個EC2Rescue體類型。預設執行個體類型為 t2.medium

    3. 對於 AutomationAssumeRole,如果您使用本主題前面描述的 AWS CloudFormation 程序為此 Automation 建立角色,請選擇您在 AssumeRole 主 AWS CloudFormation 控台中建立的角色。ARN

    4. (選擇性) 若要在疑難排解執行個體時收集作業系統層級日誌 LogDestination,請指定 S3 儲存貯體。日誌會自動上傳至指定的儲存貯體。

    5. 對於 SubnetId,指定與無法連線執行個體位於相同可用區域VPC中的現有子網路。根據預設,Systems Manager 會建立新的子網路VPC,但您可以視需要在現有VPC子網路中指定子網路。

      注意

      如果您沒見到指定儲存貯體或子網路 ID 的選項,請確認您使用的是 Runbook 最新的 Default (預設) 版本。

  9. (選用) 在 Tags (標籤) 區域中,套用一個或多個標籤索引鍵名稱/值對以協助識別自動化,例如 Key=Purpose,Value=EC2Rescue

  10. 選擇 Execute (執行)

作為自動化的一部分,Runbook 會建立備份 AMI。由自動化操作建立的所有其他資源都會自動刪除,但這AMI仍保留在您的帳戶中。AMI 使用以下慣例命名:

BackupAMI: AWSSupport-EC2Rescue:UnreachableInstanceId

您可以透過搜尋自動化執行 ID,AMI在 Amazon EC2 主控台中找到它。