State Manager の仕組みについて
AWS Systems Manager の機能である State Manager は、ハイブリッドおよびマルチクラウドインフラストラクチャ内のマネージドノードを定義した状態に維持するプロセスを自動化する、安全でスケーラブルなサービスです。
State Manager の仕組みを以下に示します。
- 1. AWS リソースに適用する状態を決定します。
-
マネージドノードが、アンチウイルスやマルウェアのアプリケーションなど、特定のアプリケーションを使用して設定されるようにしたいですか? SSM Agent、または
AWSPVDriver
などの他の AWS パッケージを更新するプロセスを自動化しますか? 特定のポートが確実に閉じられている、または開かれているようにする必要がおありですか? State Manager の使用を開始するには、AWS リソースに適用する状態を決定します。適用する状態では、どの SSM ドキュメントを使用して State Manager の関連付けを作成するか決定します。State Manager 関連付け とは、AWS リソースに割り当てる設定です。この設定では、リソースで維持したい状態を定義します。例えば、関連付けでは、アンチウイルスソフトウェアがマネージドノードにインストールされて実行されている必要があることや、特定のポートを閉じる必要があることなどを指定できます。
関連付けでは、設定を適用するスケジュールと、関連付けのターゲットを指定します。例えば、アンチウイルスソフトウェアに関する関連付けが AWS アカウントのすべてのマネージドノードで 1 日に 1 回実行されるとします。ソフトウェアがノードにインストールされていない場合、関連付けによって State Manager にインストールするように指示することができます。ソフトウェアがインストールされていてもサービスが実行されていない場合、関連付けによって State Manager にサービスを開始するように指示することができます。
- 2. 事前設定された SSM ドキュメントが、AWS リソースで目的の状態の作成に役立つかどうかを確認します。
-
Systems Manager には、関連付けの作成に使用できる事前設定された SSM ドキュメントが何十も含まれています。事前設定されたドキュメントでは、アプリケーションのインストール、Amazon CloudWatch の設定、AWS Systems Manager Automation の実行、PowerShell および Shell スクリプトの実行、マネージドノードを Active Directory のディレクトリサービスドメインに結合することなどの一般的なタスクがすぐに実行できるようになっています。
Systems Manager コンソール
ですべての SSM ドキュメントを表示できます。ドキュメントの名前を選択して各ドキュメントの詳細について確認します。ここでは、 AWS-ConfigureAWSPackage
と AWS-InstallApplication
の 2 つの例を示します。 - 3. 関連付けを作成します。
-
関連付けは、Systems Manager コンソール、AWS Command Line Interface (AWS CLI)、AWS Tools for Windows PowerShell (Tools for Windows PowerShell)、または Systems Manager API を使用して作成できます。関連付けを作成するときは、以下の情報を指定します。
-
関連付けの名前。
-
SSM ドキュメントのパラメータ (例えば、インストールするアプリケーションへのパス、またはノードで実行するスクリプト)。
-
関連付けのターゲット。マネージドノードをターゲットにするには、タグを指定するか、個々のノード ID を選択するか、AWS Resource Groups でグループを選択します。現在の AWS リージョン と AWS アカウント 内にあるすべてのマネージドノードをターゲットにすることもできます。
-
状態を適用する時期または頻度のスケジュール。cron 式またはレート式を指定できます。cron および rate 式を使用したスケジュールの作成の詳細については、「関連付のための cron および rate 式」を参照してください。
注記
現在、State Manager では、関連付けの cron 式での月の指定はサポートされていません。
関連付けを作成するコマンドを実行すると、Systems Manager は指定した情報 (スケジュール、ターゲット、SSM ドキュメント、パラメータ) をターゲットのリソースにバインドします。システムがすべてのターゲットに接続しようとすると関連付けのステータスは最初 [Pending (保留)] と表示され、関連付けで指定された状態を 即時に適用します。
注記
以前の関連付けがまだ実行中に、新しく作成した関連付けを実行するようにスケジュールすると、以前の関連付けはタイムアウトし、新しい関連付けが実行されます。
Systems Manager は、リソースの関連付けを作成するリクエストのステータスをレポートします。ステータスの詳細は、コンソールまたは (マネージドノードについては) DescribeInstanceAssociationsStatus API オペレーションを使用して表示できます。関連付けの作成時に Amazon Simple Storage Service (Amazon S3) にコマンドの出力を書き込むことを選択した場合、指定した Amazon S3 バケットで出力を表示することもできます。
詳細については、「Systems Manager の関連付けの使用」を参照してください。
注記
関連付けの実行中に SSM ドキュメントによって開始される API オペレーションは、AWS CloudTrail でログ記録されません。
-
- 4. モニタリングと更新。
-
関連付けが作成されると、State Manager は、関連付けで定義されたスケジュールに従って設定を再適用します。関連付けのステータスは、コンソールの State Manager ページ
で、または関連付けを作成したときに Systems Manager によって生成された関連付け ID を直接呼び出すことで表示できます。詳細については、「関連付けの履歴の表示」を参照してください。関連付けドキュメントを更新して、必要に応じて再適用できます。関連付けの複数のバージョンを作成することもできます。詳細については、「関連付けの編集と新しいバージョンの作成」を参照してください。
関連付けがリソースに適用されるタイミングについて
関連付けの作成時に、設定を定義する SSM ドキュメント、ターゲットリソースのリスト、および設定を適用するためのスケジュールを指定します。デフォルトでは、State Manager は関連付けを、作成時およびスケジュールに従って実行します。さらに State Manager は次の状況でも関連付けの実行を試行します。
-
関連付けの編集 – State Manager はユーザーが編集し、それらの変更を次の関連付けフィールド:
DOCUMENT_VERSION
、PARAMETERS
、SCHEDULE_EXPRESSION
、OUTPUT_S3_LOCATION
のいずれかに保存した後に関連付けを実行します。 -
ドキュメントの編集 – State Manager はユーザーが編集し、関連付けの設定状態に定義するSSM ドキュメントに変更を保存した後に関連付けを実行します。具体的には、関連付けは、ドキュメントに対する以下の編集の後に実行されます。
-
ユーザーが新しい
$DEFAULT
ドキュメントバージョンを指定し、$DEFAULT
バージョンを使用して関連付けが作成された。 -
ユーザーがドキュメントを更新し、
$LATEST
バージョンを使用して関連付けが作成された。 -
ユーザーは、関連付けの作成時に指定されたドキュメントを削除します。
-
-
手動開始 — State Manager は、ユーザーが Systems Manager コンソールまたはプログラムのいずれかから開始したときに関連付けを実行します。
-
ターゲットの変更 — State Manager ターゲットノードで次のいずれかのアクティビティが発生した後に関連付けを実行します。
-
マネージドノードが初めてオンラインになります。
-
スケジュールされた関連付けの実行を逃した後、マネージドノードがオンラインになります。
-
30 日以上停止された後、マネージドノードがオンラインになります。
-
Automation ランブックによるターゲット更新について
新しいターゲットノードが検出されたときに、Automation ランブックで作成された関連付けを適用するには、以下の条件が満たされている必要があります。
-
Quick Setup 設定によって関連付けを作成する必要があります。Quick Setup は、AWS Systems Manager の一機能です。他のプロセスによって作成された関連付けは、現時点ではサポートされていません。
-
Automation ランブックは、リソースタイプ
AWS::EC2::Instance
またはAWS::SSM::ManagedInstance
を明示的にターゲットにする必要があります。 -
関連付けには、パラメータとターゲットの両方を指定する必要があります。
レート制御実行を選択すると、コンソールに [パラメータ] フィールドと [ターゲット] フィールドが表示されます。
CreateAssociation、CreateAssociationBatch、UpdateAssociation の API オペレーションを使用するときに、
AutomationTargetParameterName
とTargets
の入力を使用してこれらの値を指定できます。