패키지 설치 또는 업데이트 - AWS Systems Manager

패키지 설치 또는 업데이트

AWS Systems Manager의 기능인 Distributor를 사용해 AWS Systems Manager 관리형 노드에 패키지를 배포할 수 있습니다. 패키지를 배포하려면 AWS Management Console 또는 AWS Command Line Interface(AWS CLI)를 사용합니다. 명령당 한 패키지의 버전을 하나만 배포할 수 있습니다. 새 패키지를 설치하거나 기존 설치를 인플레이스 업데이트할 수 있습니다. 특정 버전을 배포하도록 선택하거나 항상 패키지의 최신 버전을 배포하도록 선택할 수 있습니다. AWS Systems Manager의 기능인 State Manager를 사용하여 패키지를 설치하는 것이 좋습니다. State Manager를 사용하면 관리형 노드에서 항상 최신 버전의 패키지를 실행하도록 할 수 있습니다.

기본 설정 AWS Systems Manager 작업 추가 정보

패키지를 즉시 설치하거나 업데이트합니다.

Run Command

설치에 항상 기본 버전이 포함되도록 정기적으로 패키지를 설치 또는 업데이트합니다.

State Manager

특정 태그 또는 태그 세트가 있는 새 관리형 노드에 패키지를 자동으로 설치합니다. 예를 들어 새 인스턴스에 Amazon CloudWatch 에이전트를 설치합니다.

State Manager

이렇게 하기 위한 한 가지 방법은 새 인스턴스에 태그를 적용한 다음 State Manager 연결에서 해당 태그를 대상으로 지정하는 것입니다. 그러면 State Manager 태그가 일치하는 인스턴스에서 연결에 패키지를 자동으로 설치합니다. State Manager 연결에서의 대상 및 속도 제어 정보 섹션을 참조하세요.

패키지를 한 번만 설치 또는 업데이트(콘솔)

AWS Systems Manager 콘솔을 사용하여 패키지를 한 번만 설치 또는 업데이트할 수 있습니다. 일회성 설치를 구성하는 경우 Distributor는 AWS Systems Manager의 기능인 AWS Systems Manager Run Command를 사용하여 설치를 수행합니다.

패키지를 한 번 설치 또는 업데이트하려면 (콘솔)
  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

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

  3. Distributor 홈 페이지에서 설치할 패키지를 선택합니다.

  4. Install one time(한 번만 설치)을 선택합니다.

    이 명령은 Run Command를 열며, 명령 문서 AWS-ConfigureAWSPackage 및 Distributor 패키지가 이미 선택되어 있습니다.

  5. 문서 버전에서 실행할 AWS-ConfigureAWSPackage 문서의 버전을 선택합니다.

  6. 작업에서 설치를 선택합니다.

  7. Installation type(설치 유형)에서 다음 중 하나를 선택합니다.

    • Uninstall and reinstall(제거 및 재설치): 패키지가 완전히 제거되었다가 다시 설치됩니다. 재설치가 완료될 때까지 애플리케이션을 사용할 수 없습니다.

    • [인플레이스 업데이트(In-place update)]: update 스크립트에서 제공한 지침에 따라 새 파일이나 변경된 파일만 기존 설치에 추가됩니다. 애플리케이션은 업데이트 프로세스 전체에서 사용할 수 있습니다. 이 옵션은 AWSEC2Launch-Agent 패키지를 제외한 AWS 게시 패키지에 대해 지원되지 않습니다.

  8. 이름에 선택한 패키지 이름이 입력되었는지 확인합니다.

  9. (선택 사항) 버전에 패키지의 버전 이름 값을 입력합니다. 이 필드를 비워 두면 Run Command에서는 Distributor에서 선택한 기본 버전을 설치합니다.

  10. 대상 섹션에서, 태그를 지정하거나, 수동으로 관리형 노드를 선택하거나, 리소스 그룹을 지정하여 이 작업을 실행할 인스턴스 또는 장치를 식별합니다.

    참고

    목록에 관리형 노드가 표시되지 않은 경우에는 관리형 노드 가용성 문제 해결 섹션을 참조하세요.

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

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

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

  12. 속도 제어(Rate control)에서:

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

      참고

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

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

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

    참고

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

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

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

  15. 패키지를 설치할 준비가 되면 [실행(Run)]을 선택합니다.

  16. Command status(명령 상태) 영역은 실행 진행률을 보고합니다. 명령이 계속 진행 중인 경우 Overall status(전체 상태) 또는 세부 상태 열에 성공 또는 실패가 표시될 때까지 콘솔의 왼쪽 위 모서리에 있는 새로 고침 아이콘을 선택합니다.

  17. 대상 및 출력(Targets and output) 영역에서 관리형 노드 이름 옆에 있는 버튼을 선택한 후 출력 보기(View output)를 선택합니다.

    명령 출력 페이지에 명령 실행 결과가 표시됩니다.

  18. (옵션) Amazon S3 버킷에 명령 출력을 쓰도록 선택한 경우 출력 로그 데이터를 볼 수 있도록 [Amazon S3]를 선택합니다.

