Systems Manager のメンテナンスウィンドウから「タグにインスタンスがありません」というメッセージを受け取るのはなぜですか?

最終更新日: 2021 年 4 月 29 日

Amazon Elastic Compute Cloud (Amazon EC2) インスタンスタグをターゲットとする AWS Systems Manager の Run Command を実行するメンテナンスウィンドウを作成しました。コマンドを実行すると、「タグにインスタンスがありません」というメッセージが表示されます。この問題を修正するにはどうすればよいですか?

簡単な説明

Amazon EC2 インスタンスのタグを使用するインスタンスをターゲットとするメンテナンスウィンドウを実行すると、マネージドインスタンスのインスタンス ID はコマンドの実行時に解決されます。インスタンスが Systems Manager に [Online] (オンライン) として報告されていない場合、インスタンス ID はターゲットとして解決されません。メンテナンスウィンドウでインスタンス ID ターゲットを解決できない場合は、「タグにインスタンスがありません」というメッセージが表示されます。

「タグにインスタンスがありません」というメッセージは、EC2 リソースタグとメンテナンスウィンドウターゲットとして登録されているタグが一致しない場合にも表示されます。Systems Manager は、文字列の match メソッドを使用して、ターゲットをタグに解決します。その結果、タグの大文字と小文字は区別されます。EC2 リソースタグまたはメンテナンスウィンドウのターゲットタグのいずれかに余分なスペースが入力されていると、「タグにインスタンスがありません」というメッセージが表示されます。

解決方法

[Online] (オンライン) としてレポートされないインスタンスのトラブルシューティングを行うには、Systems Manager コンソールの [マネージドインスタンス] に EC2 インスタンスが表示されないのはなぜですか? をご参照ください。

一致しないタグを特定するには、AWS CloudTrail を使用して、メンテナンスウィンドウによって渡される正確な値を特定します。

  1. CloudTrail コンソールを開き、[Event history] (イベント履歴) を選択して、メンテナンスウィンドウを作成したリージョンのイベントを表示します。
  2. 検索のドロップダウンフィルターを [Event name] (イベント名) に変更します。[Enter an event name] (イベント名を入力) で、SendCommand と入力して、すべての Run Command API イベントを表示します。メンテナンスウィンドウが実行された時間に時間フィルターを設定するのがベストプラクティスです。
  3. ハイパーリンクされた [Event name] (イベント名) を選択して、API 呼び出しを JSON 形式で表示します。
  4. API 呼び出しの 「targets」 セクションに移動し、メンテナンスウィンドウから渡された正確なタグ値を表示します。その後、API 呼び出しタグの値を、インスタンスに割り当てられた EC2 インスタンスのタグと比較します。
  5. メンテナンスウィンドウのターゲットまたは EC2 インスタンスのタグを更新して、両方の値が正確に一致するようにします。