3단계: 하이브리드 환경을 위한 SSM Agent 설치(Linux) - AWS Systems Manager

3단계: 하이브리드 환경을 위한 SSM Agent 설치(Linux)

이 주제에서는 하이브리드 환경에서 Linux 시스템에 AWS Systems Manager SSM Agent를 설치하는 방법을 설명합니다. 하이브리드 환경에서 Windows Server 시스템을 사용할 계획인 경우 다음 단계인 4단계: 하이브리드 환경을 위한 SSM Agent 설치(Windows)을 참조하세요.

중요

이 절차는 온프레미스 또는 하이브리드 환경의 서버 및 가상 머신(VM)용입니다. Linux용 EC2 인스턴스에서 SSM Agent를 다운로드하고 설치하려면 Linux용 EC2 인스턴스에서 SSM Agent 사용 섹션을 참조하세요.

시작하기 전에 앞의 2단계: 하이브리드 환경을 위한 관리형 노드 활성화 생성에서 관리형 노드 활성화를 완료한 후 받은 정품 인증 코드 및 활성화 ID를 찾습니다. 다음 절차에서 코드 및 ID를 지정합니다.

다음 스크립트의 URL을 사용하면 모든 AWS 리전에서 SSM Agent를 다운로드할 수 있습니다. 특정 리전의 에이전트를 다운로드할 경우 운영 체제의 URL을 복사한 다음 region을 적절한 값으로 바꿉니다.

리전은 미국 동부(오하이오) 리전의 us-east-2 같이 AWS Systems Manager가 지원하는 AWS 리전의 식별자를 나타냅니다. 지원되는 리전 값 목록은 Amazon Web Services General ReferenceSystems Manager service endpoints에 있는 Region 열을 참조하세요.

예를 들어 미국 동부(오하이오) 리전(us-east-2)에서 Amazon Linux, RHEL, CentOS 및 SLES 64비트용 SSM Agent를 다운로드하려면 다음 URL을 사용합니다.

https://s3.us-east-2.amazonaws.com/amazon-ssm-us-east-2/latest/linux_amd64/amazon-ssm-agent.rpm
Amazon Linux 2, Amazon Linux, RHEL, Oracle Linux, CentOS, and SLES
  • x86_64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/linux_amd64/amazon-ssm-agent.rpm

  • x86

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/linux_386/amazon-ssm-agent.rpm

  • ARM64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/linux_arm64/amazon-ssm-agent.rpm

RHEL 6.x, CentOS 6.x
  • x86_64

    https://s3.region.amazonaws.com/amazon-ssm-region/3.0.1479.0/linux_amd64/amazon-ssm-agent.rpm

  • x86

    https://s3.region.amazonaws.com/amazon-ssm-region/3.0.1479.0/linux_386/amazon-ssm-agent.rpm

Ubuntu 서버
  • x86_64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_amd64/amazon-ssm-agent.deb

  • ARM64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_arm64/amazon-ssm-agent.deb

  • x86

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_386/amazon-ssm-agent.deb

Debian 서버
  • x86_64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_amd64/amazon-ssm-agent.deb

  • ARM64

    https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_arm64/amazon-ssm-agent.deb

Raspberry Pi OS (formerly Raspbian)
  • https://s3.region.amazonaws.com/amazon-ssm-region/latest/debian_arm/amazon-ssm-agent.deb

하이브리드 환경의 서버와 VM에 SSM Agent를 설치하려면
  1. 하이브리드 환경의 서버 또는 VM에 로그온합니다.

  2. HTTP 또는 HTTPS 프록시를 사용하는 경우 현재 셸 세션에서 http_proxy 또는 https_proxy 환경 변수를 설정해야 합니다. 프록시를 사용하지 않는 경우 이 단계를 건너뛸 수 있습니다.

    HTTP 프록시 서버의 경우 명령줄에 다음 명령을 입력합니다.

    export http_proxy=http://hostname:port export https_proxy=http://hostname:port

    HTTPS 프록시 서버의 경우 명령줄에 다음 명령을 입력합니다.

    export http_proxy=http://hostname:port export https_proxy=https://hostname:port
  3. 다음 명령 블록 중 하나를 복사하여 SSH에 붙여 넣습니다. 관리형 노드 활성화를 생성할 때 생성된 활성화 코드 및 활성화 ID와 SSM Agent를 다운로드하려는 AWS 리전의 식별자로 자리 표시자 값을 바꾸고 Enter 키를 누릅니다.

    참고

    다음과 같은 중요 세부 정보에 주의합니다.

    • 루트 사용자인 경우 sudo가 필요 없습니다.

    • 각 명령 블록은 sudo -E amazon-ssm-agent를 지정합니다. 이 -E는 HTTP 또는 HTTPS 프록시 환경 변수를 설정하는 경우에만 필요합니다.

    • 다음 URL에 'ec2-downloads-windows'라고 표시되더라도 이는 올바른 Linux 운영 체제 URL입니다.

    리전은 미국 동부(오하이오) 리전의 us-east-2 같이 AWS Systems Manager가 지원하는 AWS 리전의 식별자를 나타냅니다. 지원되는 리전 값 목록은 Amazon Web Services General ReferenceSystems Manager service endpoints에 있는 Region 열을 참조하세요.

