Run Command를 사용하여 소프트웨어 업데이트 - AWS Systems Manager

Run Command를 사용하여 소프트웨어 업데이트

다음 절차에서는 관리형 노드에서 소프트웨어를 업데이트하는 방법을 설명합니다.

Run Command를 사용하여 SSM Agent 업데이트

다음 절차에서는 관리형 노드에서 실행 중인 SSM Agent를 업데이트하는 방법을 설명합니다. SSM Agent의 최신 버전으로 업데이트하거나 이전 버전으로 다운그레이드할 수 있습니다. 명령을 실행하면 시스템은 AWS에서 버전을 다운로드하여 설치한 다음, 명령을 실행하기 이전에 있었던 버전을 제거합니다. 이 프로세스 중에 오류가 발생하면, 서버에서 명령을 실행하기 이전의 버전으로 롤백하며 명령 상태에 명령이 실패했다고 표시됩니다.

참고

인스턴스가 macOS 버전 11.0(Big Sur) 이상을 실행하는 경우 AWS-UpdateSSMAgent 문서를 실행하려면 인스턴스의 SSM Agent 버전이 3.1.941.0 이상이어야 합니다. 인스턴스가 3.1.941.0 이전에 릴리스된 SSM Agent 버전을 실행 중인 경우 brew updatebrew upgrade amazon-ssm-agent 명령을 실행하여 AWS-UpdateSSMAgent 문서를 실행하도록 SSM Agent를 업데이트할 수 있습니다.

SSM Agent 업데이트에 대해 알림을 수신하려면 GitHub에서 SSM Agent 릴리스 정보 페이지를 구독합니다.

Run Command를 사용하여 SSM Agent를 업데이트하려면
  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

  2. 탐색 창에서 Run Command를 선택합니다.

  3. Run command를(Run 명령) 선택합니다.

  4. Command 문서(Command document) 목록에서 AWS-UpdateSSMAgent를 선택합니다.

  5. 명령 파라미터 섹션에서, 원하는 경우 다음 파라미터의 값을 지정합니다.

    1. (옵션) 버전(Version)에 설치할 SSM Agent의 버전을 입력합니다. 이전 버전의 에이전트를 설치할 수 있습니다. 버전을 지정하지 않으면 최신 버전으로 설치됩니다.

    2. (옵션) 다운그레이드 허용(Allow Downgrade)에서 true를 선택하여 이전 버전의 SSM Agent를 설치합니다. 이 옵션을 선택하는 경우 이전 버전 번호를 지정해야 합니다. 최신 서비스 버전을 설치하려면 false를 선택합니다.

  6. 대상(Targets) 섹션에서, 태그를 지정하거나, 수동으로 인스턴스나 엣지 디바이스를 선택하거나, 리소스 그룹을 지정하여 이 작업을 실행할 관리형 노드를 식별합니다.

    작은 정보

    예상한 관리형 노드가 목록에 없으면 관리형 노드 가용성 문제 해결에서 문제 해결 팁을 참조하세요.

  7. Other parameters(다른 파라미터):

    • Comment(설명)에 명령에 대한 정보를 입력합니다.

    • 제한 시간(초)에서 전체 명령 실행이 실패할 때까지 시스템이 기다리는 시간을 초 단위로 지정합니다.

  8. Rate control(속도 제어)에서

    • Concurrency(동시성)에서 명령을 동시에 실행할 관리형 노드의 백분율 또는 개수를 지정합니다.

      참고

      관리형 노드에 적용할 태그를 지정하거나, AWS 리소스 그룹을 지정하여 대상을 선택하였지만 대상으로 지정할 관리형 노드 수를 잘 모를 경우에는 백분율을 지정하여 동시에 문서를 실행할 수 있는 대상 수를 제한합니다.

    • Error threshold(오류 임계값)에서, 명령이 노드의 개수 또는 백분율에서 실패한 후 다른 관리형 노드에서 해당 명령의 실행을 중지할 시간을 지정합니다. 예를 들어 세 오류를 지정하면 네 번째 오류를 받았을 때 Systems Manager가 명령 전송을 중지합니다. 여전히 명령을 처리 중인 관리형 노드도 오류를 전송할 수 있습니다.

  9. (선택 사항) Output options(출력 옵션)에서 명령 출력을 파일에 저장하려면 Write command output to an S3 bucket(S3 버킷에 명령 출력 쓰기) 상자를 선택합니다. 상자에 버킷 및 접두사(폴더) 이름을 입력합니다.

    참고

    데이터를 S3 버킷에 쓰는 기능을 부여하는 S3 권한은 이 작업을 수행하는 IAM 사용자의 권한이 아니라 인스턴스에 할당된 인스턴스 프로파일(EC2 인스턴스용) 또는 IAM 서비스 역할(하이브리드 정품 인증 시스템)의 권한입니다. 자세한 내용은 Systems Manager에 필요한 인스턴스 권한 구성이나 하이브리드 환경을 위한 IAM 서비스 역할 생성을 참조하세요. 또한 지정된 S3 버킷이 다른 AWS 계정에 있는 경우 관리형 노드와 연결된 인스턴스 프로파일 또는 IAM 서비스 역할은 해당 버킷에 쓸 수 있는 권한이 있어야 합니다.

  10. SNS notifications(SNS 알림) 섹션에서, 명령 실행 상태에 대한 알림이 전송되도록 하려면 Enable SNS notifications(SNS 알림 활성화) 확인란을 선택합니다.

    Run Command에 대한 Amazon SNS 알림 구성에 대한 자세한 내용은 Amazon SNS 알림을 사용하여 Systems Manager 상태 변경 모니터링 섹션을 참조하세요.

  11. Run(실행)을 선택합니다.

