メニュー
Amazon EC2 Systems Manager
ユーザーガイド

メンテナンスウィンドウ CLI のチュートリアル

以下のチュートリアルでは、メンテナンスウィンドウの概念を紹介し、AWS CLI を使用してメンテナンスウィンドウを作成および設定するプロセスについて説明します。Systems Manager 用に設定したテストインスタンスでチュートリアルを実行します。チュートリアルの終了後、テストインスタンスは削除できます。

CLI を使用したメンテナンスウィンドウの作成と設定

AWS CLI を使用してメンテナンスウィンドウを作成および設定するには

  1. AWS CLI をローカルマシンにダウンロードします。

  2. AWS CLI を開き、以下のコマンドを実行して、メンテナンスウィンドウを作成します。このウィンドウは、毎週火曜日の午後 4 時から 4 時間、カットオフを 1 時間として、関連付けなしのターゲットを許可して、実行されます。schedule パラメータの cron 形式での作成の詳細については、「Systems Manager の cron スケジュール」を参照してください。

    Copy
    aws ssm create-maintenance-window --name "My-First-Maintenance-Window" --schedule "cron(0 16 ? * TUE *)" --duration 4 --cutoff 1 --allow-unassociated-targets

    以下のような情報が返されます。

    Copy
    { "WindowId":"mw-ab12cd34ef56gh78" }
  3. 以下のコマンドを実行して、AWS アカウントのすべてのメンテナンスウィンドウを一覧表示します。

    Copy
    aws ssm describe-maintenance-windows

    以下のような情報が返されます。

    Copy
    { "WindowIdentities":[ { "Duration":4, "Cutoff":1, "WindowId":"mw-ab12cd34ef56gh78", "Enabled":true, "Name":"My-First-Maintenance-Window" } ] }
  4. 以下のコマンドを実行して、先ほど作成したインスタンスをこのメンテナンスウィンドウのターゲットとして登録します。メンテナンスウィンドウのターゲット ID が返されます。この ID は、後の手順でこのメンテナンスウィンドウのタスクの登録に使用します。

    Copy
    aws ssm register-target-with-maintenance-window --window-id "mw-ab12cd34ef56gh78" --target "Key=InstanceIds,Values=ID" --owner-information "Single instance" --resource-type "INSTANCE"

    以下のような情報が返されます。

    Copy
    { "WindowTargetId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2" }

    以下のコマンドを使用して、複数のインスタンスを登録できます。

    Copy
    aws ssm register-target-with-maintenance-window --window-id "mw-ab12cd34ef56gh78" --targets "Key=InstanceIds,Values=ID 1,ID 2" --owner-information "Two instances in a list" --resource-type "INSTANCE"

    EC2 タグを使用しても、インスタンスを登録できます。

    Copy
    aws ssm register-target-with-maintenance-window --window-id "mw-ab12cd34ef56gh78" --targets "Key=tag:Environment,Values=Prod" "Key=Role,Values=Web" --owner-information "Production Web Servers" --resource-type "INSTANCE"
  5. 以下のコマンドを使用して、メンテナンスウィンドウのターゲットを表示します。

    Copy
    aws ssm describe-maintenance-window-targets --window-id "mw-ab12cd34ef56gh78"

    以下のような情報が返されます。

    Copy
    { "Targets":[ { "ResourceType":"INSTANCE", "OwnerInformation":"Single instance", "WindowId":"mw-ab12cd34ef56gh78", "Targets":[ { "Values":[ "i-11aa22bb33cc44dd5" ], "Key":"InstanceIds" } ], "WindowTargetId":"a1b2c3d4-a1b2-a1b2-a1b2-a1b2c3d4" }, { "ResourceType":"INSTANCE", "OwnerInformation":"Two instances in a list", "WindowId":"mw-ab12cd34ef56gh78", "Targets":[ { "Values":[ "i-1a2b3c4d5e6f7g8h9", "i-aa11bb22cc33dd44e " ], "Key":"InstanceIds" } ], "WindowTargetId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2" }, { "ResourceType":"INSTANCE", "OwnerInformation":"Production Web Servers", "WindowId":"mw-ab12cd34ef56gh78", "Targets":[ { "Values":[ "Prod" ], "Key":"tag:Environment" }, { "Values":[ "Web" ], "Key":"tag:Role" } ], "WindowTargetId":"1111aaa-2222-3333-4444-1111aaa " } ] }
  6. 以下のコマンドを実行して、先ほど作成したインスタンスに対するタスクを登録します。このタスクでは、Systems Manager の Run Command により、AWS-RunShellScript ドキュメントを使用して df コマンドを実行します。このコマンドでは、以下のパラメータを使用します。

    • targets: Key=WindowTargetIds,Values=Window Target ID を指定して、メンテナンスウィンドウに登録されているターゲットを指定するか、Key=InstanceIds,Values=Instance ID を指定して、メンテナンスウィンドウに登録されているインスタンスを指定します。

    • task-arn: Systems Manager Run Command ドキュメントの名前を指定します。たとえば、AWS-RunShellScript、AWS-RunPowerShellScript、または arn:aws:ssm:us-east-1:123456789:document/Restart_Apache (共有ドキュメントの場合) になります。

    • window-id: ターゲットメンテナンスウィンドウの ID を指定します。

    • task-type: RUN_COMMAND を指定します。現在、Run Command タスクのみがサポートされています。

    • task-parameters: Run Command ドキュメントの必須パラメータとオプションパラメータを指定します。

    • max-concurrency: (オプション) コマンドを同時に実行できるインスタンスの最大数を指定します。10 などの数値や 10% などの割合を指定できます。

    • max-errors: (オプション) コマンドが失敗となるまでに許容されるエラーの最大数を指定します。コマンドが MaxErrors の値を超えてもう一度失敗すると、追加のターゲットへのコマンドの送信が停止されます。10 などの数値や 10% などの割合を指定できます。

    • priority: メンテナンスウィンドウのタスクの優先度を指定します。数値が小さいほど優先度が高くなります (たとえば、1 が最高の優先度です)。メンテナンスウィンドウのタスクは、優先順位に従ってスケジュールされます。優先度が同じタスクは並行してスケジュールされます。

    Copy
    aws ssm register-task-with-maintenance-window --window-id mw-ab12cd34ef56gh78 --task-arn "AWS-RunShellScript" --targets "Key=InstanceIds,Values=Instance ID" --service-role-arn "arn:aws:iam::1122334455:role/MW-Role" --task-type "RUN_COMMAND" --task-parameters "{\"commands\":{\"Values\":[\"df\"]}}" --max-concurrency 1 --max-errors 1 --priority 10

    以下のような情報が返されます。

    Copy
    { "WindowTaskId":"44444444-5555-6666-7777-88888888" }

    メンテナンスウィンドウのターゲット ID を使用しても、タスクを登録できます。メンテナンスウィンドウのターゲット ID は、先ほどのコマンドから返されました。

    Copy
    aws ssm register-task-with-maintenance-window --targets "Key=WindowTargetIds,Values=Window Target ID" --task-arn "AWS-RunShellScript" --service-role-arn "arn:aws:iam::1122334455:role/MW-Role" --window-id "mw-ab12cd34ef56gh78" --task-type "RUN_COMMAND" --task-parameters "{\"commands\":{\"Values\":[\"df\"]}}" --max-concurrency 1 --max-errors 1 --priority 10

    以下のような情報が返されます。

    Copy
    { "WindowTaskId":"44444444-5555-6666-7777-88888888" }
  7. 以下のコマンドを実行して、メンテナンスウィンドウのすべての登録されたタスクを一覧表示します。

    Copy
    aws ssm describe-maintenance-window-tasks --window-id "mw-ab12cd34ef56gh78"

    以下のような情報が返されます。

    Copy
    { "Tasks":[ { "ServiceRoleArn":"arn:aws:iam::11111111:role/MW-Role", "MaxErrors":"1", "TaskArn":"AWS-RunPowerShellScript", "MaxConcurrency":"1", "WindowTaskId":"3333-3333-3333-333333", "TaskParameters":{ "commands":{ "Values":[ "driverquery.exe" ] } }, "Priority":3, "Type":"RUN_COMMAND", "Targets":[ { "Values":[ "i-1a2b3c4d5e6f7g8h9" ], "Key":"InstanceIds" } ] }, { "ServiceRoleArn":"arn:aws:iam::2222222222:role/MW-Role", "MaxErrors":"1", "TaskArn":"AWS-RunPowerShellScript", "MaxConcurrency":"1", "WindowTaskId":"44444-44-44-444444", "TaskParameters":{ "commands":{ "Values":[ "ipconfig.exe" ] } }, "Priority":1, "Type":"RUN_COMMAND", "Targets":[ { "Values":[ "555555-55555-555-5555555" ], "Key":"WindowTargetIds" } ] } ] }
  8. 以下のコマンドを実行して、特定のメンテナンスウィンドウのタスクの実行を一覧表示します。

    Copy
    aws ssm describe-maintenance-window-executions --window-id "mw-ab12cd34ef56gh78"

    以下のような情報が返されます。

    Copy
    { "WindowExecutions":[ { "Status":"SUCCESS", "WindowExecutionId":"1111-1111-1111-11111", "StartTime":1478230495.469 }, { "Status":"SUCCESS", "WindowExecutionId":"2222-2-2-22222222-22", "StartTime":1478231395.677 }, # ... omitting a number of entries in the interest of space... { "Status":"SUCCESS", "WindowExecutionId":"33333-333-333-3333333", "StartTime":1478272795.021 }, { "Status":"SUCCESS", "WindowExecutionId":"4444-44-44-44444444", "StartTime":1478273694.932 } ], "NextToken":111111 ..." }
  9. 以下のコマンドを実行して、メンテナンスウィンドウのタスクの実行に関する情報を取得します。

    Copy
    aws ssm get-maintenance-window-execution --window-execution-id "1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2"

    以下のような情報が返されます。

    Copy
    { "Status":"SUCCESS", "TaskIds":[ "333-33-3333-333333" ], "StartTime":1478230495.472, "EndTime":1478230516.505, "WindowExecutionId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2" }
  10. 以下のコマンドを実行して、メンテナンスウィンドウの実行の一部として実行されるタスクを一覧表示します。

    Copy
    aws ssm describe-maintenance-window-execution-tasks --window-execution-id "1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2"

    以下のような情報が返されます。

    Copy
    { "WindowExecutionTaskIdentities":[ { "Status":"SUCCESS", "EndTime":1478230516.425, "StartTime":1478230495.782, "TaskId":"33333-333-333-3333333" } ] }
  11. 以下のコマンドを実行して、タスクの実行の詳細を取得します。

    Copy
    aws ssm get-maintenance-window-execution-task --window-execution-id "555555-555-55-555555" --task-id "4444-4444-4444-444444"

    以下のような情報が返されます。

    Copy
    { "Status":"SUCCESS", "MaxErrors":"1", "TaskArn":"AWS-RunPowerShellScript", "MaxConcurrency":"1", "ServiceRole":"arn:aws:iam::333333333:role/MW-Role", "WindowExecutionId":"555555-555-55-555555", "Priority":0, "StartTime":1478230495.782, "EndTime":1478230516.425, "Type":"RUN_COMMAND", "TaskParameters":[ ], "TaskExecutionId":"4444-4444-4444-444444" }
  12. 以下のコマンドを実行して、タスクの実行のために行われた特定のタスク呼び出しを取得します。

    Copy
    aws ssm describe-maintenance-window-execution-task-invocations --window-execution-id "555555-555-55-555555" --task-id "4444-4444-4444-444444"

    以下のような情報が返されます。

    Copy
    { "WindowExecutionTaskInvocationIdentities":[ { "Status":"SUCCESS", "Parameters":"{\" documentName \" : \" AWS-RunPowerShellScript \" , \" instanceIds \" :[ \" i-1a2b3c4d5e6f7g8h9 \" , \" i-0a 00def7faa94f1dc \" ], \" parameters \" :{ \" commands \" :[ \" ipconfig.exe \" ]}, \" maxConcurrency \" : \" 1 \" , \" maxErrors \" : \" 1 \" }", "ExecutionId":"555555-555-55-555555", "InvocationId":"3333-33333-3333-33333", "StartTime":1478230495.842, "EndTime":1478230516.291 } ] }

追加のメンテナンスウィンドウ設定コマンド

このセクションでは、メンテナンスウィンドウ、タスク、実行、呼び出しに関する情報の更新や取得に役立つコマンドについて説明します。

AWS Account のすべてのメンテナンスウィンドウを一覧表示する

Copy
aws ssm describe-maintenance-windows

以下のような情報が返されます。

Copy
{ "WindowIdentities":[ { "Duration":2, "Cutoff":0, "WindowId":"mw-ab12cd34ef56gh78", "Enabled":true, "Name":"IAD-Every-15-Minutes" }, { "Duration":4, "Cutoff":1, "WindowId":"mw-1a2b3c4d5e6f7g8h9", "Enabled":true, "Name":"My-First-Maintenance-Window" }, { "Duration":8, "Cutoff":2, "WindowId":"mw-123abc456def789", "Enabled":false, "Name":"Every-Day" } ] }

有効なすべてのメンテナンスウィンドウを一覧表示する

Copy
aws ssm describe-maintenance-windows --filters "Key=Enabled,Values=true"

以下のような情報が返されます。

Copy
{ "WindowIdentities":[ { "Duration":2, "Cutoff":0, "WindowId":"mw-ab12cd34ef56gh78", "Enabled":true, "Name":"IAD-Every-15-Minutes" }, { "Duration":4, "Cutoff":1, "WindowId":"mw-1a2b3c4d5e6f7g8h9", "Enabled":true, "Name":"My-First-Maintenance-Window" } ] }

無効なすべてのメンテナンスウィンドウを一覧表示する

Copy
aws ssm describe-maintenance-windows --filters "Key=Enabled,Values=false"

以下のような情報が返されます。

Copy
{ "WindowIdentities":[ { "Duration":8, "Cutoff":2, "WindowId":"mw-1a2b3c4d5e6f7g8h9", "Enabled":false, "Name":"Every-Day" } ] }

名前に基づいてフィルタリングする

この例では、「My」で始まる名前のすべてのメンテナンスウィンドウが返されます。

Copy
aws ssm describe-maintenance-windows --filters "Key=Name,Values=My"

以下のような情報が返されます。

Copy
{ "WindowIdentities":[ { "Duration":4, "Cutoff":1, "WindowId":"mw-1a2b3c4d5e6f7g8h9", "Enabled":true, "Name":"My-First-Maintenance-Window" } ] }

メンテナンスウィンドウを変更する

Name、Schedule、Duration、Cutoff、AllowUnassociatedTargets、Enabled の各パラメータを変更できます。以下の例では、name の値を変更しています。

Copy
aws ssm update-maintenance-window --window-id "mw-1a2b3c4d5e6f7g8h9" --name "My-Renamed-MW"

以下のような情報が返されます。

Copy
{ "Cutoff": 1, "Name": "My-Renamed-MW", "Schedule": "cron(0 16 ? * TUE *)", "Enabled": true, "AllowUnassociatedTargets": true, "WindowId": "mw-1a2b3c4d5e6f7g8h9", "Duration": 4 }

関連付けなしのターゲットのパラメータを変更する

Copy
aws ssm update-maintenance-window --window-id "mw-1a2b3c4d5e6f7g8h9" --no-allow-unassociated-targets

以下のような情報が返されます。

Copy
{ "Cutoff": 2, "Name": "Every-Tuesday-4pm", "Schedule": "cron(0 16 ? * TUE *)", "Enabled": true, "AllowUnassociatedTargets": false, "WindowId": "mw-1a2b3c4d5e6f7g8h9", "Duration": 8 }
Copy
aws ssm update-maintenance-window --window-id "mw-1a2b3c4d5e6f7g8h9" --allow-unassociated-targets --no-enabled

以下のような情報が返されます。

Copy
{ "Cutoff": 2, "Name": "Every-Tuesday-4pm", "Schedule": "cron(0 16 ? * TUE *)", "Enabled": false, "AllowUnassociatedTargets": true, "WindowId": "mw-1a2b3c4d5e6f7g8h9", "Duration": 8 }

特定の所有者情報の値に一致するメンテナンスウィンドウのターゲットを表示する

Copy
aws ssm describe-maintenance-window-targets --window-id "mw-ab12cd34ef56gh78" --filters "Key=OwnerInformation,Values=Single instance"

以下のような情報が返されます。

Copy
{ "Targets":[ { "TargetType":"INSTANCE", "TagFilters":[ ], "TargetIds":[ "i-1a2b3c4d5e6f7g8h9" ], "WindowTargetId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2", "OwnerInformation":"Single instance" } ] }

AWS-RunPowerShellScript の Run Command を呼び出すすべての登録されたタスクを表示する

Copy
aws ssm describe-maintenance-window-tasks --window-id "mw-ab12cd34ef56gh78" --filters "Key=TaskArn,Values=AWS-RunPowerShellScript"

以下のような情報が返されます。

Copy
{ "Tasks":[ { "ServiceRoleArn":"arn:aws:iam::444444444444:role/MW-Role", "MaxErrors":"1", "TaskArn":"AWS-RunPowerShellScript", "MaxConcurrency":"1", "WindowTaskId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6c", "TaskParameters":{ "commands":{ "Values":[ "driverquery.exe" ] } }, "Priority":3, "Type":"RUN_COMMAND", "Targets":[ { "TaskTargetId":"i-1a2b3c4d5e6f7g8h9", "TaskTargetType":"INSTANCE" } ] }, { "ServiceRoleArn":"arn:aws:iam::333333333333:role/MW-Role", "MaxErrors":"1", "TaskArn":"AWS-RunPowerShellScript", "MaxConcurrency":"1", "WindowTaskId":"33333-33333-333-33333", "TaskParameters":{ "commands":{ "Values":[ "ipconfig.exe" ] } }, "Priority":1, "Type":"RUN_COMMAND", "Targets":[ { "TaskTargetId":"44444-444-4444-444444", "TaskTargetType":"WINDOW_TARGET" } ] } ] }

優先度 3 のすべての登録されたタスクを表示する

Copy
aws ssm describe-maintenance-window-tasks --window-id "mw-ab12cd34ef56gh78" --filters "Key=Priority,Values=3"

以下のような情報が返されます。

Copy
{ "Tasks":[ { "ServiceRoleArn":"arn:aws:iam::222222222:role/MW-Role", "MaxErrors":"1", "TaskArn":"AWS-RunPowerShellScript", "MaxConcurrency":"1", "WindowTaskId":"333333-333-33333-33333", "TaskParameters":{ "commands":{ "Values":[ "driverquery.exe" ] } }, "Priority":3, "Type":"RUN_COMMAND", "Targets":[ { "TaskTargetId":"i-1a2b3c4d5e6f7g8h9", "TaskTargetType":"INSTANCE" } ] } ] }

Run Command を使用する優先度 1 のすべての登録されたタスクを表示する

Copy
aws ssm describe-maintenance-window-tasks --window-id "mw-ab12cd34ef56gh78" --filters "Key=Priority,Values=1" "Key=TaskType,Values=RUN_COMMAND"

以下のような情報が返されます。

Copy
{ "Tasks":[ { "ServiceRoleArn":"arn:aws:iam::333333333:role/MW-Role", "MaxErrors":"1", "TaskArn":"AWS-RunPowerShellScript", "MaxConcurrency":"1", "WindowTaskId":"66666-555-66-555-6666", "TaskParameters":{ "commands":{ "Values":[ "ipconfig.exe" ] } }, "Priority":1, "Type":"RUN_COMMAND", "Targets":[ { "TaskTargetId":"777-77-777-7777777", "TaskTargetType":"WINDOW_TARGET" } ] } ] }

日付の前に実行されたすべてのタスクを一覧表示する

Copy
aws ssm describe-maintenance-window-executions --window-id "mw-ab12cd34ef56gh78" --filters "Key=ExecutedBefore,Values=2016-11-04T05:00:00Z"

以下のような情報が返されます。

Copy
{ "WindowExecutions":[ { "Status":"SUCCESS", "EndTime":1478229594.666, "WindowExecutionId":"", "StartTime":1478229594.666 }, { "Status":"SUCCESS", "WindowExecutionId":"06dc5f8a-9ef0-4ae9-a466-ada2d4ce2d22", "StartTime":1478230495.469 }, { "Status":"SUCCESS", "WindowExecutionId":"57ad6419-023e-44b0-a831-6687334390b2", "StartTime":1478231395.677 }, { "Status":"SUCCESS", "WindowExecutionId":"ed1372b7-866b-4d64-bc2a-bbfd5195f4ae", "StartTime":1478232295.529 }, { "Status":"SUCCESS", "WindowExecutionId":"154eb2fa-6390-4cb7-8c9e-55686b88c7b3", "StartTime":1478233195.687 }, { "Status":"SUCCESS", "WindowExecutionId":"1c4de752-eff6-4778-b477-1681c6c03cf1", "StartTime":1478234095.553 }, { "Status":"SUCCESS", "WindowExecutionId":"56062f75-e4d8-483f-b5c2-906d613409a4", "StartTime":1478234995.12 } ] }

日付の後に実行されたすべてのタスクを一覧表示する

Copy
aws ssm describe-maintenance-window-executions --window-id "mw-ab12cd34ef56gh78" --filters "Key=ExecutedAfter,Values=2016-11-04T17:00:00Z"

以下のような情報が返されます。

Copy
{ "WindowExecutions":[ { "Status":"SUCCESS", "WindowExecutionId":"33333-4444-444-5555555", "StartTime":1478279095.042 }, { "Status":"SUCCESS", "WindowExecutionId":"55555-6666-6666-777777", "StartTime":1478279994.958 }, { "Status":"SUCCESS", "WindowExecutionId":"8888-888-888-888888", "StartTime":1478280895.149 } ] }

メンテナンスウィンドウからターゲットを削除する

Copy
aws ssm deregister-target-from-maintenance-window --region an SSM region --window-id "mw-ab12cd34ef56gh78" --window-target-id "1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2"

以下のような情報が返されます。

Copy
{ "WindowId":"mw-ab12cd34ef56gh78", "WindowTargetId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2" }

メンテナンスウィンドウからタスクを削除する

Copy
aws ssm deregister-task-from-maintenance-window --window-id "mw-ab12cd34ef56gh78" --window-task-id "1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6c"

以下のような情報が返されます。

Copy
{ "WindowTaskId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6c", "WindowId":"mw-ab12cd34ef56gh78" }

メンテナンスウィンドウを削除する

Copy
aws ssm delete-maintenance-window --window-id "mw-1a2b3c4d5e6f7g8h9"

以下のような情報が返されます。

Copy
{ "WindowId":"mw-1a2b3c4d5e6f7g8h9" }