

# 외부 인스턴스의 AWS Systems Manager 에이전트 및 Amazon ECS 컨테이너 에이전트 업데이트
<a name="ecs-anywhere-updates"></a>

온프레미스 서버 또는 VM은 Amazon ECS 워크로드를 실행할 때 AWS Systems Manager 에이전트(SSM Agent) 및 Amazon ECS 컨테이너 에이전트를 모두 실행해야 합니다. AWS는 기능이 추가되거나 업데이트될 때 이러한 에이전트의 새 버전을 릴리스합니다. 외부 인스턴스에서 이전 버전의 에이전트를 사용하는 경우 다음 절차에 따라 에이전트를 업데이트할 수 있습니다.

## 외부 인스턴스에서 SSM Agent 업데이트
<a name="ecs-anywhere-updates-ssmagent"></a>

AWS Systems Manager는 인스턴스에서 SSM Agent를 업데이트하는 프로세스를 자동화하는 것이 좋습니다. 업데이트를 자동화하는 몇 가지 방법이 있습니다. 자세한 정보는 *AWS Systems Manager 사용 설명서*의 [SSM Agent 업데이트 자동화](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-automatic-updates.html)를 참조하세요.

## 외부 인스턴스에서 Amazon ECS 에이전트 업데이트
<a name="ecs-anywhere-updates-ecsagent"></a>

외부 인스턴스에서 `ecs-init` 패키지를 업그레이드하여 Amazon ECS 컨테이너 에이전트를 업데이트합니다. Amazon ECS 에이전트를 업데이트해도 실행 중인 태스크나 서비스가 중단되지 않습니다. Amazon ECS는 각 리전의 Amazon S3 버킷에 `ecs-init` 패키지와 서명 파일을 제공합니다. `ecs-init` 버전 `1.52.1-1`을 시작할 때 Amazon ECS는 외부 인스턴스에서 사용하는 운영 체제 및 시스템 아키텍처에 따라 사용할 수 있는 별도의 `ecs-init` 패키지를 제공합니다.

다음 표를 사용하여 외부 인스턴스에서 사용하는 운영 체제 및 시스템 아키텍처를 기반으로 다운로드해야 하는 `ecs-init` 패키지를 결정합니다.

**참고**  
다음 명령을 사용하여 외부 인스턴스에서 사용하는 운영 체제 및 시스템 아키텍처를 결정할 수 있습니다.  

```
cat /etc/os-release
uname -m
```


| 운영 체제(아키텍처) | ecs-init 패키지 | 
| --- | --- | 
|  CentOS 7(x86\$164) CentOS 8(x86\$164) CentOS Stream 9(x86\$164) SUSE Enterprise Server 15(x86\$164) RHEL 7(x86\$164) RHEL 8 (x86\$164)  |  `amazon-ecs-init-latest.x86_64.rpm`  | 
|  CentOS 7(aarch64) CentOS 8(aarch64) CentOS Stream 9(aarch64) RHEL 7(aarch64)  |  `amazon-ecs-init-latest.aarch64.rpm`  | 
|  Debian 9(x86\$164) Debian 10(x86\$164) Debian 11(x86\$164) Debian 12(x86\$164) Ubuntu 18(x86\$164) Ubuntu 20(x86\$164) Ubuntu 22(x86\$164) Ubuntu 24(x86\$164)  |  `amazon-ecs-init-latest.amd64.deb`  | 
|  Debian 9(aarch64) Debian 10(aarch64) Debian 11(aarch64) Debian 12(aarch64) Ubuntu 18(aarch64) Ubuntu 20(aarch64) Ubuntu 22(aarch64) Ubuntu 24(aarch64)  |  `amazon-ecs-init-latest.arm64.deb`  | 

Amazon ECS 에이전트를 업데이트하려면 다음 단계를 따르세요.

**Amazon ECS 에이전트를 업데이트하려면**

1. 실행 중인 Amazon ECS 에이전트 버전을 확인합니다.

   ```
   curl -s 127.0.0.1:51678/v1/metadata | python3 -mjson.tool
   ```

