[Connection Lost] (接続が失われました) ステータスの Systems Manager のマネージドインスタンスをトラブルシューティングするにはどうすればよいですか?
Amazon Elastic Compute Cloud (Amazon EC2) マネージドインスタンスのステータスが、AWS Systems Manager コンソールで [Connection Lost] (接続が失われました) になっています。
簡単な説明
マネージドインスタンスは、Systems Manager で使用するために設定された Amazon EC2 インスタンスです。マネージドインスタンスでは、Run Command、Patch Manager、Session Manager などの Systems Manager サービスを使用できます。マネージドインスタンスの詳細については、「マネージドノード」を参照してください。
マネージドインスタンスのステータスが [Online] (オンライン) であるようにするには、そのインスタンスは次の前提条件を満たす必要があります。
- AWS Systems Manager Agent (SSM Agent) がインストールされており、実行中である。
- SSM Agent を使用して Systems Manager エンドポイントに接続されている。
- 適切な AWS Identity and Access Management (IAM) ロールがアタッチされている。
- インスタンスメタデータサービスに接続している。
また、AWSSupport-TroubleshootManagedInstance Systems Manager Automation ドキュメントを実行して、インスタンスが前述の前提条件を満たしているかどうかを確認することもできます。詳細については、「AWSSupport-TroubleshootManagedInstance」を参照してください。
注: ハイブリッドインスタンスの場合は、「ハイブリッド環境で AWS Systems Manager を設定する」を参照してください。
解決方法
注: ここでの解決方法の実行を開始する前に、必ず対象のインスタンスがある AWS リージョンを選択してください。
[Connection Lost] (接続が失われました) ステータスのマネージドインスタンスをトラブルシューティングするには、インスタンスが前提条件を満たしていることを確認します。
該当のインスタンスで SSM Agent がインストールおよび実行されている
SSM Agent のステータスを確認するには、次のコマンドを実行します。
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 エンドポイントとクォータ」を参照してください。
注: 次の例では、AWS Systems Manager Session Manager のみが ssmmessages エンドポイントを必要とします。
EC2 Linux インスタンスの場合: telnet または netcat コマンドを実行して、ポート 443 のエンドポイントへの接続を確認できます。
Telnet
telnet ssm.RegionID.amazonaws.com 443 telnet ec2messages.RegionID.amazonaws.com 443 telnet ssmmessages.RegionID.amazonaws.com 443
接続が成功した場合は、次のような出力が表示されます。
root@111800186:~# telnet ssm.us-east-1.amazonaws.com 443 Trying 52.46.141.158... Connected to ssm.us-east-1.amazonaws.com. Escape character is '^]'.
telnet を終了するには、Ctrl キーを押しながら、] キーを押します。quit と入力し、Enter キーを押します。
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 エンドポイントはパブリックエンドポイントです。つまり、インスタンスはインターネットゲートウェイを使用してインターネットに到達できる必要があります。パブリックサブネットのインスタンスからエンドポイントへの接続に関する問題については、次を確認してください。
- インスタンスのルートテーブルには、インターネットへのルートが含まれている必要があります。
- ポート 443 でのアウトバウンド接続を許可するように、仮想プライベートクラウド (VPC) セキュリティグループとネットワークアクセスコントロールリスト (ネットワーク ACL) を設定する必要があります。
プライベートサブネットの場合: プライベートサブネットの場合、インスタンスは 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 に許可していることを確認します。
詳細については、「Systems Manager インスタンスプロファイルにアクセス許可を追加する (コンソール)」を参照してください。
インスタンスメタデータサービスへの接続がある
注: メタデータの接続を確認する必要があるのは、標準の Amazon EC2 インスタンスの場合のみです。
インスタンスに関する必要な情報を取得するために、SSM Agent はインスタンスメタデータサービスと通信する必要があります。Netcat コマンドを実行して接続をテストします。
nc -vz 169.254.169.254 80
インスタンスでプロキシを使用する場合、プロキシはメタデータ URL への接続をブロックする可能性があります。SSM Agent が、プロキシを使用するように設定されていることを確認します。プロキシを使用するように SSM Agent を設定するには、次のマニュアルを参照してください。
Windows の場合:Windows Server インスタンスのプロキシを使用するように SSM Agent を設定する
Linux の場合:プロキシを使用するように SSM エージェントを設定する (Linux)
トラブルシューティング
インスタンスのステータスが [Online] (オンライン) に変更されず、[Connection Lost] (接続が失われました) のままである場合は、SSM エージェントのログを参照してさらにトラブルシューティングを行ってください。
Windows の場合: Windows 用 SSM エージェントのログは、%PROGRAMDATA%\Amazon\SSM\Logs にあります。
Linux の場合:Linux 用 SSM Agent のログは、/var/log/amazon/ssm にあります。
注:インスタンスが SSM にレポートしていない場合は、RDP (Windows) または SSH (Linux) を使用してログインし、ログを収集してみてください。それでもログインできない場合は、インスタンスを停止してルートボリュームをデタッチします。その後、ルートボリュームをセカンダリボリュームと同じアベイラビリティーゾーン (AZ) 内の別のインスタンスにアタッチしてログを取得します。
関連情報
Amazon Elastic Block Store (Amazon EBS) ボリュームをインスタンスにアタッチする
Linux インスタンスから Amazon EBS ボリュームをデタッチする

関連するコンテンツ
- 質問済み 3年前lg...
- 質問済み 6日前lg...
- 承認された回答質問済み 2ヶ月前lg...
- 質問済み 2ヶ月前lg...
- 質問済み 2ヶ月前lg...
- AWS公式更新しました 5ヶ月前
- AWS公式更新しました 2年前
- AWS公式更新しました 5ヶ月前