Run Command를 사용하여 PowerShell 업데이트

다음 절차에서는 Windows Server 2012 및 2012 R2 관리형 노드에서 PowerShell을 버전 5.1로 업데이트하는 방법을 설명합니다. 이 절차에서 제공하는 스크립트는 Windows Management Framework(WMF) 버전 5.1 업데이트를 다운로드하고 업데이트 설치를 시작합니다. WMF 5.1을 설치할 때 필요하기 때문에 이 프로세스 중 노드가 재부팅됩니다. 업데이트 다운로드 및 설치를 완료하는 데 5분 정도 걸립니다.

Run Command를 사용하여 PowerShell을 업데이트하려면
  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

  2. 탐색 창에서 Run Command를 선택합니다.

  3. Run command를(Run 명령) 선택합니다.

  4. Command 문서(Command document) 목록에서 AWS-RunPowerShellScript를 선택합니다.

  5. 명령(Commands) 섹션에 운영 체제에 대해 다음 명령을 붙여 넣습니다.

    Windows Server 2012 R2
    Set-Location -Path "C:\Windows\Temp" Invoke-WebRequest "https://go.microsoft.com/fwlink/?linkid=839516" -OutFile "Win8.1AndW2K12R2-KB3191564-x64.msu" Start-Process -FilePath "$env:systemroot\system32\wusa.exe" -Verb RunAs -ArgumentList ('Win8.1AndW2K12R2-KB3191564-x64.msu', '/quiet')
    Windows Server 2012
    Set-Location -Path "C:\Windows\Temp" Invoke-WebRequest "https://go.microsoft.com/fwlink/?linkid=839513" -OutFile "W2K12-KB3191565-x64.msu" Start-Process -FilePath "$env:systemroot\system32\wusa.exe" -Verb RunAs -ArgumentList ('W2K12-KB3191565-x64.msu', '/quiet')
  6. 대상(Targets) 섹션에서, 태그를 지정하거나, 수동으로 인스턴스나 엣지 디바이스를 선택하거나, 리소스 그룹을 지정하여 이 작업을 실행할 관리형 노드를 식별합니다.

    작은 정보

    예상한 관리형 노드가 목록에 없으면 관리형 노드 가용성 문제 해결에서 문제 해결 팁을 참조하세요.

  7. Other parameters(다른 파라미터):

    • Comment(설명)에 명령에 대한 정보를 입력합니다.

    • 제한 시간(초)에서 전체 명령 실행이 실패할 때까지 시스템이 기다리는 시간을 초 단위로 지정합니다.

  8. Rate control(속도 제어)에서

    • Concurrency(동시성)에서 명령을 동시에 실행할 관리형 노드의 백분율 또는 개수를 지정합니다.

      참고

      관리형 노드에 적용할 태그를 지정하거나, AWS 리소스 그룹을 지정하여 대상을 선택하였지만 대상으로 지정할 관리형 노드 수를 잘 모를 경우에는 백분율을 지정하여 동시에 문서를 실행할 수 있는 대상 수를 제한합니다.

    • Error threshold(오류 임계값)에서, 명령이 노드의 개수 또는 백분율에서 실패한 후 다른 관리형 노드에서 해당 명령의 실행을 중지할 시간을 지정합니다. 예를 들어 세 오류를 지정하면 네 번째 오류를 받았을 때 Systems Manager가 명령 전송을 중지합니다. 여전히 명령을 처리 중인 관리형 노드도 오류를 전송할 수 있습니다.

  9. (선택 사항) Output options(출력 옵션)에서 명령 출력을 파일에 저장하려면 Write command output to an S3 bucket(S3 버킷에 명령 출력 쓰기) 상자를 선택합니다. 상자에 버킷 및 접두사(폴더) 이름을 입력합니다.

    참고

    데이터를 S3 버킷에 쓰는 기능을 부여하는 S3 권한은 이 작업을 수행하는 IAM 사용자의 권한이 아니라 인스턴스에 할당된 인스턴스 프로파일(EC2 인스턴스용) 또는 IAM 서비스 역할(하이브리드 정품 인증 시스템)의 권한입니다. 자세한 내용은 Systems Manager에 필요한 인스턴스 권한 구성이나 하이브리드 환경을 위한 IAM 서비스 역할 생성을 참조하세요. 또한 지정된 S3 버킷이 다른 AWS 계정에 있는 경우 관리형 노드와 연결된 인스턴스 프로파일 또는 IAM 서비스 역할은 해당 버킷에 쓸 수 있는 권한이 있어야 합니다.

  10. SNS notifications(SNS 알림) 섹션에서, 명령 실행 상태에 대한 알림이 전송되도록 하려면 Enable SNS notifications(SNS 알림 활성화) 확인란을 선택합니다.

    Run Command에 대한 Amazon SNS 알림 구성에 대한 자세한 내용은 Amazon SNS 알림을 사용하여 Systems Manager 상태 변경 모니터링 섹션을 참조하세요.

  11. Run(실행)을 선택합니다.

관리형 노드가 재부팅되고 업데이트 설치가 완료되면 관리형 노드에 연결하여 PowerShell이 버전 5.1로 업그레이드되었는지 확인합니다. 노드에서 PowerShell의 버전을 확인하려면 PowerShell을 열고 $PSVersionTable을 입력합니다. 출력 테이블의 PSVersion 값은 업그레이드가 성공한 경우 5.1을 표시합니다.

PSVersion 값이 5.1과 다른 경우(예: 3.0 또는 4.0) Windows 로그(Windows Logs) 아래에 있는 이벤트 뷰어의 설치(Setup) 로그를 검토합니다. 이러한 로그에서 업데이트 설치가 실패한 이유를 확인할 수 있습니다.