1. 운영 체제 및 시스템 아키텍처에 맞는 `ecs-init` 패키지를 다운로드합니다. Amazon ECS는 각 리전의 Amazon S3 버킷에 `ecs-init` 패키지 파일을 제공합니다. 명령의 *<region>* 식별자를 지리적으로 가장 가까운 리전 이름(예: `us-west-2`)으로 교체했는지 확인합니다.

   **amazon-ecs-init-latest.x86\$164.rpm**

   ```
   curl -o amazon-ecs-init.rpm https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.x86_64.rpm
   ```

   **amazon-ecs-init-latest.aarch64.rpm**

   ```
   curl -o amazon-ecs-init.rpm https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.aarch64.rpm
   ```

   **amazon-ecs-init-latest.amd64.deb**

   ```
   curl -o amazon-ecs-init.deb https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.amd64.deb
   ```

   **amazon-ecs-init-latest.arm64.deb**

   ```
   curl -o amazon-ecs-init.deb https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.arm64.deb
   ```

1. (선택 사항) PGP 서명을 사용하여 `ecs-init` 패키지 파일을 유효성을 확인합니다.

   1. GnuPG를 다운로드하고 설치합니다. GNUpg에 대한 자세한 정보는 [GnuPG 웹 사이트](https://www.gnupg.org)를 참조하세요. Linux 시스템의 경우 원하는 Linux 패키지 관리자를 사용하여 `gpg`를 설치합니다.

   1. Amazon ECS PGP 퍼블릭 키를 가져옵니다.

      ```
      gpg --keyserver hkp://keys.gnupg.net:80 --recv BCE9D9A42D51784F
      ```

   1. `ecs-init` 패키지 서명을 다운로드합니다. 서명은 `.asc` 확장자 파일에 저장된 ASCII 분리 PGP 서명입니다. Amazon ECS는 각 리전의 Amazon S3 버킷에 서명 파일을 제공합니다. 명령의 *<region>* 식별자를 지리적으로 가장 가까운 리전 이름(예: `us-west-2`)으로 교체했는지 확인합니다.

      **amazon-ecs-init-latest.x86\$164.rpm**

      ```
      curl -o amazon-ecs-init.rpm.asc https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.x86_64.rpm.asc
      ```

      **amazon-ecs-init-latest.aarch64.rpm**

      ```
      curl -o amazon-ecs-init.rpm.asc https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.aarch64.rpm.asc
      ```

      **amazon-ecs-init-latest.amd64.deb**

      ```
      curl -o amazon-ecs-init.deb.asc https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.amd64.deb.asc
      ```

      **amazon-ecs-init-latest.arm64.deb**

      ```
      curl -o amazon-ecs-init.deb.asc https://s3.<region>.amazonaws.com/amazon-ecs-agent-<region>/amazon-ecs-init-latest.arm64.deb.asc
      ```

   1. 키를 사용해 `ecs-init` 패키지 파일을 확인합니다.

      **`rpm` 패키지의 경우**

      ```
      gpg --verify amazon-ecs-init.rpm.asc ./amazon-ecs-init.rpm
      ```

      **`deb` 패키지의 경우**

      ```
      gpg --verify amazon-ecs-init.deb.asc ./amazon-ecs-init.deb
      ```

      예상 출력은 다음과 같습니다.

      ```
      gpg: Signature made Fri 14 May 2021 09:31:36 PM UTC
      gpg:                using RSA key 50DECCC4710E61AF
      gpg: Good signature from "Amazon ECS <ecs-security@amazon.com>" [unknown]
      gpg: WARNING: This key is not certified with a trusted signature!
      gpg:          There is no indication that the signature belongs to the owner.
      Primary key fingerprint: F34C 3DDA E729 26B0 79BE  AEC6 BCE9 D9A4 2D51 784F
           Subkey fingerprint: D64B B6F9 0CF3 77E9 B5FB  346F 50DE CCC4 710E 61AF
      ```

1. `ecs-init` 패키지를 설치합니다.

   **CentOS 7, CentOS 8, RHEL 7의 `rpm` 패키지의 경우**

   ```
   sudo yum install -y ./amazon-ecs-init.rpm
   ```

   **SUSE Enterprise Server 15의 `rpm` 패키지의 경우**

   ```
   sudo zypper install -y --allow-unsigned-rpm ./amazon-ecs-init.rpm
   ```

   **`deb` 패키지의 경우**

   ```
   sudo dpkg -i ./amazon-ecs-init.deb
   ```

1. `ecs` 서비스를 다시 시작합니다.

   ```
   sudo systemctl restart ecs
   ```

1. Amazon ECS 에이전트 버전이 업데이트되었는지 확인합니다.

   ```
   curl -s 127.0.0.1:51678/v1/metadata | python3 -mjson.tool
   ```