故障診斷 Amazon EC2 受管執行個體可用性 - AWS Systems Manager

故障診斷 Amazon EC2 受管執行個體可用性

對於幾個 AWS Systems Manager 操作,您可以選擇手動選取您要在其中執行操作的執行個體。範例包括執行 Run Command 命令、指定維護時段目標、安裝 Distributor 套件,以及使用 Session Manager (AWS Systems Manager 的功能) 連接至執行個體。在這類情況下,在您指定要手動選擇執行個體之後,會顯示一份受管執行個體的清單,供您選擇在其上執行操作。

本主題提供的資訊可幫助您診斷為什麼您已確認正在執行的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體未包含在 Systems Manager 中的受管執行個體清單中。

若要讓 EC2 執行個體由 Systems Manager 管理,並在受管執行個體清單中可用,其必須符合三個主要要求:

  • SSM Agent 必須在具有支援作業系統的執行個體上安裝且執行。

    注意

    部分 Amazon Machine Images (AMIs) 設定為啟動已預先安裝 SSM Agent 的執行個體。(您還可以設定自訂 AMI 以預先安裝 SSM Agent。)

    SSM Agent 會預設預先安裝在以下 Amazon Machine Images (AMIs) 上:

    • Amazon Linux

    • Amazon Linux 2

    • Amazon Linux 2 ECS 最佳化基礎 AMIs

    • macOS 10.14.x (Mojave)、10.15.x (Catalina) 和 11.x (Big Sur)

    • Ubuntu Server 16.04、18.04 和 20.04

    • Windows Server 2008-2012 R2 AMIs 發佈於 2016 年 11 月或之後

    • Windows Server 2016 和 2019

    注意

    SSM Agent 並未安裝在基於 Amazon Linux 或 Amazon Linux 2 的所有 AMIs 上。

  • AWS Identity and Access Management (IAM) 執行個體描述檔,可提供執行個體與 Systems Manager 服務通訊的必要許可,且必須連接至執行個體。

  • SSM Agent 必須能夠連線到 Systems Manager 端點,才能自行註冊服務。此後,該執行個體必須可用於服務,該服務可由服務每五分鐘傳送一次訊號以檢查執行個體的運作狀態,來予以確認。

在您確認 EC2 執行個體正在執行之後,您可以使用下列命令來檢查其中一個執行個體類型上的 SSM Agent 已成功自行註冊 Systems Manager 服務。在成功註冊之前,此命令不會傳回結果。

