AWS System Manager Run Command を使用し、マネージド Amazon Elastic Compute Cloud (Amazon EC2) インスタンスで SSM ドキュメントを実行しました。しかし、このプロセスはタイムアウトエラーにより失敗してしまいました。
簡単な説明
Run Command のタイムアウトステータスの詳細には以下が含まれます。
- **実行タイムアウト:**コマンドが失敗したと見なされるまでにコマンドが完了する時間 (秒単位)。デフォルトは 3600 (1 時間) です。最大値は 172800 (48 時間) です。
- **配信タイムアウト:**コマンドは、合計タイムアウトの期限が切れる前にマネージドノードに配信されませんでした。
- **合計タイムアウト:**配信タイムアウトと実行タイムアウトの値。SSM ドキュメントで実行タイムアウトが必要とされていない場合、合計タイムアウトは配信タイムアウトにデフォルトの実行タイムアウトを足したものに等しくなります。
詳細については、「コマンドステータスについて」を参照してください。
解決方法
Run Command のステータスの詳細を確認する
- Systems Manager コンソールを開きます。
- ナビゲーションペインから、[コマンドを実行] を選択します。
- ハイパーリンクされたコマンド ID を選択して、コマンドのステータスページを開きます。
- [ターゲットと出力] セクションから、ハイパーリンクされたインスタンス ID を選択し、出力を確認します。
出力が切り捨てられたら、SSH を使用して EC2 インスタンスに接続し、次のディレクトリに移動してエラーの完全な詳細を確認してください。終了ステータスコードを書き留めておいてください。その他のトラブルシューティング手順については、「Systems Manager Run Command のトラブルシューティング」を参照してください。
Linux と macOS の場合:
/var/lib/amazon/ssm/<instance-id>/document/orchestration/<command-id>/<Plugin-name>/<Step-name>/stdout
/var/lib/amazon/ssm/<instance-id>/document/orchestration/<command-id>/<Plugin-name>/<Step-name>/stderr
Windows の場合:
%ProgramData%\Amazon\SSM\InstanceData\<ManagedInstance-ID>\document\orchestration\<Command-ID>\<plug-in>\<step_number.plug-in>\stdout
%ProgramData%\Amazon\SSM\InstanceData\<ManagedInstance-ID>\document\orchestration\<Command-ID>\<plug-in>\<step_number.plug-in>\stderr
SSM エージェントのログを確認する
障害の詳細については、SSM エージェントのログを確認してください。
Linux と macOS の場合は、次のディレクトリでログを見つけます。
/var/log/amazon/ssm/amazon-ssm-agent.log
/var/log/amazon/ssm/errors.log
/var/log/amazon/ssm/audits/amazon-ssm-agent-audit-YYYY-MM-DD
Windows の場合は、次のディレクトリでログを見つけます。
%PROGRAMDATA%\Amazon\SSM\Logs\amazon-ssm-agent.log
%PROGRAMDATA%\Amazon\SSM\Logs\errors.log
%PROGRAMDATA%\Amazon\SSM\Logs\audits\amazon-ssm-agent-audit-YYYY-MM-DD
SSM エージェントのログにエラーを解決するために必要な情報が含まれていない場合は、デバッグログを許可して問題を再現できるようにしてください。
タイムアウト問題のトラブルシューティング
- Run Command SSM ドキュメントの合計完了時間が TimeoutSeconds プロパティよりも短いかどうかを確認してください。また、それらを完了するのに必要な合計時間が timeoutSeconds パラメータよりも短いかも合わせて確認してください。timeoutSeconds プロパティのデフォルト値は 3600 秒 (1 時間) です。**TimeoutSeconds ** プロパティ値の指定の詳細については、ランブックの「タイムアウトの処理」を参照してください。
- EC2 インスタンスはマネージドノードとして表示されている必要があり、SSM エージェントの ping ステータスは Online である必要があります。EC2 インスタンスがマネージドノードとして表示されない場合や、SSM エージェントの ping ステータスが Online でない場合は、追加のトラブルシューティングが必要です。詳細については、「EC2 インスタンスが Systems Manager でマネージドノードとして表示されない、または「接続が失われました」というステータスが表示されるのはなぜですか?」を参照してください。
- Run Command がマネージドノードを再起動するスクリプトを実行している場合、ノードが切断されてタイムアウトの問題が発生する可能性があります。正しい終了コードを使用しているか確認してください。詳細については、「コマンド実行時の再起動処理」を参照してください。
- SSM エージェントのバージョンが 2.0.913 以上の場合、最大実行タイムアウト値は 172800 秒(48 時間)です。インスタンスが最新バージョンの SSM エージェントを使用していることを確認します。
- メンテナンスウィンドウまたは State Manager でのコマンドの実行時に、コマンドが実行中であるかを確認します。確認するには、AWS CloudTrail を使用して SendCommand レスポンスを確認してください。
関連情報
AWS Systems Manager のドキュメント
AWS Systems Manager のセットアップ
Systems Manager Run Command の失敗をトラブルシューティングするにはどうしたらいいですか?