チュートリアル: AWS CLI で SSM Agent を自動的に更新する - AWS Systems Manager

チュートリアル: AWS CLI で SSM Agent を自動的に更新する

以下の手順では、AWS Command Line Interface を使用して State Manager の関連付けを作成するプロセスを説明します。関連付けにより、ユーザーが指定したスケジュールに従って SSM Agent エージェントを自動的に更新できます。SSM Agent の詳細については、「SSM Agent の使用」を参照してください。コンソールを使用して SSM Agent の更新スケジュールをカスタマイズするには、「SSM Agent の自動更新」を参照してください。

SSM Agent の更新に関する通知を受け取るには、GitHub の「SSM Agent リリースノート」ページをサブスクライブします。

開始する前に

次の手順を完了する前に、Systems Manager 用に設定されている実行中の Amazon Elastic Compute Cloud (Amazon EC2) インスタンス (Linux、macOS または Windows Server) が少なくとも 1 つあることを確認します。詳細については、「AWS Systems Manager のセットアップ」を参照してください。

AWS CLI または AWS Tools for Windows PowerShell を使用して関連付けを作成する場合は、次の例に示すように --Targets パラメータを使用してインスタンスをターゲットにします。--InstanceID パラメータは使用しないでください。--InstanceID パラメータはレガシーパラメータです。

SSM Agent を自動的に更新するための関連付けを作成するには
  1. まだ AWS Command Line Interface (AWS CLI) をインストールして設定していない場合は、インストールして設定します。

    詳細については、「AWS CLI の最新バージョンをインストールまたは更新します。」を参照してください。

  2. Amazon Elastic Compute Cloud (Amazon EC2) タグを使用してインスタンスをターゲットにして関連付けを作成するには、以下のコマンドを実行します。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。Schedule パラメータは、毎週日曜日の午前 2:00 に関連付けを実行するようスケジュールを設定します。(UTC)

    State Manager の関連付けは、すべての cron および rate 式をサポートしていません。関連付けの cron および rate 式の作成の詳細については、「リファレンス: Systems Manager の Cron 式および rate 式」を参照してください。

    Linux & macOS
    aws ssm create-association \ --targets Key=tag:tag_key,Values=tag_value \ --name AWS-UpdateSSMAgent \ --schedule-expression "cron(0 2 ? * SUN *)"
    Windows
    aws ssm create-association ^ --targets Key=tag:tag_key,Values=tag_value ^ --name AWS-UpdateSSMAgent ^ --schedule-expression "cron(0 2 ? * SUN *)"

    インスタンス ID をカンマ区切りのリストで指定すると、複数のインスタンスを対象にすることができます。

    Linux & macOS
    aws ssm create-association \ --targets Key=instanceids,Values=instance_ID,instance_ID,instance_ID \ --name AWS-UpdateSSMAgent \ --schedule-expression "cron(0 2 ? * SUN *)"
    Windows
    aws ssm create-association ^ --targets Key=instanceids,Values=instance_ID,instance_ID,instance_ID ^ --name AWS-UpdateSSMAgent ^ --schedule-expression "cron(0 2 ? * SUN *)"

    更新したい SSM Agent のバージョンを指定できます。

    Linux & macOS
    aws ssm create-association \ --targets Key=instanceids,Values=instance_ID,instance_ID,instance_ID \ --name AWS-UpdateSSMAgent \ --schedule-expression "cron(0 2 ? * SUN *)" \ --parameters version=ssm_agent_version_number
    Windows
    aws ssm create-association ^ --targets Key=instanceids,Values=instance_ID,instance_ID,instance_ID ^ --name AWS-UpdateSSMAgent ^ --schedule-expression "cron(0 2 ? * SUN *)" ^ --parameters version=ssm_agent_version_number

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

    {
        "AssociationDescription": {
            "ScheduleExpression": "cron(0 2 ? * SUN *)",
            "Name": "AWS-UpdateSSMAgent",
            "Overview": {
                "Status": "Pending",
                "DetailedStatus": "Creating"
            },
            "AssociationId": "123..............",
            "DocumentVersion": "$DEFAULT",
            "LastUpdateAssociationDate": 1504034257.98,
            "Date": 1504034257.98,
            "AssociationVersion": "1",
            "Targets": [
                {
                    "Values": [
                        "TagValue"
                    ],
                    "Key": "tag:TagKey"
                }
            ]
        }
    }

    システムは、インスタンス上で関連付けを作成し、作成後に状態を適用することを試みます。関連付けのステータスは Pending と表示されます。

  3. 作成した関連付けの最新のステータスを表示するには、次のコマンドを実行します。

    aws ssm list-associations

    インスタンスで最新バージョンの SSM Agent が実行されていない場合、ステータスは Failed になります。新しいバージョンの SSM Agent が公開されると、関連付けによって自動的に新しいエージェントがインストールされ、ステータスが Success と表示されます。