패키지 설치 또는 업데이트 예약(콘솔)

AWS Systems Manager 콘솔을 사용하여 패키지 설치 또는 업데이트를 예약할 수 있습니다. 패키지 설치 또는 업데이트를 예약할 때 Distributor는 AWS Systems Manager State Manager을 사용해 설치 또는 업데이트합니다.

패키지 설치를 예약하려면(콘솔)
  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

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

  3. Distributor 홈 페이지에서 설치 또는 업데이트할 패키지를 선택합니다.

  4. Package(패키지)에서 Install on a schedule(일정에 따라 설치)을 선택합니다.

    이 명령은 자동으로 생성된 새 연결에 대한 State Manager를 엽니다.

  5. 이름에 이름(예: Deploy-test-agent-package)을 입력합니다. 이는 선택 사항이며, 권장 사항은 아닙니다. 공백은 이름에 사용할 수 없습니다.

  6. 문서 목록에는 문서 이름 AWS-ConfigureAWSPackage가 이미 선택되어 있습니다.

  7. 작업에서 설치가 선택되어 있는지 확인합니다.

  8. Installation type(설치 유형)에서 다음 중 하나를 선택합니다.

    • Uninstall and reinstall(제거 및 재설치): 패키지가 완전히 제거되었다가 다시 설치됩니다. 재설치가 완료될 때까지 애플리케이션을 사용할 수 없습니다.

    • [인플레이스 업데이트(In-place update)]: update 스크립트에서 제공한 지침에 따라 새 파일이나 변경된 파일만 기존 설치에 추가됩니다. 애플리케이션은 업데이트 프로세스 전체에서 사용할 수 있습니다.

  9. 이름에 패키지 이름이 입력되었는지 확인합니다.

  10. 최신 게시 버전 이외의 패키지 버전을 설치하려면 버전에 버전 식별자를 입력합니다.

  11. 대상에서 이 계정의 모든 관리형 인스턴스 선택, 태그 지정 또는 수동으로 인스턴스 선택을 선택합니다. 태그를 사용하여 리소스 대상을 지정하는 경우 제공된 필드에 태그 키 및 태그 값을 입력합니다.

    참고

    이 계정의 모든 관리형 인스턴스 선택 또는 인스턴스 수동 선택 중 하나를 통해 관리형 AWS IoT Greengrass 코어 디바이스를 선택할 수 있습니다.

  12. 일정 지정에서 정기적으로 연결을 실행하려면 일정이 있을 때를, 연결을 한 번만 실행하려면 일정이 없을 때를 선택합니다. 이러한 옵션에 대한 자세한 내용은 Systems Manager에서 연결 작업 섹션을 참조하세요. 컨트롤을 사용하여 cron 또는 연결에 대한 일정을 생성합니다.

  13. 연결 생성을 선택합니다.

  14. 연결 페이지에서 생성된 연결 옆에 있는 단추를 선택한 다음, 지금 연결 적용을 선택합니다.

    State Manager는 지정된 대상에 대해 연결을 생성하고 즉시 실행합니다. 실행 중인 연결의 결과에 대한 자세한 내용은 이 설명서의 Systems Manager에서 연결 작업 섹션을 참조하세요.

고급 옵션, 비율 제어(Rate control)출력 옵션(Output options)에서의 옵션 작업에 대한 자세한 내용은 Systems Manager에서 연결 작업 섹션을 참조하세요.

패키지를 한 번만 설치(AWS CLI)

AWS CLI에서 send-command를 실행하여 Distributor 패키지를 한 번 설치할 수 있습니다. 패키지가 이미 설치되어 있으면 패키지가 제거되고 새 버전이 설치되는 동안 애플리케이션이 오프라인으로 전환됩니다.

패키지를 한 번 설치하려면(AWS CLI)
  • AWS CLI에서 다음과 같은 명령을 실행합니다.

    aws ssm send-command \ --document-name "AWS-ConfigureAWSPackage" \ --instance-ids "instance-IDs" \ --parameters '{"action":["Install"],"installationType":["Uninstall and reinstall"],"name":["package-name (in same account) or package-ARN (shared from different account)"]}'
    참고

    installationType에 대한 기본 동작은 Uninstall and reinstall입니다. 전체 패키지를 설치할 때 이 명령에서 "installationType":["Uninstall and reinstall"]을 생략할 수 있습니다.

    다음은 예입니다.

    aws ssm send-command \ --document-name "AWS-ConfigureAWSPackage" \ --instance-ids "i-00000000000000" \ --parameters '{"action":["Install"],"installationType":["Uninstall and reinstall"],"name":["ExamplePackage"]}'

