State Manager 関連付けのターゲットとレート制御について
このトピックでは、スケジュールされた時間に関連付けを実行するノードの数を制御しながら、数十または数百のノードに関連付けをデプロイするのに役立つ State Manager の機能について説明します。State Manager は AWS Systems Manager のツールです。
ターゲットの使用について
State Manager 関連付けを作成するときは、ここに示すように Systems Manager コンソールの [Targets] (ターゲット) セクションで、関連付けを設定するノードを選択します。

AWS Command Line Interface (AWS CLI) などのコマンドラインツールを使用して関連付けを作成する場合は、targets
パラメータを指定します。ノードをターゲットにすると、個々のノード ID を指定または選択しなくても、数十、数百、数千のノードに関連付けを設定できます。
各マネージドノードは、最大 20 件の関連付けの対象にすることができます。
State Manager では、関連付けの作成時に以下のターゲットオプションが提供されます。
タグを指定する
このオプションを使用して、ノードに割り当てられているタグキーと (必要に応じて) タグ値を指定します。このリクエストを実行すると、システムは指定されたタグキーと値に一致するすべてのノードを検出し、関連付けの作成を試みます。複数のタグ値を指定した場合、関連付けはそれらのタグ値の少なくとも 1 つを持つすべてのノードをターゲットとします。システムは、最初に関連付けを作成すると、その関連付けを実行します。この最初の実行後、システムは指定されたスケジュールに従って関連付けを実行します。
新しいノードを作成し、指定したタグキーと値をそれらのノードに割り当てると、システムは関連付けを自動的に適用し、すぐに実行した後、スケジュールに従って実行します。これは、関連付けがコマンドまたはポリシードキュメントを使用する場合に適用され、関連付けが Automation ランブックを使用する場合は適用されません。指定したタグをノードから削除すると、システムはそれらのノードで関連付けを実行しなくなります。
注記
オートメーションランブックを State Manager と共に使用していて、タグ付けの制限により特定の目標を達成できない場合は、Amazon EventBridge で自動化ランブックを使用することを検討してください。詳細については、「EventBridge イベントに基づくオートメーションを実行する」を参照してください。State Manager でのオートメーションランブックの使用の詳細については、「State Manager 関連付けでのオートメーションのスケジュール設定」を参照してください。
ベストプラクティスとして、コマンドまたはポリシードキュメントを使用する関連付けを作成する際にタグを使用することをお勧めします。Auto Scaling グループを実行するための関連付けを作成する際にも、タグを使用することをお勧めします。詳細については、「関連付けで Auto Scaling グループを実行する」を参照してください。
注記
以下の情報に注意してください。
-
コンソールで関連付けを作成する際に、タグを使用してノードをターゲットにする場合、指定できるタグキーは 1 つだけです。コンソールを使用し、かつ、複数のタグキーを使用してノードをターゲットにする場合は、タグキーを AWS Resource Groups グループに割り当てて、そのグループにノードを追加します。その後、State Manager 関連付けを作成する際に、[ターゲット] リストで [リソースグループ] オプションを選択できます。
-
AWS CLI を使用して、最大 5 個のタグキーを指定できます。AWS CLI を使用する場合は、
create-association
コマンドで指定されたすべてのタグキーがノードに現在割り当てられている必要があります。割り当てられていない場合、State Manager はノードを関連付けのターゲットにできません。
ノードを手動で選択する
このオプションを使用して、関連付けを作成するノードを手動で選択します。[Instances] (インスタンス) ペインに、現在の AWS アカウント と AWS リージョン 内にあるすべての Systems Manager マネージドノードが表示されます。任意の数のノードを手動で選択できます。システムは、最初に関連付けを作成すると、その関連付けを実行します。この最初の実行後、システムは指定されたスケジュールに従って関連付けを実行します。
注記
表示されるはずのマネージドノードが表示されない場合は、トラブルシューティングのヒントについて「マネージドノードの可用性のトラブルシューティング」を参照してください。
リソースグループの選択
このオプションを使用して、AWS Resource Groups タグベースまたは AWS CloudFormation スタックベースのクエリによって返されるすべてのノードに関連付けを作成します。
関連付けでリソースグループをターゲットにする際の詳細は以下のとおりです。
-
新しいノードをグループに追加すると、システムは自動的にそのノードを、リソースグループをターゲットにする関連付けにマッピングします。システムは、変更を検出すると、ノードに関連付けを適用します。この最初の実行後、システムは指定されたスケジュールに従って関連付けを実行します。
-
リソースグループをターゲットとする関連付けを作成し、そのグループの
AWS::SSM::ManagedInstance
リソースタイプが指定されていた場合、設計上、関連付けはハイブリッドおよびマルチクラウド環境で Amazon Elastic Compute Cloud (Amazon EC2) インスタンスと非 EC2 ノードの両方で実行されます。逆の場合も同様です。リソースグループをターゲットとする関連付けを作成し、そのグループの
AWS::EC2::Instance
リソースタイプが指定されていた場合、設計上、関連付けはハイブリッドおよびマルチクラウド環境の非 EC2 ノードと (Amazon EC2) インスタンスの両方で実行されます。 -
リソースグループをターゲットとする関連付けを作成する場合、リソースグループには 5 つ以上のタグキー、または 1 つのタグキーに対して指定されている値以上のタグキーを割り当てらることはできません。リソースグループにこれらの条件のいずれかがタグとキーに適用される場合、関連付けの実行は失敗し、
InvalidTarget
エラーが返されます。 -
タグを使用してリソースグループをターゲットにする関連付けを作成する場合、タグ値に [(空の値)] オプションを選択することはできません。
-
リソースグループを削除すると、そのグループのすべてのインスタンスで関連付けが実行されなくなります。ベストプラクティスとして、グループをターゲットにする関連付けを削除します。
-
1 つの関連付けについて、ターゲットにできるのは 1 つのリソースグループだけです。複数のグループまたはネストされたグループはサポートされません。
-
関連付けを作成した後、State Manager によって関連付けはリソースグループのリソースに関する情報で定期的に更新されます。リソースグループに新しいリソースを追加する場合、システムによって新しいリソースに関連付けが適用されるスケジュールは、いくつかの要因によって異なります。関連付けのステータスは、Systems Manager コンソールの State Manager ページで確認できます。
警告
Amazon EC2 インスタンスのリソースグループをターゲットにする関連付けを作成するアクセス許可を有する AWS Identity and Access Management (IAM) ユーザー、グループ、またはロールは、自動的にグループ内のすべてのインスタンスのルートレベルを制御することができます。信頼された管理者のみが関連付けの作成を許可されるようにしてください。
Resource Groups の詳細については、AWS Resource Groups ユーザーガイドの「AWS Resource Groups とは」を参照してください。
すべてのノードを選択する
このオプションを使用して、現在の AWS アカウント と AWS リージョン 内にあるすべてのノードをターゲットにします。このリクエストを実行すると、システムは現在の AWS アカウント と AWS リージョン 内にあるすべてのノードを検出し、関連付けの作成を試みます。システムは、最初に関連付けを作成すると、その関連付けを実行します。この最初の実行後、システムは指定されたスケジュールに従って関連付けを実行します。新しいノードを作成すると、システムは自動的に関連付けを適用し、すぐに実行した後、スケジュールに従って実行します。
レート制御の使用
同時実行値とエラーしきい値を指定することで、ノードでの関連付けの実行を制御できます。同時実行値には、関連付けを同時に実行できるノードの数を指定します。関連付けの実行の失敗回数がある値を上回ると、その関連付けが設定された各ノードに、Systems Manager が関連付けの実行を停止するコマンドを送信します。エラーしきい値には、その値を指定します。このコマンドは、次のスケジュールされた実行まで関連付けの実行を停止します。同時実行数とエラーのしきい値機能は、まとめてレート制御と呼ばれます。

