チュートリアル: SSM Agent を更新するメンテナンスウィンドウを作成する (AWS CLI)
以下のチュートリアルでは、AWS Command Line Interface (AWS CLI) を使用して 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 CLI を使用してコマンドを実行します。
まだ AWS Command Line Interface (AWS CLI) をインストールして設定していない場合は、インストールして設定します。
詳細については、「AWS CLI の最新バージョンをインストールまたは更新します。」を参照してください。
-
ノードをメンテナンスウィンドウのターゲットとして登録する準備ができていることを確認します。
次のコマンドを実行して、どのノードがオンラインかを確認します。
aws ssm describe-instance-information --query "InstanceInformationList[*]"
特定のノードについての詳細を表示するには、次のコマンドを実行します。
aws ssm describe-instance-information --instance-information-filter-list key=InstanceIds,valueSet=
instance-id
ステップ 2: メンテナンスウィンドウを作成する
次の手順を使用してメンテナンスウィンドウを作成し、スケジュールや所要時間などの基本的なオプションを指定します。
メンテナンスウィンドウ (AWS CLI) の作成
-
AWS CLI を開き、次のコマンドを実行して、米国太平洋標準時で、毎週日曜日の午前 2 時に実行されるメンテナンスウィンドウを作成します。カットオフは 1 時間です。
schedule
パラメータの cron 式での作成の詳細については、「リファレンス: Systems Manager の Cron 式および rate 式」を参照してください。メンテナンスウィンドウのスケジュールに関するオプションの相互関係については、「メンテナンスウィンドウのスケジューリングおよび有効期間のオプション」を参照してください。
--schedule
オプションの使用方法の詳細については、「リファレンス: Systems Manager の Cron 式および rate 式」を参照してください。システムが以下のような情報を返します。
{ "WindowId":"mw-0c50858d01EXAMPLE" }
-
現在の AWS リージョン の AWS アカウント で作成されたこのメンテナンスウィンドウおよび他のメンテナンスウィンドウを一覧表示するには、次のコマンドを実行します。
aws ssm describe-maintenance-windows
システムが以下のような情報を返します。
{ "WindowIdentities": [ { "Cutoff": 1, "Name": "My-First-Maintenance-Window", "NextExecutionTime": "2019-02-03T02:00-08:00", "Enabled": true, "WindowId": "mw-0c50858d01EXAMPLE", "Duration": 2 } ] }
ステップ 3: メンテナンスウィンドウのターゲットを登録する (AWS CLI)
次の手順に従って、ステップ 2 で作成したメンテナンスウィンドウにターゲットを登録します。ターゲットを登録することで、更新するノードを指定します。
メンテナンスウィンドウのターゲットを登録するには (AWS CLI)
-
以下のコマンドを実行します。各
リソースプレースホルダーの例
をユーザー自身の情報に置き換えます。以下のような情報が返されます。これには、メンテナンスウィンドウのターゲット ID が含まれます。
WindowTargetId
値をコピーするか、メモします。このメンテナンスウィンドウにタスクを登録するには、次のステップでこの ID を指定する必要があります。{ "WindowTargetId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2" }
代替コマンド
次のコマンドを使用して、複数のマネージドノードを登録します。
タグを使用してノードを登録するには、次のコマンドを使用します。
-
以下のコマンドを実行して、メンテナンスウィンドウのターゲットを表示します。
aws ssm describe-maintenance-window-targets --window-id "
mw-0c50858d01EXAMPLE
"システムが以下のような情報をレスポンスします。
{ "Targets": [ { "ResourceType": "INSTANCE", "WindowId": "mw-0c50858d01EXAMPLE", "Targets": [ { "Values": [ "i-02573cafcfEXAMPLE" ], "Key": "InstanceIds" } ], "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" }, { "ResourceType": "INSTANCE", "WindowId": "mw-0c50858d01EXAMPLE", "Targets": [ { "Values": [ "Prod" ], "Key": "tag:Environment" }, { "Values": [ "Web" ], "Key": "tag:Role" } ], "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" } ] }
ステップ 4: SSM Agent を更新するメンテナンスウィンドウに Run Command タスクを登録する
次の手順に従って、ステップ 1 で作成したメンテナンスウィンドウに Run Command タスクを登録します。Run Command タスクは、登録されたターゲットに対して SSM Agent を更新します。
SSM Agent を更新するメンテナンスウィンドウに Run Command タスクを登録するには (AWS CLI)
-
次のコマンドを実行して、ステップ 3 の
WindowTargetId
値を使用してメンテナンスウィンドウの Run Command タスクを登録します。各リソースプレースホルダーの例
をユーザー自身の情報に置き換えます。このタスクは、AWS-UpdateSSMAgent
ドキュメントを使用して SSM Agent を更新します。注記
前のステップで登録したターゲットが Windows Server 2012 R2 またはそれ以前の場合は、
AWS-UpdateEC2Config
ドキュメントを使用する必要があります。システムが以下のような情報を返します。
{ "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" }
-
以下のコマンドを実行して、メンテナンスウィンドウの登録されたすべてのタスクを一覧表示します。
aws ssm describe-maintenance-window-tasks --window-id "
mw-0c50858d01EXAMPLE
"システムが以下のような情報をレスポンスします。
{ "Tasks": [ { "ServiceRoleArn": "arn:aws:iam::111122223333:role/MW-Role", "MaxErrors": "1", "TaskArn": "AWS-UpdateSSMAgent", "MaxConcurrency": "1", "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE", "TaskParameters": {}, "Priority": 10, "WindowId": "mw-0c50858d01EXAMPLE", "Type": "RUN_COMMAND", "Targets": [ { "Values": [ "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ], "Key": "WindowTargetIds" } ], "Name": "UpdateSSMAgent" } ] }