ステップ 3: AWS CLI を使用してメンテナンスウィンドウにタスクを登録する - AWS Systems Manager

ステップ 3: AWS CLI を使用してメンテナンスウィンドウにタスクを登録する

チュートリアルのこのステップでは、Linux 用の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスで df コマンドを実行する AWS Systems Manager Run Command タスクを登録します。この標準の Linux コマンドの結果は、空き領域の割合をディスクで使用されているが、インスタンスのファイルシステムです。

-または-

Linux ではなく Windows Server の Amazon EC2 インスタンスをターゲットにしている場合は、以下のコマンドの dfipconfig に置き換えます。このコマンドからの出力には、ターゲットインスタンスのアダプターの IP アドレス、サブネットマスク、デフォルトゲートウェイに関する詳細が一覧表示されます。

他のタスクタイプを登録したり、使用可能な Systems Manager Run Command オプションを使用する準備ができたら、「例: タスクをメンテナンスウィンドウに登録する」を参照してください。そのトピックでは、より現実的なシナリオを計画するのに役立つように、4 つのすべてのタスクタイプについて、また、それらの最も重要なオプションのいくつかについて、詳細な情報を提供しています。

タスクをメンテナンスウィンドウに登録するには
  1. ローカルマシンで次のコマンドを実行します。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。ローカルの Windows マシンから実行するバージョンには、コマンドラインツールからコマンドを実行するのに必要なエスケープ文字 (/) が含まれています。

    Linux & macOS
    aws ssm register-task-with-maintenance-window \ --window-id mw-0c50858d01EXAMPLE \ --task-arn "AWS-RunShellScript" \ --max-concurrency 1 --max-errors 1 \ --priority 10 \ --targets "Key=InstanceIds,Values=i-0471e04240EXAMPLE" \ --task-type "RUN_COMMAND" \ --task-invocation-parameters '{"RunCommand":{"Parameters":{"commands":["df"]}}}'
    Windows
    aws ssm register-task-with-maintenance-window ^ --window-id mw-0c50858d01EXAMPLE ^ --task-arn "AWS-RunShellScript" ^ --max-concurrency 1 --max-errors 1 ^ --priority 10 ^ --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" ^ --task-type "RUN_COMMAND" ^ --task-invocation-parameters={\"RunCommand\":{\"Parameters\":{\"commands\":[\"df\"]}}}

    システムは以下のような情報を返します。

    {
        "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE"
    }
  2. 作成したメンテナンスウィンドウタスクの詳細を表示するには、以下のコマンドを実行します。

    Linux & macOS
    aws ssm describe-maintenance-window-tasks \ --window-id mw-0c50858d01EXAMPLE
    Windows
    aws ssm describe-maintenance-window-tasks ^ --window-id mw-0c50858d01EXAMPLE
  3. システムは以下のような情報を返します。

    {
        "Tasks": [
            {
                "WindowId": "mw-0c50858d01EXAMPLE",
                "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
                "TaskArn": "AWS-RunShellScript",
                "Type": "RUN_COMMAND",
                "Targets": [
                    {
                        "Key": "InstanceIds",
                        "Values": [
                            "i-02573cafcfEXAMPLE"
                        ]
                    }
                ],
                "TaskParameters": {},
                "Priority": 10,
                "ServiceRoleArn": "arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole",
                "MaxConcurrency": "1",
                "MaxErrors": "1"
            }
        ]
    }
  4. ステップ 1: AWS CLI を使用してメンテナンスウィンドウを作成する」で指定したスケジュールに基づいて、タスクを実行する時間になるまで待ちます。たとえば、--schedule "rate(5 minutes)" を指定した場合は、5 分待ちます。その後、以下のコマンドを実行して、このタスクで発生した実行に関する情報を表示します。

    Linux & macOS
    aws ssm describe-maintenance-window-executions \ --window-id mw-0c50858d01EXAMPLE
    Windows
    aws ssm describe-maintenance-window-executions ^ --window-id mw-0c50858d01EXAMPLE

    システムは以下のような情報を返します。

    {
        "WindowExecutions": [
            {
                "WindowId": "mw-0c50858d01EXAMPLE",
                "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
                "Status": "SUCCESS",
                "StartTime": 1557593493.096,
                "EndTime": 1557593498.611
            }
        ]
    }
ヒント

タスクが正常に実行した後、メンテナンスウィンドウが実行される頻度を減らすことができます。例えば、以下のコマンドを実行して頻度を週に 1 回に減らします。mw-0c50858d01EXAMPLE を自分の情報に置き換えます。

Linux & macOS
aws ssm update-maintenance-window \ --window-id mw-0c50858d01EXAMPLE \ --schedule "rate(7 days)"
Windows
aws ssm update-maintenance-window ^ --window-id mw-0c50858d01EXAMPLE ^ --schedule "rate(7 days)"

メンテナンスウィンドウのスケジュール管理の詳細については、「リファレンス: Systems Manager の Cron 式および rate 式」と「メンテナンスウィンドウのスケジューリングおよび有効期間のオプション」を参照してください。

AWS Command Line Interface (AWS CLI) を使用してメンテナンスウィンドウを変更する方法については、「チュートリアル : AWS CLI を使用してメンテナンスウィンドウを更新する」を参照してください。

AWS CLI コマンドによりメンテナンスウィンドウのタスクとその実行に関する詳細を表示する演習については、「チュートリアル: AWS CLI を使用してタスクおよびタスク実行に関する情報を確認する」に進みます。

チュートリアルコマンド出力へのアクセス

AWS CLI を使用して、メンテナンスウィンドウのタスク実行に関連付けられた Run Command コマンドの出力を表示することは、このチュートリアルの範囲外です。

ただし、AWS CLI を使用してこのデータを表示できます。(コマンド出力をコンソールやログファイルに保存するように、メンテナンスウィンドウを設定している場合、Systems Manager コンソールでも、Amazon Simple Storage Service (Amazon S3) バケットに保存されているログファイルでも、出力を表示できます)。Linux の EC2 インスタンスでの df コマンドの出力は以下のようになります。

Filesystem 1K-blocks Used Available Use% Mounted on

devtmpfs 485716 0 485716 0% /dev

tmpfs 503624 0 503624 0% /dev/shm

tmpfs 503624 328 503296 1% /run

tmpfs 503624 0 503624 0% /sys/fs/cgroup

/dev/xvda1 8376300 1464160 6912140 18% /

ipconfig の EC2 インスタンスでの Windows Server コマンドの出力は以下のようになります。

Windows IP Configuration


Ethernet adapter Ethernet 2:

   Connection-specific DNS Suffix  . : example.com
   IPv4 Address. . . . . . . . . . . : 10.24.34.0/23
   Subnet Mask . . . . . . . . . . . : 255.255.255.255
   Default Gateway . . . . . . . . . : 0.0.0.0

Ethernet adapter Ethernet:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . : abc1.wa.example.net

Wireless LAN adapter Local Area Connection* 1:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Wireless LAN adapter Wi-Fi:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::100b:c234:66d6:d24f%4
   IPv4 Address. . . . . . . . . . . : 192.0.2.0
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.0.2.0

Ethernet adapter Bluetooth Network Connection:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :