SSM PatchManager の Patch Now / (パッチ適応(いますぐ適用))を複数台で同時実行する方法を教えてください
困っていること
SSM PatchManager の Patch Now / (パッチ適応(いますぐ適用))を複数台で実行しました。
しかしながら 1 台ずつ順番に Scan and install 実行されているため、弊社運用要件に合わせて全て同時実行させたいです。
方法があれば教えてください。
どう対応すればいいの?
PatchManager のマネジメントコンソール画面より Patch Now / (パッチ適応(いますぐ適用)) から実行した場合、同時実行数設定といったレート制御は叶いません。仕様としてレート制御は以下の設定値で実行されます。
- 同時実行数 : 1
- エラーのしきい値 : 1
代替案
初めて PatchManager のマネジメントコンソール画面より Patch Now / (パッチ適応(いますぐ適用)) から実行した際、裏側ではステートマネージャーと関連付けが行われます。
より具体的には、関連付けの名前: AWS-PatchNowAssociation とドキュメント名: AWS-RunPatchBaseline が関連付けされています。
そのため、こちらを利用して対象ステートマネージャー関連 ID よりレート制御のセクションで、同時実行数をターゲット対象の EC2 インスタンス数と同数に設定を行えば可能です。
なお、こちらの方法でも PatchManager のダッシュボードへ問題なく反映されるためご安心ください。
同時実行数は、一度に特定の数のノードだけが関連付けを処理できるよう指定することで、ノードへの影響を制限するのに役立ちます。ノードの絶対数 (20 など) またはノードのターゲットセットの割合 (10% など) を指定できます。
やってみた
今回は検証のため、マネージドノードに登録されるように 3 台の EC2 インスタンスを起動しました。
PatchManager のマネジメントコンソール画面より Patch Now / (パッチ適応(いますぐ適用)) をクリックします。
起動した Test-Server 1 台のみを対象に Scan and install を実行します。
関連付けがされたので、完了するまでしばらく待ちます。
完了しました。もちろん他 2 台については Scan and install はされていません。
ステートマネージャーを確認します。想定通りに関連付けされています。
また、同時実行数は 1 であり、エラーのしきい値は 1 であることも確認できました。
では、こちらの対象ステートマネージャー関連 ID より編集を行います。
関連付けの詳細の指定、ドキュメント、パラメーターは変更せずそのままに、ターゲットの選択にて EC2 インスタンス を新たに選択します。
スケジュールを指定のセクションでは、スケジュールなしを選択します。
その後、Scan and install 時に同時実行されるように、レート制御します。新たに選択した EC2 インスタンス数に設定します。今回のケースでは 2 と設定しました。
これで、設定は終了です。関連付けのバージョンが 2 となっています。
ステータスが「成功」になったので、PatchManager のマネジメントコンソールを確認します。
PatchManager のダッシュボード側にも反映されていることを確認できました。
補足
今後の運用で必要のない、例えば Test-Server を削除すれば、自動的に PatchManager のダッシュボード側も反映されません。