연습: SSM Agent를 업데이트할 유지 관리 기간 생성(AWS CLI) - AWS Systems Manager

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

연습: SSM Agent를 업데이트할 유지 관리 기간 생성(AWS CLI)

다음 시연에서는 AWS Command Line Interface(AWS CLI)를 사용하여 AWS Systems Manager 유지 관리 기간을 생성하는 방법을 설명합니다. 또한 이 시연에서 관리형 노드를 대상으로 등록하고 SSM Agent를 업데이트할 Systems Manager Run Command 태스크를 등록하는 방법을 설명합니다.

시작하기 전에

다음 절차를 수행하기 전에 구성할 노드에 대한 관리자 권한이 있거나 AWS Identity and Access Management(IAM)에서 적절한 권한을 부여받아야 합니다. 하이브리드 및 멀티클라우드 환경의 Systems Manager용으로 구성된 관리형 노드가 Linux 또는 Windows Server에서 하나 이상 실행되는지도 확인하세요. 자세한 내용은 AWS Systems Manager 설정 섹션을 참조하세요.

1단계: 시작하기

AWS CLI을 사용하여 명령을 실행하려면
  1. 아직 하지 않은 경우 AWS Command Line Interface(AWS CLI)를 설치하고 구성합니다.

    자세한 내용은 최신 버전의 AWS CLI 설치 또는 업데이트를 참조하세요.

  2. 노드가 유지 관리 기간의 대상으로 등록될 준비가 되었는지 확인합니다.

    다음 명령을 실행하여 어떤 노드가 온라인 상태인지 확인합니다.

    aws ssm describe-instance-information --query "InstanceInformationList[*]"

    다음 명령을 실행하여 특정 노드에 대한 세부 정보를 봅니다.

    aws ssm describe-instance-information --instance-information-filter-list key=InstanceIds,valueSet=instance-id

2단계: 유지 관리 기간 생성

다음 절차를 사용하여 유지 관리 기간을 생성하고 기본 옵션(예: 일정 및 기간)을 지정합니다.

유지 관리 기간 생성(AWS CLI)
  1. AWS CLI를 열고 다음 명령을 실행하여 미국 태평양 시간대 기준 매주 일요일 오전 2시에 실행되는(1시간 차단) 유지 관리 기간을 생성합니다.

    Linux & macOS
    aws ssm create-maintenance-window \ --name "My-First-Maintenance-Window" \ --schedule "cron(0 2 ? * SUN *)" \ --duration 2 \ --schedule-timezone "America/Los_Angeles" \ --cutoff 1 \ --no-allow-unassociated-targets
    Windows
    aws ssm create-maintenance-window ^ --name "My-First-Maintenance-Window" ^ --schedule "cron(0 2 ? * SUN *)" ^ --duration 2 ^ --schedule-timezone "America/Los_Angeles" ^ --cutoff 1 ^ --no-allow-unassociated-targets

    schedule 파라미터에 대한 cron 식을 생성하는 방법에 대한 자세한 내용은 참조: Systems Manager용 Cron 및 Rate 표현식 섹션을 참조하세요.

    유지 관리 기간에 대한 다양한 스케줄 관련 옵션이 서로 관련되는 방법에 대한 자세한 내용은 유지 관리 기간 예약 및 유효 기간 옵션 섹션을 참조하세요.

    --schedule 옵션 작업에 대한 자세한 내용은 참조: Systems Manager용 Cron 및 Rate 표현식 섹션을 참조하세요.

    시스템은 다음과 같은 정보를 반환합니다.

    {
       "WindowId":"mw-0c50858d01EXAMPLE"
    }
  2. 이 기간을 포함하여 현재 AWS 리전의 AWS 계정에서 생성된 다른 모든 유지 관리 기간을 나열하려면 다음 명령을 실행합니다.

    aws ssm describe-maintenance-windows

    시스템은 다음과 같은 정보를 반환합니다.

    {
        "WindowIdentities": [
            {
                "Cutoff": 1,
                "Name": "My-First-Maintenance-Window",
                "NextExecutionTime": "2019-02-03T02:00-08:00",
                "Enabled": true,
                "WindowId": "mw-0c50858d01EXAMPLE",
                "Duration": 2
            }
        ]
    }

3단계: 유지 관리 기간 대상 등록(AWS CLI)

다음 절차를 사용하여 2단계에서 생성한 유지 관리 기간에 대상을 등록합니다. 대상을 등록한다는 것은 업데이트할 노드를 지정하는 것입니다.

