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

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

以下のチュートリアルを使用して、AWS CLI を使用してメンテナンスウィンドウを作成、設定、更新します。これらのチュートリアルを行う前に、メンテナンスウィンドウのロールとアクセス権限を設定する必要があります。詳細については、「メンテナンスウィンドウへのアクセスの制御」を参照してください。

メンテナンスウィンドウの作成と設定

以下のチュートリアルでは、AWS 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 コマンドを実行します。また、別の例で示すように、Systems Manager Automation、AWS Lambda、および AWS Step Functions を使用するタスクも指定できます。タスクを登録する際に、次のパラメータを指定できます。

    • targets: Key=WindowTargetIds,Values=IDs を指定して、メンテナンスウィンドウに登録されているターゲットを指定します。Key=InstanceIds,Values=IDs を指定すると、メンテナンスウィンドウに登録されているかどうかにかかわらず個別のインスタンスをターゲットにします。

    • task-arn: タスクが実行中に使用するリソース。RUN_COMMAND タイプおよびオートメーションタスクタイプでは、TaskArn は SSM ドキュメント名または ARN です。LAMBDA タスクでは、関数名または ARN です。STEP_FUNCTION タスクでは、ステートマシンの ARN です。

    • window-id: ターゲットメンテナンスウィンドウの ID。

    • task-type: タスクのタイプ。タイプは、次のいずれかになります: RUN_COMMANDAUTOMATIONLAMBDA、または STEP_FUNCTION

    • task-invocation-parameters: 必須およびオプションのパラメータ. 一部の共通 task-invocation-parameters パラメータを次の一覧に示します。

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

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

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

    task-invocation-parameters の共通パラメータ

    次の一覧では、task-invocation-parameters を使用する場合に指定できる共通パラメータの一部を紹介します。このセクションの例に示すように、{{ PARAMETER_NAME }} 構文を使用してこれらのパラメータを指定します。

    • TARGET_ID: ターゲットの ID。ターゲットタイプがインスタンス (現在唯一サポートされているタイプ) の場合、ターゲット ID はインスタンス ID です。

    • TARGET_TYPE: ターゲットのタイプ。現在は、インスタンスのみがサポートされています。

    • WINDOW_ID: ターゲットメンテナンスウィンドウの ID。

    • WINDOW_TASK_ID: 実行されているウィンドウタスクの ID。

    • WINDOW_TARGET_ID: ターゲット (ターゲット ID) を含むウィンドウターゲットの ID。

    • LOGGING_S3_BUCKET_NAME: logging-info パラメータを使用して設定している場合、Amazon S3 バケット名。

    • LOGGING_S3_KEY_PREFIX: logging-info パラメータを使用して設定している場合、Amazon S3 キープレフィックス。

    • LOGGING_S3_REGION: logging-info パラメータを使用して設定している場合、Amazon S3 リージョン。

    • WINDOW_EXECUTION_ID: 現在のウィンドウ実行の ID。

    • TASK_EXECUTION_ID: 現在のタスク実行の ID。

    • INVOCATION_ID: 現在の呼び出しの ID。

    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-invocation-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-invocation-parameters "{\"commands\":{\"Values\":[\"df\"]}}" --max-concurrency 1 --max-errors 1 --priority 10

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

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

    その他のタスクタイプを含む追加の例を次に示します。

    重要

    メンテナンスウィンドウの IAM ポリシーでは、以下の例の最初の 2 例にあるように、Lambda 関数 (またはエイリアス) 名および Step Functions ステートマシン名に SSM というプレフィックスをつける必要があります。これらのタイプのタスクを登録する手順に進む前に、AWS Lambda および AWS Step Functions のこれらの名前を SSM を含むように更新する必要があります。

    Lambda

    Copy
    aws ssm register-task-with-maintenance-window --window-id mw-0290d787d641f11f3 --targets Key=WindowTargetIds,Values=31547414-69c3-49f8-95b8-ed2dcf045faa --task-arn arn:aws:lambda:us-east-1:711106535523:function:SSMTestFunction --service-role-arn arn:aws:iam::711106535523:role/MaintenanceWindows --task-type LAMBDA --task-invocation-parameters "{\"Lambda\":{\"Payload\":\"{\\\"targetId\\\":\\\"{{TARGET_ID}}\\\",\\\"targetType\\\":\\\"{{ TARGET_TYPE }}\\\"}\",\"Qualifier\":\"\$LATEST\",\"ClientContext\":\"ew0KICAiY3VzdG9tIjogew0KICAgICJjbGllbnQiOiAiQVdTQ0xJIg0KICB9DQp9\"}}" --priority 0 --max-concurrency 10 --max-errors 5 --name Name --description Descriptio

    Step Functions

    Copy
    aws ssm register-task-with-maintenance-window --window-id mw-0290d787d641f11f3 --targets Key=WindowTargetIds,Values=31547414-69c3-49f8-95b8-ed2dcf045faa --task-arn arn:aws:states:us-east-1:711106535523:stateMachine:SSMTestStateMachine --service-role-arn arn:aws:iam::711106535523:role/MaintenanceWindows --task-type STEP_FUNCTIONS --task-invocation-parameters "{\"StepFunctions\":{\"Input\":\"{\\\"instanceId\\\":\\\"{{TARGET_ID}}\\\"}\"}}" --priority 0 --max-concurrency 10 --max-errors 5 --name Name --description Description

    オートメーション

    Copy
    aws ssm register-task-with-maintenance-window --window-id mw-0290d787d641f11f3 --targets Key=WindowTargetIds,Values=31547414-69c3-49f8-95b8-ed2dcf045faa --task-arn AutomationDocumentName --service-role-arn arn:aws:iam::711106535523:role/MaintenanceWindows --task-type AUTOMATION --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={instanceId='{{TARGET_ID}}'}}" --priority 0 --max-concurrency 10 --max-errors 5 --name Name --description Description

    Run Command

    Copy
    aws ssm register-task-with-maintenance-window --window-id mw-0290d787d641f11f3 --targets Key=WindowTargetIds,Values=31547414-69c3-49f8-95b8-ed2dcf045faa --task-arn AWS-RunPowerShellScript --service-role-arn arn:aws:iam::711106535523:role/MaintenanceWindows --task-type RUN_COMMAND --task-invocation-parameters "RunCommand={Comment=SomeComment,DocumentHashType=Sha256,DocumentHash=b9d0966408047ebcafee82de4d42477299306fd37510c6815c19e9848e2bffe8,NotificationConfig={NotificationArn=arn:aws:sns:us-west-2:711106535523:RunCommandTopic,NotificationEvents=[Success,Failed],NotificationType=Invocation},OutputS3BucketName=MyS3Bucket,OutputS3KeyPrefix=RunCommand,ServiceRoleArn=arn:aws:iam::711106535523:role/RunCommand,TimeoutSeconds=30,Parameters={commands=ipconfig}}" --priority 0 --max-concurrency 10 --max-errors 5 --name Name --description Description
  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 } ] }
  13. 必要に応じて、次のコマンドを実行して作成したメンテナンスウィンドウを削除します。

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

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

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

