Systems Manager コンソールの [マネージドインスタンス] に EC2 インスタンスが表示されないのはなぜですか?

最終更新日: 2021 年 3 月 17 日

Amazon Elastic Compute Cloud (Amazon EC2) インスタンスが、AWS Systems Manager コンソールでマネージドインスタンスの下に表示されません。

簡単な説明

マネージドインスタンスは、Systems Manager で使用するために設定された Amazon EC2 インスタンスです。マネージドインスタンスでは、Run Command、Patch Manager、Session Manager などの、Systems Manager サービスを使用できます。

インスタンスをマネージドインスタンスにするには、次の前提条件を満たす必要があります。

  • AWS Systems Manager エージェント(SSM エージェント)がインストールされ実行中である。
  • SSM エージェントを使用して Systems Manager エンドポイントに接続されている。
  • 適切な AWS Identity and Access Management (IAM) ロールがアタッチされている。
  • インスタンスメタデータサービスに接続している。

注意: ハイブリッドインスタンスの場合は、「Setting up AWS Systems Manager for hybrid environments(AWS Systems Manager でのハイブリッド環境のセットアップ)」を参照してください。

解決方法

注意: ここでの解決策を実行する前に、必ず対象のインスタンスがあるリージョンを選択してください。

インスタンスが、以下の前提条件を満たしていることを確認します。

当該インスタンスにおいて SSM エージェントがインストールおよび実行されている

オペレーティングシステムが Systems Manager のサポート対象であることを確認します。サポート対象であるオペレーティングシステムの一覧は、「Supported operating systems(サポートされるオペレーティングシステム)」で確認してください。

SSM エージェントは、一部の Windows および Linux の Amazon マシンイメージ (AMI) にプリインストールされています。SSM エージェントがプリインストールされている AMI のリストについては、以下を参照してください。

Linux: EC2 インスタンスでの SSM エージェントのインストールと設定 (Linux 用)

Windows: EC2 インスタンスでの SSM エージェントのインストールと設定 (Windows Server 用)

SSM エージェントがプリインストールされていない場合は、エージェントを手動でインストールする必要があります。

Linux:Linux 用の EC2 インスタンスに SSM エージェントを手動でインストールする

Windows:Windows Server 用の EC2 インスタンスに SSM エージェントを手動でインストールする

SSM エージェントの状態確認は、以下のコマンドにより行います。

Amazon Linux の場合、RHEL 6 (または同様のディストリビューション):

$ sudo status amazon-ssm-agent

Amazon Linux 2、Ubuntu、RHEL 7 (または同種のディストリビューション):

$ sudo systemctl status amazon-ssm-agent

Ubuntu 18.04 またはそれ以降のスナップを使用するシステムの場合:

$ sudo snap services amazon-ssm-agent

Windows の場合:

$ Get-Service AmazonSSMAgent

ポート 443 で Systems Manager エンドポイントへの接続を確認する

接続を確認する最適な方法は、オペレーティングシステムによって異なります。

重要: 以下のコマンド例で、RegionID を使用している AWS リージョン ID に置き換えます。

リージョンごとの Systems Manager エンドポイントの一覧は、「AWS Systems Manager エンドポイントとクォータ」で確認してください。

注意: 以下の例では、ssmmessages エンドポイントは、AWS Systems Manager Session Manager にのみ必要です。

EC2 Linux インスタンスの場合: telnet または netcat コマンドを使用して、ポート 443 のエンドポイントへの接続を確認できます。

Telnet

telnet ssm.RegionID.amazonaws.com 443
telnet ec2messages.RegionID.amazonaws.com 443
telnet ssmmessages.RegionID.amazonaws.com 443

Netcat

nc -vz ssm.RegionID.amazonaws.com 443
nc -vz ec2messages.RegionID.amazonaws.com 443
nc -vz ssmmessages.RegionID.amazonaws.com 443

