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

  • SSM エージェントは、サポートされているオペレーティングシステムのインスタンスにインストールされ、実行されている必要があります。

    注記

    一部の Amazon Machine Images (AMIs) は、SSM Agent がプリインストールされたインスタンスを作成するように設定されています。(SSM エージェントをプレインストールするようにカスタム AMI を設定することもできます)。

    SSM エージェントは、以下の Amazon Machine Images (AMIs) にデフォルトでプレインストールされています。

    • Amazon Linux

    • Amazon Linux 2

    • Amazon Linux 2 ECS に最適化されたベース AMIs

    • macOS 10.14.x (Mojave) および 10.15.x (Catalina)

    • 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 にインストールされるわけではありません。例えば、SSM Agent は Amazon Linux 2 に基づく EKS 最適化 AMIs にはプレインストールされていません。

  • インスタンスが Systems Manager サービスと通信するために必要なアクセス許可を付与する AWS Identity and Access Management (IAM) インスタンスプロファイルは、インスタンスにアタッチされている必要があります。

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

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

SSM エージェントの最新バージョンがインスタンスにインストールされ、実行されていることを確認します。

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

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

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

インスタンスにインスタンスと Systems Manager API の通信を許可する AWS Identity and Access Management (IAM) ロールが設定されていることを確認します。また、ユーザーアカウントに Systems Manager API と通信できる 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 インスタンスにアタッチするには

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

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

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

多くの場合、EC2 インスタンスを作成すると、インスタンスを使用する AWS リージョン の Systems Manager サービスエンドポイントでインスタンスが登録されます。ただし、Virtual Private Cloud (VPC) を使用していて、EC2 インスタンスがプライベートサブネットに作成されている場合、サービスエンドポイントは自動的には提供されません。代わりに、VPC のインターフェイスエンドポイントを設定します。

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

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

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

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

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

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

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