メニュー
Amazon Elastic Compute Cloud
Linux インスタンス用ユーザーガイド

コマンドのステータスとモニタリング

Amazon EC2 Run Command は、コマンドの各処理状態とコマンドを処理した各インスタンスの詳細なステータス情報をレポートします。Run Command には、コマンドのステータスを手動または自動でモニタリングするためのオプションが用意されています。コマンドのステータスをモニタリングすることで、コマンドが失敗した場合の問題のトラブルシューティングが容易になります。

コマンドのステータスについて

Run Command は、プラグイン、呼び出し、コマンドのステータス全体という 3 つのエリアでステータスの詳細をレポートします。プラグインは、コマンドの Systems Manager ドキュメントに定義されているコード実行ブロックです。たとえば、AWS-RunShellScript ドキュメントには aws:runShellScript プラグインが含まれています。 AWS-* ドキュメントに含まれているプラグインは 1 つのみですが、複数のプラグインを使用するドキュメントを独自に作成できます。プラグインの詳細については、『Amazon EC2 Systems Manager API Reference』の「Systems Manager プラグイン」を参照してください。

複数のインスタンスに、コマンドを同時に送信するとき、各インスタンスを対象とするコマンドの各コピーは、コマンド呼び出しです。たとえば、AWS-RunShellScript ドキュメントを使用して ifconfig コマンドを 20 インスタンスに送信した場合、このコマンドの呼び出し数は 20 です。各コマンド呼び出しで、個別にステータスが報告されます。コマンド呼び出しに含まれているプラグインも、個々にステータスを報告します。

最後に、Run Command コマンドには、すべてのプラグインと呼び出しの集約されたコマンドステータスがあります。集約されたコマンドステータスは、以下の表に示すように、プラグインまたは呼び出しによってレポートされるステータスとは異なる場合があります。

注記

max-concurrency パラメータまたは max-errors パラメータを使用して多数のインスタンスに対してコマンドを実行する場合は、以下の表に示すように、これらのパラメータによって強制される制限がコマンドのステータスに反映されます。 これらのパラメータの詳細については、複数のインスタンスへのコマンドの送信を参照してください。

コマンドのプラグインと呼び出しの詳細なステータス

ステータス 詳細
Pending インスタンスでコマンドはまだエージェントに受け取られていません。Timeout (seconds) パラメータによって指定された値より前にエージェントによってコマンドが受け取られない場合、ステータスは Delivery Timed Out に変わります。
進行中 コマンドは、エージェントによって受け取られたか、インスタンスで実行が開始されました。すべてのコマンドプラグインの結果に応じて、ステータスは SuccessFailedExecution Timed Out のいずれかに変わります。インスタンスでまだエージェントを利用できない場合、コマンドのステータスは、エージェントが再度利用可能になるまで In Progress と表示されます。その後、ステータスは終了状態に変わります。
Delayed システムからインスタンスにコマンドを送信しようとしましたが成功しませんでした。システムは再試行します。
Success コマンドまたはプラグインの実行は正常に完了しました。これは終了状態です。
Delivery Timed Out コマンドは、配信タイムアウトが期限切れになるまでにインスタンスに配信されませんでした。配信タイムアウトは、親コマンドの max-errors の制限数にはカウントされませんが、親コマンドのステータスが Success または Incomplete のいずれになるかに影響します。これは終了状態です。
Execution Timed Out コマンドの実行は、インスタンスで開始されましたが、実行タイムアウトが期限切れになるまでに完了しませんでした。実行タイムアウトは、親コマンドの max-errors の制限数にカウントされます。これは終了状態です。
Failed

インスタンスでコマンドは失敗しました。プラグインの場合、これは結果コードがゼロではないことを示します。コマンドの呼び出しの場合、これは 1 つ以上のプラグインの結果コードがゼロではないことを示します。呼び出しの失敗は、親コマンドの max-errors の制限数にカウントされます。これは終了状態です。

Canceled コマンドは、完了する前に終了しました。これは終了状態です。
Undeliverable コマンドをインスタンスに配信できません。インスタンスは存在していないか、応答していない可能性があります。配信不能な呼び出しは、親コマンドの max-errors の制限数にはカウントされません。また、親コマンドのステータスが Success または Incomplete のいずれになるかにも影響しません。これは終了状態です。
Terminated 親コマンドが max-errors の制限数を超え、後続のコマンド呼び出しはシステムによって取り消されました。これは終了状態です。

コマンドの詳細なステータス

ステータス 詳細
Pending インスタンスでコマンドはエージェントによってまだ受け取られていません。
In Progress コマンドは、1 つ以上のインスタンスに送信されましたが、どのインスタンスも終了状態に達していません。
Delayed システムからインスタンスにコマンドを送信しようとしましたが成功しませんでした。システムは再試行します。
Success コマンドは、すべての指定されたインスタンスまたは対象となるインスタンスで実行を試行しましたが、どのコマンドの呼び出しも終了状態に達していず、max-errors の値にも達していません。これは終了状態です。
Delivery Timed Out コマンドは、配信タイムアウトが期限切れになるまでにインスタンスに配信されませんでした。max-errors の値を超えるコマンドの呼び出しが Delivery Timed Out のステータスを示しています。これは終了状態です。
Execution Timed Out コマンドの実行は、インスタンスで開始されましたが、実行タイムアウトが期限切れになるまでに完了しませんでした。max-errors の値を超えるコマンドの呼び出しが Execution Timed Out のステータスを示しています。これは終了状態です。
Failed

インスタンスでコマンドは失敗しました。max-errors の値を超えるコマンドの呼び出しが Failed のステータスを示しています。これは終了状態です。

Incomplete コマンドは、すべてのインスタンスで試行されましたが、Success の値になっていない呼び出しが 1 つ以上あります。ただし、スタータスが Failed になるほどの呼び出しの失敗はありません。これは終了状態です。
Canceled コマンドは、完了する前に終了しました。これは終了状態です。
Rate Exceeded コマンドの対象となるインスタンスの数が、保留中の呼び出しに対するアカウントの上限を超えています。コマンドはシステムによってキャンセルされ、どのインスタンスでも実行が開始されていません。これは終了状態です。

コマンドのモニタリングについて

コマンドのステータスは、手動または自動でモニタリングできます。どの方法でモニタリングするかは、送信するコマンドの数とこれらのコマンドを処理するインスタンスの数によって異なります。たとえば、数百のインスタンスにコマンドを送信する場合、コマンドのステータスをモニタリングするために、Amazon EC2 コンソールの [Run Command] ページで [Refresh] アイコンをクリックすることは実用的ではありません。この場合は、Amazon SNS 通知または CloudWatch イベント を設定することを検討します。

コマンドのステータスをモニタリングする方法