注意: Netcat は Amazon EC2 インスタンスにはプリインストールされていません。Netcat を手動でインストールするには、Nmap のウェブサイトで Ncat を参照してください。

EC2 Windows インスタンスの場合: ポート 443 のエンドポイントへの接続を確認するには、次の Windows PowerShell コマンドを使用します。

Test-NetConnection ssm.RegionID.amazonaws.com -port 443
Test-NetConnection ec2messages.RegionID.amazonaws.com -port 443
Test-NetConnection ssmmessages.RegionID.amazonaws.com -port 443

パブリックサブネットの場合: Systems Manager エンドポイントはパブリックエンドポイントです。つまり、インスタンスはインターネットゲートウェイを使用してインターネットに接続できる必要があります。パブリックサブネットのインスタンスからエンドポイントへの接続に関する問題については、以下を確認してください。

プライベートサブネットの場合: プライベートサブネットの場合、インスタンスは NAT ゲートウェイを使用してインターネットに到達できる必要があります。あるいは、インスタンスがプライベートサブネットにある場合、Systems Manager エンドポイントに到達するように VPC エンドポイントを設定することができます。これにより、プライベート IP アドレスを使用して Amazon EC2 および Systems Manager API にプライベートにアクセスすることが可能になります。詳細については、Systems Manager を使用してインターネットアクセスなしでプライベート EC2 インスタンスを管理できるように、VPC エンドポイントを作成するにはどうすればよいですか? をご覧ください。

注意: インターフェイスエンドポイントは、指定されたサブネットにそれぞれ Elastic Network Interface を作成します。

プライベートサブネットのセキュリティベストプラクティスとして、以下のルールが適用されていることを確認してください。

  • VPC エンドポイントが使用するネットワークインターフェイスにアタッチされたセキュリティグループが、インスタンスにアタッチされたセキュリティグループからのインバウンドポート 443 を許可する。
  • インスタンスにアタッチされたセキュリティグループが、VPC エンドポイントが使用するネットワークインターフェイスのプライベート IP アドレスへのポート 443 アウトバウンドを許可する。

適切な IAM ロールがインスタンスにアタッチされていることを確認

Systems Manager エンドポイントへの API 呼び出しを行うには、AmazonssmmanagedInstanceCore アクセス許可ポリシーを、インスタンスにアタッチされた IAM ロールに追加します。カスタム IAM ポリシーを使用している場合は、そのポリシーにおいて、AmazonSSMManagedInstanceCore が提供するアクセス権限が使用されていることを確認します。 また、IAM ロールの信頼ポリシーが、このロールを引き受けることを ec2.amazonaws.com に許可していることを確認します。

詳細については、「Add permissions to a Systems Manager instance profile (console)」を参照してください。

インスタンスメタデータサービスへの接続を確認する

インスタンスに関する必要な情報を取得するために、SSM エージェントはインスタンスメタデータサービスと通信する必要があります。Netcat コマンドを使用して、接続をテストします。

nc -vz 169.254.169.254 80

インスタンスでプロキシを使用していると、そのプロキシによってメタデータ URL への接続がブロックされる場合があります。SSM エージェントが、プロキシを使用するように設定されていることを確認します。プロキシを使用するように SSM エージェントを設定するには、以下を参照してください。

Windows の場合:Windows Server インスタンスのプロキシを使用するように SSM エージェントを設定する

Linux の場合: プロキシを使用するように SSM エージェントを設定する (Linux)

トラブルシューティング

それでもインスタンスが Systems Manager コンソールにマネージドインスタンスとして表示されない場合は、SSM エージェントのログを参照して、さらにトラブルシューティングを行います。

Windows の場合: Windows 用 SSM エージェントのログは、%PROGRAMDATA%\Amazon\SSM\Logs にあります。

Linux の場合: Linux 用 SSM エージェントのログは、/var/log/amazon/ssm にあります。


この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?