同時実行
同時実行数は、一度に特定の数のノードだけが関連付けを処理できるよう指定することで、ノードへの影響を制限するのに役立ちます。ノードの絶対数 (20 など) またはノードのターゲットセットの割合 (10% など) を指定できます。
State Manager 同時実行数には次の制限と制約があります。
-
ターゲットを使用して関連付けを作成することを選択した場合に、同時実行値を指定しないと、State Manager は最大同時実行数を自動的に 50 ノードにします。
-
同時実行数を使用する関連付けが実行されているときに、ターゲット基準に一致する新しいノードがオンラインになると、同時実行値を超えていない場合、新しいノードは関連付けを実行します。同時実行値を超えた場合、現在の関連付けの実行期間中、ノードは無視されます。ノードでは、次のスケジュールされた期間中に同時実行数の要件に適合している間は、関連付けが実行されます。
-
同時実行数を使用する関連付けを更新する場合に、更新されるときに 1 つまたは複数のノードがその関連付けを処理しているときは、関連付けを実行しているすべてのノードで完了となります。開始されていない関連付けは停止されます。実行中の関連付けが完了すると、関連付けが更新されたため、すべてのターゲットノードですぐに関連付けが再実行されます。関連付けが再び実行されると、同時実行数の値が適用されます。
エラーしきい値
関連付けの実行の失敗回数がある値を上回ると、その関連付けが設定された各ノードに、Systems Manager がコマンドを送信します。エラーしきい値には、その値を指定します。このコマンドは、次のスケジュールされた実行まで関連付けの実行を停止します。エラーの絶対数 (10 など) またはターゲットセットのパーセント数 (10% など) を指定できます。
たとえば、エラーの絶対数として 3 を指定した場合、4 番目のエラーが返されると、State Manager は停止コマンドを送信します。0 を指定すると、最初のエラー結果が返された後に State Manager は停止コマンドを送信します。
50 件の関連付けに対して 10% のエラーしきい値を指定した場合、6 番目のエラーが返されると、State Manager は停止コマンドを送信します。エラーのしきい値に達したときにすでに実行中の関連付けについては完了されますが、これらの関連付けのいくつかは失敗する可能性があります。エラーしきい値に指定された数より多くのエラーが発生しないようにするには、[同時実行数] 値を 1 に設定して、関連付けを 1 つずつ進めるようにします。
State Manager エラーしきい値には以下の制限と制約があります。
-
エラーしきい値は、現在の間隔で適用されます。
-
ステップレベルの詳細を含む各エラーに関する情報は、関連付け履歴に記録されます。
-
ターゲットを使用して関連付けを作成することを選択したがエラーしきい値を指定しない場合、State Manager は 100% のエラーのしきい値を自動的に適用します。