mkdir /tmp/ssm curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/3.0.1479.0/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm sudo stop amazon-ssm-agent sudo -E amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" sudo start amazon-ssm-agent
mkdir /tmp/ssm curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm sudo stop amazon-ssm-agent sudo -E amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" sudo start amazon-ssm-agent
mkdir /tmp/ssm curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm sudo yum install -y /tmp/ssm/amazon-ssm-agent.rpm sudo systemctl stop amazon-ssm-agent sudo -E amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" sudo systemctl start amazon-ssm-agent
mkdir /tmp/ssm curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm -o /tmp/ssm/amazon-ssm-agent.rpm sudo dnf install -y /tmp/ssm/amazon-ssm-agent.rpm sudo systemctl stop amazon-ssm-agent sudo -E amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" sudo systemctl start amazon-ssm-agent
mkdir /tmp/ssm wget https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_amd64/amazon-ssm-agent.deb -O /tmp/ssm/amazon-ssm-agent.deb sudo dpkg -i /tmp/ssm/amazon-ssm-agent.deb sudo service amazon-ssm-agent stop sudo -E amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" sudo service amazon-ssm-agent start
mkdir /tmp/ssm sudo curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_arm/amazon-ssm-agent.deb -o /tmp/ssm/amazon-ssm-agent.deb sudo dpkg -i /tmp/ssm/amazon-ssm-agent.deb sudo service amazon-ssm-agent stop sudo -E amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" sudo service amazon-ssm-agent start
mkdir /tmp/ssm sudo wget https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm sudo rpm --install amazon-ssm-agent.rpm sudo systemctl stop amazon-ssm-agent sudo -E amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" sudo systemctl enable amazon-ssm-agent sudo systemctl start amazon-ssm-agent
  • .deb 패키지 사용

    mkdir /tmp/ssm curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_amd64/amazon-ssm-agent.deb -o /tmp/ssm/amazon-ssm-agent.deb sudo dpkg -i /tmp/ssm/amazon-ssm-agent.deb sudo service amazon-ssm-agent stop sudo -E amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" sudo service amazon-ssm-agent start
  • Snap 패키지 사용

    snap 명령은 Snap 앱 스토어(https://snapcraft.io)에서 에이전트를 자동으로 다운로드하기 때문에 다운로드를 위해 URL을 지정할 필요는 없습니다.

    Ubuntu Server 20.10 STR 및 20.04, 18.04 및 16.04 LTS에서는 에이전트 바이너리 및 구성 파일을 포함한 SSM Agent 설치 관리자 파일이 /snap/amazon-ssm-agent/current/ 디렉터리에 저장됩니다. 이 디렉터리의 구성 파일을 변경하는 경우 /snap 디렉터리에서 /etc/amazon/ssm/ 디렉터리로 이러한 파일을 복사해야 합니다. 로그 및 라이브러리 파일이 변경되지 않았습니다(/var/lib/amazon/ssm, /var/log/amazon/ssm).

    sudo snap install amazon-ssm-agent --classic sudo systemctl stop snap.amazon-ssm-agent.amazon-ssm-agent.service sudo /snap/amazon-ssm-agent/current/amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" sudo systemctl start snap.amazon-ssm-agent.amazon-ssm-agent.service
    중요

    Snap Store의 후보(candidate) 채널에는 최신 버전의 SSM Agent가 있습니다. 안정적인 채널은 아닙니다. 후보 채널에서 SSM Agent 버전 정보를 추적하려면 Ubuntu Server 18.04 및 16.04 LTS 64비트 관리형 노드에서 다음 명령을 실행합니다.

    sudo snap switch --channel=candidate amazon-ssm-agent

이 명령은 하이브리드 환경의 서버 또는 VM에 SSM Agent를 다운로드하고 설치합니다. 또한 SSM Agent를 중지한 후 서버 또는 VM을 Systems Manager 서비스에 등록합니다. 이제 해당 서버 또는 VM은 관리형 노드가 되었습니다. Systems Manager에 대해 구성된 Amazon EC2 인스턴스도 관리형 노드입니다. 하지만 Systems Manager 콘솔에서 온프레미스 노드 앞에는 접두사 ‘mi-’가 붙어 Amazon EC2 인스턴스와 구별됩니다.

계속해서 4단계: 하이브리드 환경을 위한 SSM Agent 설치(Windows)로 이동하십시오.

프라이빗 키 자동 교체 설정

보안 태세를 강화하기 위해 하이브리드 환경의 프라이빗 키를 자동으로 교체하도록 AWS Systems Manager Agent(SSM Agent)를 구성할 수 있습니다. SSM Agent 버전 3.0.1031.0 이상을 사용하여 이 기능에 액세스할 수 있습니다. 다음 절차에 따라 이 기능을 설정합니다.

하이브리드 환경 프라이빗 키를 교체하도록 SSM Agent를 구성하려면
  1. /etc/amazon/ssm/(Linux 시스템) 또는 C:\Program Files\Amazon\SSM(Windows 시스템)으로 이동합니다.

  2. amazon-ssm-agent.json.template의 내용을 amazon-ssm-agent.json이라는 새 파일에 복사합니다. amazon-ssm-agent.json.template이 위치한 동일한 디렉터리에 amazon-ssm-agent.json을 저장합니다.

  3. Profile, KeyAutoRotateDays를 찾습니다. 자동 프라이빗 키 교체 간격(일)을 입력합니다.

  4. SSM Agent을 다시 시작합니다.

구성을 변경할 때마다 SSM Agent를 다시 시작합니다.

동일한 절차를 사용하여 SSM Agent의 다른 기능을 사용자 정의할 수 있습니다. 사용 가능한 구성 속성 및 기본값의 최신 목록은 Config 속성 정의를 참조하세요.

관리형 노드 등록 취소 및 다시 등록

AWS CLI 또는 Tools for Windows PowerShell에서 DeregisterManagedInstance API 작업을 호출하여 관리형 노드를 등록 취소할 수 있습니다. 다음은 CLI 명령의 예입니다.

aws ssm deregister-managed-instance --instance-id "mi-1234567890"

관리형 노드를 등록 취소한 후 다시 등록할 수 있습니다. 다음 절차에 따라 관리형 노드를 다시 등록합니다. 이 절차를 완료하면 관리형 노드가 관리형 노드 목록에 다시 표시됩니다.

Linux 하이브리드 시스템에서 관리형 노드를 다시 등록하려면
  1. 노드에 연결합니다.

  2. 다음 명령을 실행합니다. 자리표시자 값을 관리형 노드 활성화를 생성할 때 생성된 활성화 코드 및 활성화 ID와 SSM Agent를 다운로드하려는 리전의 식별자로 바꿔야 합니다.

    echo "yes" | sudo amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" && sudo systemctl restart amazon-ssm-agent

Linux 하이브리드 환경에서 SSM Agent 설치 문제 해결

다음 정보를 사용하면 Linux 하이브리드 환경에서 SSM Agent를 설치하는 문제를 해결하는 데 도움이 됩니다.

DeliveryTimedOut 오류 발생

문제: 하나의 AWS 계정에 관리형 노드를 별도의 AWS 계정에 대한 관리형 노드로 구성하는 동안 대상 노드에 SSM Agent를 설치하는 명령을 실행한 후 DeliveryTimedOut 오류가 발생합니다.

해결 방법: DeliveryTimedOut은 이 시나리오에 대한 예상 응답 코드입니다. 대상 노드에 SSM Agent를 설치하는 명령은 소스 노드의 노드 ID를 변경합니다. 노드 ID가 변경되었기 때문에 소스 노드는 명령 실행 중 실패, 완료 또는 시간 초과된 대상 노드에 응답할 수 없습니다.

노드 연결을 로드할 수 없음

문제: 설치 명령을 실행한 후 SSM Agent 오류 로그에 다음 오류가 표시됩니다.

Unable to load instance associations, unable to retrieve associations unable to retrieve associations error occurred in RequestManagedInstanceRoleToken: MachineFingerprintDoesNotMatch: Fingerprint doesn't match

재부팅 후 시스템 ID가 유지되지 않는 경우 이 오류가 표시됩니다.

해결 방법: 이 문제를 수정하려면 다음 명령을 실행합니다. 이 명령은 재부팅 후에도 시스템 ID가 유지되도록 합니다.

umount /etc/machine-id systemd-machine-id-setup