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

最終更新日: 2020 年 3 月 6 日

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

簡単な説明

マネージドインスタンスは、Systems Manager で使用するために設定された EC2 インスタンスです。マネージドインスタンスでは、Run Command、パッチマネージャー、オートメーションワークフローなどの Systems Manager サービスを使用できます。

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

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

解決方法

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

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

オペレーティングシステムが Systems Manager のサポート対象であることを確認します。 サポート対象であるオペレーティングシステムの一覧は、AWS Systems Manager ドキュメントの「サポートされるオペレーティングシステム」でご覧ください。

一部の Windows および Linux オペレーティングシステムには、SSM エージェントがプリインストールされています。 SSM エージェントがプリインストールされているオペレーティングシステムの一覧は、AWS Systems Manager ドキュメントの「SSM エージェント の使用」でご覧ください。

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

Linux: Amazon EC2 Linux インスタンスで SSM エージェントをインストールし設定する

Windows: Amazon EC2 Windows インスタンスでの SSM エージェントのインストールおよび設定

SSM エージェントの状態を確認するには、以下のコマンドを使用します。

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

$ sudo status amazon-ssm-agent

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

$ sudo systemctl status amazon-ssm-agent

snap を使用する最新の Ubuntu 18.04 システム:

$ sudo snap services amazon-ssm-agent    
Service                            Startup  Current  Notes
amazon-ssm-agent.amazon-ssm-agent  enabled  active   -

Windows:

$ Get-Service AmazonSSMAgent

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

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

ポート 443 からエンドポイントへの接続をテストするには、telnet コマンドを使用します。次の例は、us-east-1 リージョンでエンドポイントへの接続をテストする方法を示しています。

telnet ssm.us-east-1.amazonaws.com 443
telnet ec2messages.us-east-1.amazonaws.com 443
telnet ssmmessages.us-east-1.amazonaws.com 443

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

接続が機能していない場合、VPC のルートテーブルセキュリティグループネットワークアクセスコントロールリスト (ACL) がポート 443 でアウトバウンド接続を許可するよう設定されていることを確認します。Systems Manager エンドポイントは、パブリックエンドポイントです。つまり、インターネットゲートウェイまたは NAT を使用してインスタンスからインターネットに到達できる必要があります。

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

注意: インターフェイスエンドポイントは、指定されたサブネットにそれぞれ Elastic Network Interface を作成します。Elastic Network Interface にアタッチされたセキュリティグループは、ポート 443 がインバウンドトラフィックを許可することを要求します。

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

API を使用して Systems Manager エンドポイントを呼び出すには、適切な IAM ロールがインスタンスにアタッチされている必要があります。IAM ロールに AWS マネージドポリシー AmazonSSMManagedInstanceCore がアタッチされていることを確認します。カスタム IAM ポリシーを使用している場合、AmazonSSMManagedInstanceCore にあるアクセス許可がそのカスタムポリシーで使用されていることを確認します。また、IAM ロールの信頼ポリシーが、このロールを引き受けることを ec2.amazonaws.com に許可していることを確認します。

詳細については、「Systems Manager インスタンスプロファイルにアクセス許可を追加する (コンソール)」をご覧ください。

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

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

telnet 169.254.169.254 80

インスタンスでプロキシを使用している場合、プロキシによってメタデータ URL への接続がブロックされる可能性があります。SSM エージェントがプロキシと連携するよう設定したことを確認します。SSM エージェントでプロキシを使用するよう設定する方法は、以下のリンクからご確認ください。

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

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

上述の前提条件をすべて確認してもインスタンスが Systems Manager コンソールにマネージドインスタンスとして表示されない場合は、SSM エージェントログを参照します。

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

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


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

改善できることはありますか?


さらにサポートが必要な場合