ssm-cli を使用したマネージドノードの可用性のトラブルシューティング - AWS Systems Manager

ssm-cli を使用したマネージドノードの可用性のトラブルシューティング

ssm-cli は SSM Agent のインストールに含まれるスタンドアロンのコマンドラインツールです。SSM Agent 3.1.501.0 以降をマシンにインストールすると、そのマシンで ssm-cli コマンドを実行できます。これらのコマンドの出力は、マシンが Amazon EC2 インスタンスまたは AWS Systems Manager で管理される (したがって Systems Manager のマネージドノードのリストに追加される) EC2 以外のマシンの最小要件を満たすかどうかを判断するのに役立ちます。(SSM Agent バージョン 3.1.501.0 は 2021 年 11 月にリリースされました)。

最小要件

Amazon EC2 インスタンスまたは EC2 以外のマシンを AWS Systems Manager で管理し、マネージドノードのリストに表示されるようにするには、次の 3 つの主な要件を満たす必要があります。

  • SSM Agent は、サポートされているオペレーティングシステムを搭載したマシンにインストールして実行する必要があります。

    一部の EC2 向けの AWS マネージド Amazon Machine Images (AMIs) は、SSM Agent がプリインストールされたインスタンスを起動するように設定されています。(カスタムの AMI を設定して SSM Agent をプリインストールすることもできます。) 詳細については、「SSM Agent がプリインストールされている AMIs を見つける」を参照してください。

  • Systems Manager サービスとの通信に必要な許可を提供する AWS Identity and Access Management (IAM) インスタンスプロファイル (EC2 インスタンスの場合) または IAM サービスロール (EC2 以外のマシンの場合) をマシンにアタッチする必要があります。

  • SSM Agent は、それ自体をサービスに登録するために、Systems Manager エンドポイントに接続できる必要があります。そのうえで、マネージドノードがサービスで使用可能である必要があります。これは、サービスが 5 分ごとに信号を送信してマネージドノードの正常性をチェックすることによって確認されます。

ssm-cli に事前設定されているコマンド

実行中であることを確認したマシンが Systems Manager のマネージドノードのリストに含まれていない理由を診断するために必要な情報を収集する、事前設定済みのコマンドが含まれています。get-diagnostics オプションを指定したときにこれらのコマンドが実行されます。

マシンで、マネージドノードの可用性のトラブルシューティングに ssm-cli を使用するには、次のコマンドを実行します。

Linux & macOS
ssm-cli get-diagnostics --output table
Windows

Windows Server マシンでは、コマンドを実行する前に C:\Program Files\Amazon\SSM ディレクトリに移動する必要があります。

ssm-cli.exe get-diagnostics --output table
PowerShell

Windows Server マシンでは、コマンドを実行する前に C:\Program Files\Amazon\SSM ディレクトリに移動する必要があります。

.\ssm-cli.exe get-diagnostics --output table

このコマンドにより、次のような出力がテーブルとして返されます。

注記

ssmmessagess3kmslogs、および monitoring エンドポイントへの接続チェックは、Amazon Simple Storage Service (Amazon S3) や Amazon CloudWatch Logs へのログ記録、および AWS Key Management Service (AWS KMS) による暗号化の使用が可能な Session Manager などの追加オプション機能に対するものです。

Linux & macOS
[root@instance]# ssm-cli get-diagnostics --output table ┌───────────────────────────────────────┬─────────┬───────────────────────────────────────────────────────────────────────┐ │ Check │ Status │ Note │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ EC2 IMDS │ Success │ IMDS is accessible and has instance id i-0123456789abcdefa in Region │ │ │ │ us-east-2 │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ Hybrid instance registration │ Skipped │ Instance does not have hybrid registration │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ Connectivity to ssm endpoint │ Success │ ssm.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ Connectivity to ec2messages endpoint │ Success │ ec2messages.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ Connectivity to ssmmessages endpoint │ Success │ ssmmessages.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ Connectivity to s3 endpoint │ Success │ s3.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ Connectivity to kms endpoint │ Success │ kms.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ Connectivity to logs endpoint │ Success │ logs.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ Connectivity to monitoring endpoint │ Success │ monitoring.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ AWS Credentials │ Success │ Credentials are for │ │ │ │ arn:aws:sts::123456789012:assumed-role/Fullaccess/i-0123456789abcdefa │ │ │ │ and will expire at 2021-08-17 18:47:49 +0000 UTC │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ Agent service │ Success │ Agent service is running and is running as expected user │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ Proxy configuration │ Skipped │ No proxy configuration detected │ ├───────────────────────────────────────┼─────────┼───────────────────────────────────────────────────────────────────────┤ │ SSM Agent version │ Success │ SSM Agent version is 3.0.1209.0, latest available agent version is │ │ │ │ 3.1.192.0 │ └───────────────────────────────────────┴─────────┴───────────────────────────────────────────────────────────────────────┘
Windows Server and PowerShell
PS C:\Program Files\Amazon\SSM> .\ssm-cli.exe get-diagnostics --output table ┌───────────────────────────────────────┬─────────┬─────────────────────────────────────────────────────────────────────┐ │ Check │ Status │ Note │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ EC2 IMDS │ Success │ IMDS is accessible and has instance id i-0123456789EXAMPLE in │ │ │ │ Region us-east-2 │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Hybrid instance registration │ Skipped │ Instance does not have hybrid registration │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Connectivity to ssm endpoint │ Success │ ssm.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Connectivity to ec2messages endpoint │ Success │ ec2messages.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Connectivity to ssmmessages endpoint │ Success │ ssmmessages.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Connectivity to s3 endpoint │ Success │ s3.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Connectivity to kms endpoint │ Success │ kms.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Connectivity to logs endpoint │ Success │ logs.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Connectivity to monitoring endpoint │ Success │ monitoring.us-east-2.amazonaws.com is reachable │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ AWS Credentials │ Success │ Credentials are for │ │ │ │ arn:aws:sts::123456789012:assumed-role/SSM-Role/i-123abc45EXAMPLE │ │ │ │ and will expire at 2021-09-02 13:24:42 +0000 UTC │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Agent service │ Success │ Agent service is running and is running as expected user │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Proxy configuration │ Skipped │ No proxy configuration detected │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ Windows sysprep image state │ Success │ Windows image state value is at desired value IMAGE_STATE_COMPLETE │ ├───────────────────────────────────────┼─────────┼─────────────────────────────────────────────────────────────────────┤ │ SSM Agent version │ Success │ SSM Agent version is 3.2.815.0, latest agent version in us-east-2 │ │ │ │ is 3.2.985.0 │ └───────────────────────────────────────┴─────────┴─────────────────────────────────────────────────────────────────────┘