send-command 명령과 함께 사용할 수 있는 다른 옵션에 대한 자세한 내용은 AWS CLI Command Reference의 AWS Systems Manager 섹션에 있는 send-command를 참조하세요.

패키지를 한 번만 업데이트(AWS CLI)

AWS CLI에서 send-command을 실행하면 관련 애플리케이션을 오프라인으로 전환하지 않고 Distributor 패키지를 업데이트할 수 있습니다. 패키지의 새 파일이나 업데이트된 파일만 바뀝니다.

패키지를 한 번 업데이트하려면(AWS CLI)
  • AWS CLI에서 다음과 같은 명령을 실행합니다.

    aws ssm send-command \ --document-name "AWS-ConfigureAWSPackage" \ --instance-ids "instance-IDs" \ --parameters '{"action":["Install"],"installationType":["In-place update"],"name":["package-name (in same account) or package-ARN (shared from different account)"]}'
    참고

    새 파일이나 변경된 파일을 추가할 때는 명령에 "installationType":["In-place update"]를 포함해야 합니다.

    다음은 예입니다.

    aws ssm send-command \ --document-name "AWS-ConfigureAWSPackage" \ --instance-ids "i-02573cafcfEXAMPLE" \ --parameters '{"action":["Install"],"installationType":["In-place update"],"name":["ExamplePackage"]}'

send-command 명령과 함께 사용할 수 있는 다른 옵션에 대한 자세한 내용은 AWS CLI Command Reference의 AWS Systems Manager 섹션에 있는 send-command를 참조하세요.

패키지 설치 예약(AWS CLI)

AWS CLI에서 create-association을 실행하여 일정에 따라 Distributor 패키지를 설치할 수 있습니다. --name 값 즉, 문서 이름은 항상 AWS-ConfigureAWSPackage입니다. 다음 명령은 키 InstanceIds를 사용하여 대상 관리형 노드를 지정합니다. 패키지가 이미 설치되어 있으면 패키지가 제거되고 새 버전이 설치되는 동안 애플리케이션이 오프라인으로 전환됩니다.

aws ssm create-association \ --name "AWS-ConfigureAWSPackage" \ --parameters '{"action":["Install"],"installationType":["Uninstall and reinstall"],"name":["package-name (in same account) or package-ARN (shared from different account)"]}' \ --targets [{\"Key\":\"InstanceIds\",\"Values\":[\"instance-ID1\",\"instance-ID2\"]}]
참고

installationType에 대한 기본 동작은 Uninstall and reinstall입니다. 전체 패키지를 설치할 때 이 명령에서 "installationType":["Uninstall and reinstall"]을 생략할 수 있습니다.

다음은 예입니다.

aws ssm create-association \ --name "AWS-ConfigureAWSPackage" \ --parameters '{"action":["Install"],"installationType":["Uninstall and reinstall"],"name":["Test-ConfigureAWSPackage"]}' \ --targets [{\"Key\":\"InstanceIds\",\"Values\":[\"i-02573cafcfEXAMPLE\",\"i-0471e04240EXAMPLE\"]}]

create-association 명령과 함께 사용할 수 있는 다른 옵션에 대한 자세한 내용은 AWS CLI Command Reference의 AWS Systems Manager 섹션에 있는 create-association를 참조하세요.

패키지 업데이트 예약(AWS CLI)

AWS CLI에서 create-association을 실행하면 관련 애플리케이션을 오프라인으로 전환하지 않고 일정에 따라 Distributor 패키지를 업데이트할 수 있습니다. 패키지의 새 파일이나 업데이트된 파일만 바뀝니다. --name 값 즉, 문서 이름은 항상 AWS-ConfigureAWSPackage입니다. 다음 명령은 키 InstanceIds를 사용하여 대상 인스턴스를 지정합니다.

aws ssm create-association \ --name "AWS-ConfigureAWSPackage" \ --parameters '{"action":["Install"],"installationType":["In-place update"],"name":["package-name (in same account) or package-ARN (shared from different account)"]}' \ --targets [{\"Key\":\"InstanceIds\",\"Values\":[\"instance-ID1\",\"instance-ID2\"]}]
참고

새 파일이나 변경된 파일을 추가할 때는 명령에 "installationType":["In-place update"]를 포함해야 합니다.

다음은 예입니다.

aws ssm create-association \ --name "AWS-ConfigureAWSPackage" \ --parameters '{"action":["Install"],"installationType":["In-place update"],"name":["Test-ConfigureAWSPackage"]}' \ --targets [{\"Key\":\"InstanceIds\",\"Values\":[\"i-02573cafcfEXAMPLE\",\"i-0471e04240EXAMPLE\"]}]

create-association 명령과 함께 사용할 수 있는 다른 옵션에 대한 자세한 내용은 AWS CLI Command Reference의 AWS Systems Manager 섹션에 있는 create-association를 참조하세요.