Linux & macOS
aws ssm describe-instance-associations-status \ --instance-id instance-id
Windows
aws ssm describe-instance-associations-status ^ --instance-id instance-id
PowerShell
Get-SSMInstanceAssociationsStatus ` -InstanceId instance-id

如果註冊成功,且執行個體現在可供 Systems Manager 操作使用,命令會傳回類似如下的結果。

{
    "InstanceAssociationStatusInfos": [
        {
            "AssociationId": "fa262de1-6150-4a90-8f53-d7eb5EXAMPLE",
            "Name": "AWS-GatherSoftwareInventory",
            "DocumentVersion": "1",
            "AssociationVersion": "1",
            "InstanceId": "i-02573cafcfEXAMPLE",
            "Status": "Pending",
            "DetailedStatus": "Associated"
        },
        {
            "AssociationId": "f9ec7a0f-6104-4273-8975-82e34EXAMPLE",
            "Name": "AWS-RunPatchBaseline",
            "DocumentVersion": "1",
            "AssociationVersion": "1",
            "InstanceId": "i-02573cafcfEXAMPLE",
            "Status": "Queued",
            "AssociationName": "SystemAssociationForScanningPatches"
        }
    ]
}

如果註冊尚未完成或失敗,此命令會傳回類似如下的結果:

{
    "InstanceAssociationStatusInfos": []
}

如果命令在 5 分鐘左右後仍未傳回結果,請使用下列資訊協助您故障診斷受管執行個體的問題。

解決方案 1:確認執行個體上已安裝和執行 SSM Agent。

確定執行個體上已安裝和執行 SSM Agent 的最新版本。

若要判斷 EC2 執行個體上已安裝和執行 SSM Agent,請參閱 檢查 SSM Agent 狀態並啟動代理程式

若要在 EC2 執行個體上安裝或重新安裝 SSM Agent,請參閱下列主題:

解決方案 2:確認已為執行個體指定 IAM 執行個體角色

確認是否使用允許執行個體與 Systems Manager API 通訊的 AWS Identity and Access Management (IAM) 角色,來設定執行個體。另外,確認您的使用者帳戶是否有 IAM 使用者信任政策,其允許您的帳戶與 Systems Manager API 通訊。

若要判斷具有必要許可的執行個體描述檔是否已連接至執行個體

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Instances (執行個體)。

  3. 選擇要檢查執行個體描述檔的執行個體。

  4. 在底部窗格的 Description (描述) 標籤上,找出 IAM role (IAM 角色),然後選擇角色的名稱。

  5. 在執行個體描述檔的角色 Summary (摘要) 頁面,在 Permissions (許可) 標籤上,確保 Permissions policies (許可政策) 下已列出 AmazonSSMManagedInstanceCore

    如果改用自訂政策,確保它提供的許可與 AmazonSSMManagedInstanceCore 相同。

    在主控台中開啟 AmazonSSMManagedInstanceCore

    如需有關可連接至 Systems Manager 的執行個體描述檔的其他政策的資訊,請參閱建立 Systems Manager 的執行個體描述檔

若要建立具有必要許可的執行個體描述檔並將其連接至新的 EC2 執行個體

若要將具有必要許可的現有執行個體描述檔連接至現有的 EC2 執行個體

解決方案 3:確認服務端點連線能力

請確認執行個體已連線到 Systems Manager 服務端點。提供此連線能力的方式是針對 Systems Manager 建立及設定 VPC 端點,或允許 HTTPS (連接埠 443) 輸出流量傳送至服務端點。

通常,當您建立 EC2 執行個體時,該執行個體的 AWS 區域 的 Systems Manager 服務端點可用於註冊執行個體。但是,如果您使用的是 Virtual Private Cloud (VPC),且已在私有子網路中建立 EC2 執行個體,則不會自動提供服務端點。改為設定 VPC 的介面端點。

如需相關資訊,請參閱 (選用) 建立 Virtual Private Cloud 端點

解決方案 4:確認目標作業系統支援

確認您選擇的操作可以在預期列出的執行個體類型上執行。某些 Systems Manager 操作可以僅以 Windows 執行個體或 Linux 執行個體為目標。例如,Systems Manager (SSM) 文件 AWS-InstallPowerShellModuleAWS-ConfigureCloudWatch 只能在 Windows 執行個體上執行。在 Run a command (執行命令) 頁面上,如果您選擇其中一個文件,並選取 Choose instances manually (手動選擇執行個體),則只會列出您的 Windows 執行個體並可供選取。

解決方案 5:確認您是在與 EC2 執行個體相同的 AWS 區域 中作業。

EC2 執行個體可在特定 AWS 區域 中建立和提供,例如美國東部 (俄亥俄) 區域 (us-east-2) 或歐洲 (愛爾蘭) 區域 (eu-west-1)。請確定您是在與您要使用的 EC2 執行個體相同的 AWS 區域 中作業。如需詳細資訊,請參閱《AWS Management Console 入門》中的選擇區域

解決方案 6:確認套用至執行個體上的 SSM Agent 的代理組態

確認套用至 EC2 執行個體上的 SSM Agent 的代理組態正確無誤。如果代理組態不正確,執行個體就無法連線到必要的服務端點,或 Systems Manager 可能會不正確地識別執行個體的作業系統。如需詳細資訊,請參閱 設定 SSM Agent 以使用代理 (Linux)將 SSM Agent 設定為使用 Windows Server 執行個體的代理