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

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

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

簡単な説明

マネージドインスタンスは、Systems Manager で使用するために定義された EC2 インスタンスです。マネージドインスタンスでは、Run Command、Patch 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(サポートされるオペレーティングシステム)」でご確認ください。

一部の Windows および Linux オペレーティングシステムには、SSM エージェントがプリインストールされています。 SSM エージェントがプリインストール済みのオペレーティングシステムについては、「Working with SSM Agent(SSM エージェント の使用)」でご確認ください。

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

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

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

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 にのみ必要です。

接続が機能していない場合には、ポート 443 でのアウトバウンド接続が、VPC のルートテーブルセキュリティグループ、およびネットワークのアクセスコントロールリスト(ACL) で許可されているかを確認します。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 がこのロールを引き受けることを許可しているかを確認します。

詳細については、「Task 2: Add permissions to a Systems Manager instance profile (console) (Systems Manager インスタンスプロファイルにアクセス権限を追加する)」をご参照ください。

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

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

telnet 169.254.169.254 80

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

Windows: SSM エージェントでのプロキシ使用の設定(Windows Server インスタンス用)

Linux: SSM エージェントでのプロキシ使用の設定

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

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

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


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


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