유지 관리 기간 대상을 등록하려면(AWS CLI)
  1. 다음 명령을 실행합니다. 각 example resource placeholder를 사용자의 정보로 바꿉니다.

    Linux & macOS
    aws ssm register-target-with-maintenance-window \ --window-id "mw-0c50858d01EXAMPLE" \ --target "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" \ --resource-type "INSTANCE"
    Windows
    aws ssm register-target-with-maintenance-window ^ --window-id "mw-0c50858d01EXAMPLE" ^ --target "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" ^ --resource-type "INSTANCE"

    시스템이 다음과 같은 정보를 반환합니다. 여기에 유지 관리 기간 대상 ID가 포함되어 있습니다. WindowTargetId 값을 복사하거나 적어둡니다. 이 유지 관리 기간에 대한 작업을 등록하려면 다음 단계에서 이 ID를 지정해야 합니다.

    {
       "WindowTargetId":"1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d-1a2"
    }
    다른 명령

    다음 명령을 사용하여 여러 관리형 노드를 등록합니다.

    Linux & macOS
    aws ssm register-target-with-maintenance-window \ --window-id "mw-0c50858d01EXAMPLE" \ --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE" \ --resource-type "INSTANCE"
    Windows
    aws ssm register-target-with-maintenance-window ^ --window-id "mw-0c50858d01EXAMPLE" ^ --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE" ^ --resource-type "INSTANCE"

    다음 명령을 사용하여 태그를 지정해 노드를 등록합니다.

    Linux & macOS
    aws ssm register-target-with-maintenance-window \ --window-id "mw-0c50858d01EXAMPLE" \ --targets "Key=tag:Environment,Values=Prod" "Key=tag:Role,Values=Web" \ --resource-type "INSTANCE"
    Windows
    aws ssm register-target-with-maintenance-window ^ --window-id "mw-0c50858d01EXAMPLE" ^ --targets "Key=tag:Environment,Values=Prod" "Key=tag:Role,Values=Web" ^ --resource-type "INSTANCE"
  2. 다음 명령을 실행하여 유지 관리 기간의 대상을 표시합니다.

    aws ssm describe-maintenance-window-targets --window-id "mw-0c50858d01EXAMPLE"

    시스템은 다음과 같은 정보를 반환합니다.

    {
        "Targets": [
            {
                "ResourceType": "INSTANCE",
                "WindowId": "mw-0c50858d01EXAMPLE",
                "Targets": [
                    {
                        "Values": [
                            "i-02573cafcfEXAMPLE"
                        ],
                        "Key": "InstanceIds"
                    }
                ],
                "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
            },
            {
                "ResourceType": "INSTANCE",
                "WindowId": "mw-0c50858d01EXAMPLE",
                "Targets": [
                    {
                        "Values": [
                            "Prod"
                        ],
                        "Key": "tag:Environment"
                    },
                    {
                        "Values": [
                            "Web"
                        ],
                        "Key": "tag:Role"
                    }
                ],
                "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
            }
        ]
    }

4단계: SSM Agent를 업데이트하도록 유지 관리 기간에 대한 Run Command 작업 등록

다음 절차를 사용하여 2단계에서 생성한 유지 관리 기간에 대한 Run Command 작업을 등록합니다. Run Command 작업은 등록된 대상에서 SSM Agent를 업데이트합니다.

SSM Agent를 업데이트하도록 유지 관리 기간에 대한 Run Command 작업을 등록하려면(AWS CLI)
  1. 다음 명령을 통해 3단계의 WindowTargetId 값을 사용하여 유지 관리 기간에 대한 Run Command 태스크를 등록합니다. 각 example resource placeholder를 사용자의 정보로 바꿉니다. 이 작업은 AWS-UpdateSSMAgent 문서를 사용하여 SSM Agent를 업데이트합니다.

    Linux & macOS
    aws ssm register-task-with-maintenance-window \ --window-id "mw-0c50858d01EXAMPLE" \ --task-arn "AWS-UpdateSSMAgent" \ --name "UpdateSSMAgent" \ --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \ --service-role-arn "arn:aws:iam:account-id:role/MW-Role" \ --task-type "RUN_COMMAND" \ --max-concurrency 1 --max-errors 1 --priority 10
    Windows
    aws ssm register-task-with-maintenance-window ^ --window-id "mw-0c50858d01EXAMPLE" ^ --task-arn "AWS-UpdateSSMAgent" ^ --name "UpdateSSMAgent" ^ --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ^ --service-role-arn "arn:aws:iam:account-id:role/MW-Role" ^ --task-type "RUN_COMMAND" ^ --max-concurrency 1 --max-errors 1 --priority 10
    참고

    이전 단계에서 등록한 대상이 Windows Server 2012 R2 이하인 경우 AWS-UpdateEC2Config 문서를 사용해야 합니다.

    시스템은 다음과 같은 정보를 반환합니다.

    {
       "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE"
    }
  2. 다음 명령을 실행하여 유지 관리 기간의 등록된 모든 작업을 나열합니다.

    aws ssm describe-maintenance-window-tasks --window-id "mw-0c50858d01EXAMPLE"

    시스템은 다음과 같은 정보를 반환합니다.

    {
        "Tasks": [
            {
                "ServiceRoleArn": "arn:aws:iam::111122223333:role/MW-Role",
                "MaxErrors": "1",
                "TaskArn": "AWS-UpdateSSMAgent",
                "MaxConcurrency": "1",
                "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
                "TaskParameters": {},
                "Priority": 10,
                "WindowId": "mw-0c50858d01EXAMPLE",
                "Type": "RUN_COMMAND",
                "Targets": [
                    {
                        "Values": [
                            "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
                        ],
                        "Key": "WindowTargetIds"
                    }
                ],
                "Name": "UpdateSSMAgent"
            }
        ]
    }