연습: 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) 태그로 인스턴스를 대상으로 지정하여 연결을 생성합니다. 각 example resource placeholder를 사용자의 정보로 바꿉니다. Schedule 파라미터는 매주 일요일 오전 2시(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로 표시됩니다.