[Connection Lost] (接続が失われました) ステータスの Systems Manager のマネージドインスタンスをトラブルシューティングする方法を教えてください。

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

Amazon Elastic Compute Cloud (Amazon EC2) マネージドインスタンスは、AWS Systems Manager コンソールの [Managed Instances] (マネージドインスタンス) で [Connection Lost] (接続が失われました) ステータスになっています。

簡単な説明

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

マネージドインスタンスを [Online] (オンライン) ステータスにするには、インスタンスが次の前提条件を満たしている必要があります。

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

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

解決方法

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

[Connection Lost] (接続が失われました) ステータスのマネージドインスタンスをトラブルシューティングするには、インスタンスで次の前提条件が満たされていることを確認します。

当該インスタンスにおいて 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 エンドポイントを作成するにはどうすればよいですか? をご覧ください。

適切な 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)

トラブルシューティング

インスタンスのステータスが [Online] (オンライン) に変更されず、[Connection Lost] (接続が失われました) のままである場合は、SSM エージェントのログを参照してさらにトラブルシューティングを行ってください。

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

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


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


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