次の表に、ssm-cli によって実行される各チェックの詳細を示します。

ssm-cli 診断チェック
チェック 詳細
Amazon EC2 インスタンスのメタデータサービス マネージドノードがメタデータサービスに到達できるかどうかを示します。テストの失敗は、http://169.254.169.254 への接続に問題があることを示しています。これはローカルルート、プロキシ、またはオペレーティングシステム (OS) のファイアウォールとプロキシの構成によって発生している可能性があります。
ハイブリッドインスタンスの登録 SSM Agent がハイブリッドアクティベーションを使用して登録されているかどうかを示します。
ssm エンドポイントへの接続 ノードが TCP ポート 443 で Systems Manager のサービスエンドポイントに到達できるかどうかを示します。テストが失敗した場合は、ノードがある AWS リージョン に応じて https://ssm.region.amazonaws.com への接続に問題があることを示します。接続の問題は、セキュリティグループ、ネットワークアクセスコントロールリスト、ルートテーブル、OS ファイアウォールおよびプロキシなどの VPC 設定によって引き起こされている可能性があります。
ec2messages エンドポイントへの接続 ノードが TCP ポート 443 で Systems Manager のサービスエンドポイントに到達できるかどうかを示します。テストが失敗した場合は、ノードがある AWS リージョン に応じて https://ec2messages.region.amazonaws.com への接続に問題があることを示します。接続の問題は、セキュリティグループ、ネットワークアクセスコントロールリスト、ルートテーブル、OS ファイアウォールおよびプロキシなどの VPC 設定によって引き起こされている可能性があります。
ssmmessages エンドポイントへの接続 ノードが TCP ポート 443 で Systems Manager のサービスエンドポイントに到達できるかどうかを示します。テストが失敗した場合は、ノードがある AWS リージョン に応じて https://ssmmessages.region.amazonaws.com への接続に問題があることを示します。接続の問題は、セキュリティグループ、ネットワークアクセスコントロールリスト、ルートテーブル、OS ファイアウォールおよびプロキシなどの VPC 設定によって引き起こされている可能性があります。
s3 エンドポイントへの接続 ノードが TCP ポート 443 で Amazon Simple Storage Service のサービスエンドポイントに到達できるかどうかを示します。テストが失敗した場合は、ノードがある AWS リージョン に応じて https://s3.region.amazonaws.com への接続に問題があることを示します。ノードをマネージドノードリストに表示するのに、このエンドポイントに接続する必要はありません。
kms エンドポイントへの接続

ノードが TCP ポート 443 で AWS Key Management Service のサービスエンドポイントに到達できるかどうかを示します。テストが失敗した場合は、ノードがある AWS リージョン に応じて https://kms.region.amazonaws.com への接続に問題があることを示します。ノードをマネージドノードリストに表示するのに、このエンドポイントに接続する必要はありません。

logs エンドポイントへの接続 ノードが TCP ポート 443 で Amazon CloudWatch Logs のサービスエンドポイントに到達できるかどうかを示します。テストが失敗した場合は、ノードがある AWS リージョン に応じて https://logs.region.amazonaws.com への接続に問題があることを示します。ノードをマネージドノードリストに表示するのに、このエンドポイントに接続する必要はありません。
monitoring エンドポイントへの接続 ノードが TCP ポート 443 で Amazon CloudWatch のサービスエンドポイントに到達できるかどうかを示します。テストが失敗した場合は、ノードがある AWS リージョン に応じて https://monitoring.region.amazonaws.com への接続に問題があることを示します。ノードをマネージドノードリストに表示するのに、このエンドポイントに接続する必要はありません。
AWS 認証情報 マシンにアタッチされている IAM インスタンスプロファイル (EC2 インスタンスの場合) または IAM サービスロール (EC2 以外のマシンの場合) に基づいて、SSM Agent に必要な認証情報があるかどうかを示します。テストに失敗した場合、IAM インスタンスプロファイルまたは IAM サービスロールがマシンにアタッチされていないか、Systems Manager に必要な許可が含まれていないことを示します。
エージェントサービス SSM Agent サービスが実行されているかどうか、およびサービスが Linux もしくは macOS のルートとして、または Windows Server の SYSTEM として実行されているかどうかを示します。テストに失敗した場合、SSM Agent サービスが実行されていないか、ルートまたは SYSTEM として実行されていないことを示します。
プロキシ設定 SSM Agent がプロキシを使用するように設定されているかどうかを示します。
Sysprep イメージの状態 (Windows のみ) ノード上の Sysprep の状態を示します。Sysprep 状態が IMAGE_STATE_COMPLETE 以外の値の場合、SSM Agent はノード上で起動しません。
SSM Agent バージョン 利用可能な SSM Agent の最新バージョンかインストールされているかどうかを示します。