マネージドインスタンスの可用性のトラブルシューティング - AWS Systems Manager

マネージドインスタンスの可用性のトラブルシューティング

Run Command、Distributor、Session Manager などのいくつかのAWS Systems Manager 機能では、オペレーションを実行するインスタンスを手動で選択することもできます。このような場合、手動でインスタンスを選択するように指定すると、オペレーションを実行できるマネージドインスタンスのリストが表示されます。

このトピックでは、実行が確認された Amazon Elastic Compute Cloud (Amazon EC2) インスタンスまたはオンプレミスのインスタンスが Systems Manager のマネージドインスタンスのリストに含まれていない理由の診断に役立つ情報を提供します。

インスタンスを Systems Manager で管理し、マネージドインスタンスのリストに表示されるようにするには、次の 3 つの主な要件を満たす必要があります。

  • 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)

    • SUSE Linux Enterprise Server (SLES) 12 と 15

    • Ubuntu Server 16.04、18.04 および 20.04

    • 2016 年 11 月以降に公開された Windows Server 2008-2012 R2 AMIs

    • Windows Server 2016 および 2019

    注記

    SSM Agent は、Amazon Linux または Amazon Linux 2 に基づいてすべての AMIs にインストールされるわけではありません。

  • インスタンスが Systems Manager サービスと通信するために必要な許可を付与する AWS Identity and Access Management (IAM) インスタンスプロファイルは、インスタンスにアタッチされているか、ハイブリッドアクティベーションを使用して登録する必要があります。

  • SSM Agent は、それ自体をサービスに登録するために、Systems Manager エンドポイントに接続できる必要があります。そのうえで、インスタンスがサービスで使用可能である必要があります。これは、サービスが 5 分ごとに信号を送信してインスタンスの状態をチェックすることによって確認されます。

インスタンスが実行されていることを確認したら、次のコマンドを使用して、以下のいずれかのインスタンスタイプの 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の最新バージョンがインスタンスにインストールされ、実行されていることを確認します。

SSM Agent がインスタンスにインストールされ、実行されていることを確認するには、「SSM Agent ステータスの確認とエージェントの起動」を参照してください。

SSM Agent をインスタンスにインストールまたは再インストールするには、以下のトピックを参照してください。

解決策 2: インスタンスに IAM インスタンスロールが指定されていることを確認する

Amazon EC2 インスタンスに、そのインスタンスと Systems Manager API の通信を許可する AWS Identity and Access Management (IAM) ロールが設定されていることを確認します。また、ユーザーアカウントに Systems Manager API と通信できる IAM ユーザー信頼ポリシーがあることを確認します。インスタンスプロファイルをオンプレミスのマシンにアタッチすることはできませんが、ハイブリッドアクティベーション用に作成した IAM サービスロールは、必要な許可を提供する必要があります。オンプレミスのマシンの IAM サービスロールの作成の詳細については、ハイブリッド環境用の IAM サービスロールを作成するを参照してください。

必要なアクセス権限を持つインスタンスプロファイルがインスタンスにアタッチされているかどうかを確認するには

  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで、[インスタンス] を選択します。

  3. インスタンスプロファイルを確認するインスタンスを選択します。

  4. 下部のペインの [Description (説明)] タブで、[IAM role (IAM ロール)] を見つけ、ロールの名前を選択します。

  5. インスタンスプロファイルのロールの [Summary (概要)] ページの [Permissions (アクセス許可)] タブで、[Permissions policies (アクセス許可ポリシー)] に AmazonSSMManagedInstanceCore があることを確認します。

    代わりにカスタムポリシーを使用する場合は、AmazonSSMManagedInstanceCore と同じアクセス許可があることを確認してください。

    AmazonSSMManagedInstanceCore をコンソールで開く

    Systems Manager のインスタンスプロファイルにアタッチできるその他のポリシーの詳細については、「Systems Manager の IAM インスタンスプロファイルを作成する」を参照してください。

必要なアクセス許可を持つインスタンスプロファイルを作成し、新しい EC2 インスタンスにアタッチするには

必要な許可を持つ既存のインスタンスプロファイルを既存の Amazon EC2 インスタンスにアタッチするには

解決策 3: サービスエンドポイントへの接続を確認する

インスタンスに Systems Manager サービスエンドポイントへの接続があることを確認します。この接続は、Systems Manager の VPC エンドポイントを作成して設定するか、サービスエンドポイントへの HTTPS (ポート 443) アウトバウンドトラフィックを許可することによって提供されます。

Amazon EC2 インスタンスでは、Virtual Private Cloud (VPC) 設定でアウトバウンドトラフィックが許可されている場合、AWS リージョン のSystems Manager サービスエンドポイントがインスタンスの登録に使用されます。ただし、インスタンスが起動された VPC 設定でアウトバウンドトラフィックが許可されず、パブリックサービスエンドポイントへの接続を許可するようにこの設定を変更できない場合は、代わりに VPC のインターフェイスエンドポイントを設定する必要があります。

詳細については、「(オプション) 仮想プライベートクラウドエンドポイントの作成」を参照してください。

解決策 4: 対象のオペレーティングシステムのサポートを確認する

選択したオペレーションが、表示されるはずのインスタンスのタイプで実行できることを確認します。Systems Manager の一部のオペレーションは、Windows インスタンスのみ、または Linux インスタンスのみを対象にすることができます。例えば、Systems Manager (SSM) の AWS-InstallPowerShellModule ドキュメントと AWS-ConfigureCloudWatch ドキュメントは Windows インスタンスでのみ実行できます。[Run a command (コマンドの実行)] ページでこれらのドキュメントのいずれかを選択して [Choose instances manually (手動でインスタンスを選択する)] を選択すると、Windows インスタンスのみが表示され、選択できるようになります。

解決策 5: Amazon EC2 インスタンスと同じ AWS リージョン で作業していることを確認する

Amazon EC2 インスタンスは、米国東部 (オハイオ) リージョン (us-east-2) や欧州 (アイルランド) リージョン (eu-west-1) など、特定の AWS リージョン で作成および使用できます。使用する Amazon EC2 インスタンスと同じ AWS リージョン で作業していることを確認します。詳細については、AWS Management Console の開始方法リージョンの選択を参照してください。

解決策 6: インスタンスで SSM Agent に適用したプロキシ設定を確認する

インスタンスで SSM Agent に適用したプロキシ設定が正しいことを確認します。プロキシ設定が正しくない場合、インスタンスは必要なサービスエンドポイントに接続できないか、Systems Manager がインスタンスのオペレーティングシステムを誤って識別する可能性があります。詳細については、「プロキシを使用するように SSM Agent を設定する (Linux)」および「SSM Agent が Windows Server インスタンス用にプロキシを使用するように設定する」を参照してください。