メンテナンスウィンドウの更新

このセクションでは、AWS CLI を使用したメンテナンスウィンドウの更新方法を説明します。また、Systems Manager Run Command、Systems Manager Automation、AWS Lambda、AWS Step Functions タスクなど異なるタスクタイプの更新についての情報も含まれています。メンテナンスウィンドウの更新の詳細については、「メンテナンスウィンドウを更新または削除する」を参照してください。

このセクションの例では、メンテナンスウィンドウの更新に次の Systems Manager アクションを使用します。

メンテナンスウィンドウを更新するには

  1. 次のコマンドを実行して、ターゲットを更新し名前と説明を含めます。

    Copy
    aws ssm update-maintenance-window-target --window-id "mw-12345678910" --window-target-id "a1b2c3d4-e5f6-g7h8i9" --name "NewTargetName" --description "NewTargetName description"

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

    Copy
    { "WindowId": "mw-12345678910", "WindowTargetId": "a1b2c3d4-e5f6-g7h8i9", "Targets": [ { "Key": "InstanceIds", "Values": [ "i-aabbccddeeff" ] } ], "Name": "NewTargetName", "Description": "NewTargetName description" }
  2. 次のコマンドを実行し、replace オプションを使用して説明フィールドを削除して追加のターゲットを追加します。後進に説明フィールドが含まれていない (Null 値) ため、このフィールドは削除されます。

    Copy
    aws ssm update-maintenance-window-target --window-id "mw-12345678910" --window-target-id "a1b2c3d4-e5f6-g7h8i9" --targets "Key=InstanceIds,Values=i-aabbccddeeff,i-223344556677" --name "NewTargetName" --replace

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

    Copy
    { "WindowId": "mw-12345678910", "WindowTargetId": "a1b2c3d4-e5f6-g7h8i9", "Targets": [ { "Key": "InstanceIds", "Values": [ "i-aabbccddeeff", "i-223344556677" ] } ], "Name": "NewTargetName" }
  3. 次のコマンドを実行して Run Command タスクを更新します。

    Copy
    aws ssm update-maintenance-window-task --window-id "mw-12345678910" --window-task-id "1111-2222-3333-4444-5555" --targets "Key=WindowTargetIds,Values=a1b2c3d4-e5f6-g7h8i9c" --task-arn "AWS-RunPowerShellScript" --service-role-arn "arn:aws:iam::abcdefghijk:role/MaintenanceWindowsRole" --task-invocation-parameters "RunCommand={Comment=A_Comment,Parameters={commands=ipconfig}}" --priority 1 --max-concurrency 10 --max-errors 4 --name "RC_Name" --description "RC_Name description extra"

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

    Copy
    { "WindowId": "mw-12345678916", "WindowTaskId": "aaa-bbb-ccc-ddd", "Targets": [ { "Key": "WindowTargetIds", "Values": [ "a1b2c3d4-e5f6-g7h8i9c" ] } ], "TaskArn": "AWS-RunPowerShellScript", "ServiceRoleArn": "arn:aws:iam::abcdefghijk:role/MaintenanceWindowsRole", "TaskParameters": {}, "TaskInvocationParameters": { "RunCommand": { "Comment": "SomeComment", "Parameters": { "commands": [ "ipconfig -tail" ] } } }, "Priority": 1, "MaxConcurrency": "10", "MaxErrors": "4", "Name": "RC_Name", "Description": "RC_Name description extra" }
  4. 次のコマンドを実行して、Lambda タスクに名前と説明を追加します。

    Copy
    aws ssm update-maintenance-window-task --window-id "mw-1234567891" --window-task-id "1a2b3c4d-5e6f-7g8h90" --targets "Key=WindowTargetIds,Values=a1b2c3d4-e5f6-g7h8i9c,4444-555555-66666-7777" --task-arn "arn:aws:lambda:us-east-1:1313131313:function:SSMTestLambda" --service-role-arn "arn:aws:iam::abcdefghijk:role/MaintenanceWindowsRole" --task-invocation-parameters "{\"Lambda\":{\"Payload\":\"{\\\"targetId\\\":\\\"{{TARGET_ID}}\\\",\\\"targetType\\\":\\\"{{ TARGET_TYPE }}\\\"}\"}}" --priority 0 --max-concurrency 10 --max-errors 5 --name "TestLambda_Name" --description "TestLambda_Name description"

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

    Copy
    { "WindowId": "mw-1234567891", "WindowTaskId": "1a2b3c4d-5e6f-7g8h90", "Targets": [ { "Key": "WindowTargetIds", "Values": [ "a1b2c3d4-e5f6-g7h8i9c", "4444-555555-66666-7777d" ] } ], "TaskArn": "arn:aws:lambda:us-east-1:1313131313:function:SSMTestLambda", "ServiceRoleArn": "arn:aws:iam::abcdefghijk:role/MaintenanceWindowsRole", "TaskParameters": {}, "TaskInvocationParameters": { "Lambda": { "Payload": "e30=" } }, "Priority": 0, "MaxConcurrency": "10", "MaxErrors": "5", "Name": "TestLambda_Name", "Description": "TestLambda_Name description" }
  5. 次のコマンドを実行して、AWS Step Functions タスクを更新し task-invocation-parameters を更新します。

    Copy
    aws ssm update-maintenance-window-task --window-id "mw-1234567891" --window-task-id "1a2b3c4d-5e6f-7g8h9i" --targets "Key=WindowTargetIds,Values=a1b2c3d4-e5f6-g7h8i9c" --task-arn "arn:aws:states:us-east-1:4242424242:execution:SSMStepFunctionTest" --service-role-arn "arn:aws:iam::abcdefghijk:role/MaintenanceWindowsRole" --task-invocation-parameters "{\"StepFunctions\":{\"Input\":\"{\\\"instanceId\\\":\\\"{{ TARGET_ID }}\\\"}\"}}" --priority 0 --max-concurrency 10 --max-errors 5 --name "TestStepFunction_Task" --description "TestStepFunction_Task description"

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

    Copy
    { "WindowId": "mw-1234567891", "WindowTaskId": "1a2b3c4d-5e6f-7g8h9i", "Targets": [ { "Key": "WindowTargetIds", "Values": [ "a1b2c3d4-e5f6-g7h8i9c" ] } ], "TaskArn": "arn:aws:states:us-east-1:4242424242:execution:SSMStepFunctionTest", "ServiceRoleArn": "arn:aws:iam::abcdefghijk:role/MaintenanceWindowsRole", "TaskParameters": {}, "TaskInvocationParameters": { "StepFunctions": { "Input": "{\"instanceId\":\"{{ TARGET_ID }}\"}" } }, "Priority": 0, "MaxConcurrency": "10", "MaxErrors": "5", "Name": "TestStepFunction_Task", "Description": "TestStepFunction_Task description" }
  6. 以下のコマンドを実行して、メンテナンスウィンドウからターゲットを登録解除します。この例では、safe パラメータを使用してターゲットがタスクから参照されているかどうかを判別しているため、安全に登録解除できます。

    Copy
    aws ssm deregister-target-from-maintenance-window --window-id "mw-1234567891b" --window-target-id "aaaa-bbbb-cccc-dddd" --safe

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

    Copy
    An error occurred (TargetInUseException) when calling the DeregisterTargetFromMaintenanceWindow operation: This Target cannot be deregistered because it is still referenced in Task: a11b22c33d44e55f66
  7. 次のコマンドを実行して、ターゲットがタスクから参照されている場合でもメンテナンスウィンドウからターゲットを登録解除します。no-safe パラメータを使用して、登録解除オペレーションを強制できます。

    Copy
    aws ssm deregister-target-from-maintenance-window --window-id "mw-1234567891b" --window-target-id "aaaa-bbbb-cccc-dddd" --no-safe

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

    Copy
    { "WindowId": "mw-1234567891b", "WindowTargetId": "aaaa-bbbb-cccc-ddd" }
  8. 次のコマンドを実行して Run Command タスクを更新します。この例では、UpdateLevel という Systems Manager パラメータストアパラメータを使用しています。フォーマットは次のとおりです: '{{ssm:UpdateLevel}}'

    Copy
    aws ssm update-maintenance-window-task --window-id "mw-1234567891b" --window-task-id "777-8888-9999-0000" --targets "Key=InstanceIds,Values=i-yyyyzzzzxxx111222" --task-invocation-parameters "RunCommand={Comment=SomeComments,Parameters={UpdateLevel='{{ssm:UpdateLevel}}'}}"

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

    Copy
    { "WindowId": "mw-1234567891b", "WindowTaskId": "777-8888-9999-0000", "Targets": [ { "Key": "InstanceIds", "Values": [ "i-yyyyzzzzxxx1112223" ] } ], "TaskArn": "AWS-InstallMissingWindowsUpdates", "ServiceRoleArn": "arn:aws:iam::abcdefghijk:role/MaintenanceWindows", "TaskParameters": {}, "TaskInvocationParameters": { "RunCommand": { "Comment": "SomeComments", "Parameters": { "UpdateLevel": [ "{{ssm:UpdateLevel}}" ] } } }, "Priority": 0, "MaxConcurrency": "10", "MaxErrors": "5", "Name": "TracyMWTest_RunCommand2", "Description": "Test_RunCommandandParameterStore description" }
  9. 次のコマンドを実行して、オートメーションタスクを更新し、task-invocation-parameters パラメータに WINDOW_ID および WINDOW_TASK_ID パラメータを指定します。

    Copy
    aws ssm update-maintenance-window-task --window-id "mw-1234567891b" --window-task-id "777-8888-9999-000" --targets "Key=WindowTargetIds,Values=999-aaa-888-bbb-777 --task-arn "AutoTestDoc" --service-role-arn arn:aws:iam::801422537783:role/MaintenanceWindowsRoleTesting --task-invocation-parameters "Automation={Parameters={instanceId='{{TARGET_ID}}',initiator='{{WINDOW_ID}}.Task-{{WINDOW_TASK_ID}}'}}" --priority 0 --max-concurrency 10 --max-errors 5

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

    Copy
    { "WindowId": "mw-0a097ccb2abd5775b", "WindowTaskId": "777-8888-9999-0000", "Targets": [ { "Key": "WindowTargetIds", "Values": [ "999-aaa-888-bbb-777" ] } ], "TaskArn": "AutoTestDoc", "ServiceRoleArn": "arn:aws:iam::abcdefghijk:role/MaintenanceWindows", "TaskParameters": {}, "TaskInvocationParameters": { "Automation": { "Parameters": { "multi": [ "{{WINDOW_TASK_ID}}" ], "single": [ "{{WINDOW_ID}}" ] } } }, "Priority": 0, "MaxConcurrency": "10", "MaxErrors": "5", "Name": "TestAutomation_Task", "Description": "TestAutomation_Task description" }

メンテナンスウィンドウに関する情報の一覧表示

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

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" } ] }

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

ここで示すようにコマンドを実行します。

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 } ] }