チュートリアル: 自動的に SSM Agent を更新するメンテナンスウィンドウを作成する (コンソール)
以下のチュートリアルでは、AWS Systems Manager コンソールを使用してメンテナンスウィンドウを作成する方法を説明します。また、このチュートリアルでは、マネージドノードをターゲットとして登録し、Systems Manager Run Command タスクを登録して SSM Agent を更新する方法を説明します。
開始する前に
次の手順を完了する前に、ユーザーは、設定するノードの管理者アクセス許可を持っているか、AWS Identity and Access Management (IAM) で適切なアクセス権限を付与されている必要があります。また、Systems Manager 用に設定されているハイブリッドおよびマルチクラウド環境で、Linux または Windows Server 用のマネージドノードが少なくとも 1 つ実行されていることを確認します。詳細については、「AWS Systems Manager のセットアップ」を参照してください。
トピック
ステップ 1: メンテナンスウィンドウを作成する (コンソール)
メンテナンスウィンドウを作成するには (コンソール)
AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/
) を開きます。 -
ナビゲーションペインで、[Maintenance Windows] を選択します。
-
[Create maintenance window] を選択します。
-
[名前] に、このメンテナンスウィンドウを識別するためのわかりやすい名前を入力します。
-
(オプション) [説明] に説明を入力します。
-
ノードをがターゲットとして登録されていない場合でも、そのマネージドノードでメンテナンスウィンドウタスクの実行を許可する場合は、[Allow unregistered targets] (未登録ターゲットを許可) を選択します。このオプションを選択すると、タスクをメンテナンスウィンドウに登録する際に、未登録ノードを (ノード ID で) 選択できます。
このオプションを選択しない場合、タスクをメンテナンスウィンドウに登録する際に、事前に登録済みのターゲットを選択する必要があります。
-
次の 3 つのうちいずれかのスケジュールオプションを使用して、メンテナンスウィンドウのスケジュールを指定します。
cron/rate 式の作成の詳細については、「リファレンス: Systems Manager の Cron 式および rate 式」を参照してください。
-
[Duration] に、メンテナンスウィンドウを実行する時間数を入力します。
-
[Stop initiating tasks] に、メンテナンスウィンドウが終了してから新しいタスクの実行のスケジュールが停止されるまでの時間数を入力します。
-
(オプション) [ウィンドウ開始日 - オプション] で、メンテナンスウィンドウをアクティブにする日時を ISO-8601 拡張形式で指定します。これにより、指定した将来の日付までメンテナンスウィンドウのアクティベーションを遅らせることができます。
注記
過去の開始日時を指定することはできません。
-
(オプション) [ウィンドウ終了日 - オプション] で、メンテナンスウィンドウを非アクティブにする場合の日時を ISO-8601 拡張形式で指定します。これにより、メンテナンスウィンドウの実行を停止する将来の日時を設定できるようになります。
-
(オプション) [タイムゾーンのスケジュール - オプション] で、スケジュールされたメンテナンスウィンドウの実行の基準となるタイムゾーンを、IANA (Internet Assigned Numbers Authority) 形式で指定します。例: 「America/Los_Angeles」、「etc/UTC」、または「Asia/Seoul」。
有効な形式の詳細については、IANA ウェブサイトの「Time Zone Database
」を参照してください。 -
(オプション) [タグの管理] 領域で、1 つ以上のタグキーの名前と値のペアをメンテナンスウィンドウに適用します。
タグは、リソースに割り当てるオプションのメタデータです。タグを使用すると、目的、所有者、環境などのさまざまな方法でリソースを分類できます。たとえば、メンテナンスウィンドウにタグを付けて、実行するタスクの種類、ターゲットの種類、実行される環境を指定できます。この場合、以下のキーの名前と値のペアを指定します。
-
Key=TaskType,Value=AgentUpdate
-
Key=OS,Value=Windows
-
Key=Environment,Value=Production
-
-
[Create maintenance window] を選択します。メンテナンスウィンドウのページに戻ります。先ほど作成したメンテナンスウィンドウが [Enabled] になっています。
ステップ 2: メンテナンスウィンドウのターゲットを登録する (コンソール)
次の手順に従って、ステップ 1 で作成したメンテナンスウィンドウにターゲットを登録します。ターゲットを登録することで、更新するノードを指定します。
メンテナンスウィンドウにターゲットを割り当てるには (コンソール)
-
メンテナンスウィンドウのリストで、先ほど作成したメンテナンスウィンドウを選択します。
-
[Actions]、[Register targets] の順に選択します。
-
(オプション) [ターゲット名] にターゲットの名前を入力します。
-
(オプション) [説明] に説明を入力します。
-
(オプション) [所有者情報] に、ユーザーの名前や役職名を指定します。所有者情報は、このメンテナンスウィンドウのターゲットでタスクの実行中に生成されるすべての Amazon EventBridge イベントに含まれます。
EventBridge を使用して Systems Manager イベントをモニタリングする方法については、「Amazon EventBridge を使用して Systems Manager イベントをモニタリングする」を参照してください。
-
[Targets] エリアで、次の表で説明されているオプションのいずれかを選択します。
オプション 説明 インスタンスタグを指定する
[Specify instance tags] (インスタンスタグを指定) ボックスで、アカウントのマネージドノードに追加されている、または追加する 1 つ以上のタグキーと (オプション) 値を指定します。メンテナンスウィンドウが実行されると、これらのタグが追加されたすべてのマネージドノードでタスクが実行されます。
複数のタグキーを指定する場合、ターゲットグループに含めるように指定したすべてのタグキーと値で、ノードにタグ付けする必要があります。
ノードを手動で選択する
リストから、メンテナンスウィンドウターゲットに含めるノードごとにチェックボックスをオンにします。
リストには、Systems Manager で使用するために設定されたアカウントのノードをすべて含めます。
表示されるはずのマネージドノードが表示されない場合は、トラブルシューティングのヒントについて「マネージドノードの可用性のトラブルシューティング」を参照してください。
オンプレミスサーバーのエッジデバイス、および仮想マシン (VM) については、「ハイブリッドおよびマルチクラウド環境での Systems Manager の利用」を参照してください。
リソースグループの選択
[リソースグループ] で、リストからアカウントの既存のリソースグループの名前を選択します。
リソースグループの作成と操作については、次のトピックを参照してください。
-
AWS Resource Groupsユーザーガイドのリソースグループとは何ですか
-
AWS ニュースブログの AWS の Resource Groups とタグ付け
[リソースタイプ] で、最大 5 つの使用可能なリソースタイプを選択するか、[すべてのリソースタイプ] を選択します。
メンテナンスウィンドウに割り当てたタスクが、ターゲットに追加したいずれかのリソースタイプで動作しない場合、システムよりエラーがレポートされる場合があります。これらのエラーにもかかわらず、サポートされているリソースタイプが検出されたタスクは引き続き実行されます。
たとえば、このターゲットに次のリソースタイプを追加するとします。
-
AWS::S3::Bucket
-
AWS::DynamoDB::Table
-
AWS::EC2::Instance
ただし、後でメンテナンスウィンドウにタスクを追加する場合は、パッチベースラインの適用やノードの再起動など、ノードでアクションを実行するタスクのみを含めます。メンテナンスウィンドウログで、Amazon Simple Storage Service (Amazon S3) バケットまたは Amazon DynamoDB テーブルが見つからない場合、エラーがレポートされることがあります。ただし、メンテナンスウィンドウはリソースグループ内のノードでタスクを引き続き実行します。
-
-
[Register target] を選択します。
ステップ 3: SSM Agent を更新するメンテナンスウィンドウに Run Command タスクを登録する (コンソール)
次の手順に従って、ステップ 1 で作成したメンテナンスウィンドウに Run Command タスクを登録します。Run Command タスクは、登録されたターゲットに対して SSM Agent を更新します。
メンテナンスウィンドウにタスクを割り当てるには (コンソール)
-
メンテナンスウィンドウのリストで、先ほど作成したメンテナンスウィンドウを選択します。
-
[アクション] を選択し、[Run Command タスクの登録] を選択します。
-
(オプション) [名前] にタスクの名前を入力します (UpdateSSMAgent など)。
-
(オプション) [説明] に説明を入力します。
-
[コマンドドキュメント] 領域で、SSM コマンドドキュメント
AWS-UpdateSSMAgent
を選択します。注記
前のステップで登録したターゲットが Windows Server 2012 R2 またはそれ以前の場合は、
AWS-UpdateEC2Config
ドキュメントを使用する必要があります。 -
[Document version (ドキュメントのバージョン)] で、使用するドキュメントのバージョンを選択します。
-
[タスクの優先順位] で、このタスクの優先度を指定します。ゼロ (
0
) が最高の優先度になります。メンテナンスウィンドウのタスクは、優先度順にスケジュールされ、優先度が同じタスクは並行してスケジュールされます。 -
[Targets] (ターゲット) セクションで、このオペレーションを実行したいノードを特定します。[Selecting registered target groups] (登録済みターゲットグループの選択) または [Selecting unregistered targets] (未登録ターゲットの選択) を選択してください。
[レート制御] の場合:
-
[同時実行数] の場合、コマンドを同時に実行するマネージドノードの数または割合を指定します。
注記
マネージドノードに適用されるタグを指定するか、AWS リソースグループを指定してターゲットを選択し、ターゲットとなるマネージドノードの数が不明な場合は、割合を指定してドキュメントを同時に実行できるターゲットの数を制限します。
-
[エラーのしきい値] で、ノードの数または割合のいずれかで失敗した後、他のマネージドノードでのコマンドの実行をいつ停止するか指定します。例えば、3 つのエラーを指定した場合、4 番目のエラーが受信されると、Systems Manager はコマンドの送信を停止します。コマンドを処理しているマネージドノードもエラーを送信する可能性があります。
-
-
(オプション) [IAM サービスロール] で、Systems Manager がメンテナンスウィンドウタスクの実行時期を推測するための許可を付与するロールを選択します。
サービスロール ARN を指定しない場合、Systems Manager はアカウントのサービスにリンクされたロールを使用します。アカウントに Systems Manager 用の適切なサービスにリンクされたロールが存在しない場合は、タスクが正常に登録されるとロールが作成されます。
注記
セキュリティ体制を強化するために、メンテナンスウィンドウタスクを実行するためのカスタムポリシーとカスタムサービスロールを作成することを強くお勧めします。ポリシーは、特定のメンテナンスウィンドウタスクに必要なアクセス許可のみを提供するように作成できます。詳細については、「コンソールを使用して、メンテナンスウィンドウのアクセス許可を設定します。」を参照してください。
-
(オプション) [出力オプション] で次のいずれかを実行します。
-
[S3 への書き込みを有効にする] チェックボックスをオンにして、コマンド出力をファイルに保存します。ボックスにバケット名とプレフィックス (フォルダ) 名を入力します。
注記
S3 バケットにデータを書き込む機能を許可する S3 アクセス許可は、このタスクを実行するユーザーではなく、ノードに割り当てられたインスタンスプロファイルに付与されています。詳細については、「Systems Manager に必要なインスタンスのアクセス許可を設定する」を参照してください。さらに、指定された S3 バケットが別の AWS アカウント にある場合は、ノードに関連付けられたインスタンスプロファイルに、そのバケットへの書き込みに必要なアクセス許可があることを確認してください。
-
[CloudWatch 出力] チェックボックスを選択して、Amazon CloudWatch Logs に詳細な出力を書き込みます。CloudWatch Logs のロググループ名を入力します。
-
-
[SNS 通知] セクションでは、必要に応じて Systems Manager を有効にし、Amazon Simple Notification Service (Amazon SNS) を使用してコマンドのステータスに関する通知を送信できます。このオプションを有効にする場合は、以下を指定する必要があります。
-
Amazon SNS 通知を開始する IAM ロール。
-
使用する Amazon SNS トピック。
-
通知を希望する特定のイベントタイプ。
-
コマンドのステータスが変更された場合に受信する通知タイプ。複数のノードに送信されるコマンドでは、[Invocation)] (呼び出し) を選択して、それぞれの呼び出しのステータスが変更されたときに、呼び出しごと (ノードごと) に通知を受け取ります。
-
-
[パラメータ] 領域では、オプションでインストールする SSM Agent の特定のバージョンを指定したり、SSM Agent サービスを以前のバージョンにダウングレードしたりできます。ただし、このチュートリアルではバージョンは提供されません。そのため、SSM Agent は最新のバージョンに更新されます。
-
[Run command タスクの登録] を選択します。