更新外部实例上的 AWS Systems Manager 代理和 Amazon ECS 容器代理 - Amazon Elastic Container Service

更新外部实例上的 AWS Systems Manager 代理和 Amazon ECS 容器代理

运行 Amazon ECS 工作负载时,您的本地部署服务器或 VM 必须同时运行 AWS Systems Manager 代理 (SSM Agent) 和 Amazon ECS 容器代理。AWS 在添加或更新任何功能时发布这些代理的新版本。如果您的外部实例正在使用任一代理的早期版本,则可以使用以下过程更新。

更新外部实例上的 SSM Agent

AWS Systems Manager 建议您自动完成更新实例上的 SSM Agent 的过程。它们提供了多种自动更新的方法。有关更多信息,请参阅 AWS Systems Manager 用户指南中的自动更新 SSM Agent

更新外部实例上的 Amazon ECS 代理

在您的外部实例上,Amazon ECS 容器代理将通过升级 ecs-init 程序包更新。更新 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_64)

CentOS 8 (x86_64)

CentOS Stream 9 (x86_64)

SUSE Enterprise Server 15 (x86_64)

RHEL 7 (x86_64)

RHEL 8 (x86_64)

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_64)

Debian 10 (x86_64)

Debian 11 (x86_64)

Debian 12 (x86_64)

Ubuntu 18 (x86_64)

Ubuntu 20 (x86_64)

Ubuntu 22 (x86_64)

Ubuntu 24 (x86_64)

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
  2. 下载适用于您的操作系统和系统体系结构的ecs-init 程序包。Amazon ECS在每个区域的 Amazon S3 存储桶中提供 ecs-init 程序包文件。确保将命令中的<region>标识符替换为地理位置最接近的区域名称(例如,us-west-2)。

    amazon-ecs-init-latest.x86_64.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
  3. (可选)用 PGP 签名验证 ecs-init 程序包文件。

    1. 下载并安装 GnuPG。有关 GnuPG 的更多信息,请参阅 GnuPG 网站。对于 Linux 系统,使用您的 Linux 风格的程序包管理器安装 gpg

    2. 检索 Amazon ECS PGP 公钥。

      gpg --keyserver hkp://keys.gnupg.net:80 --recv BCE9D9A42D51784F
    3. 下载 ecs-init 程序包签名文件。签名是存储在扩展名为 .asc 的文件中的 ASCII 分离 PGP 签名。Amazon ECS在每个区域的 Amazon S3 存储桶中提供签名文件。确保将命令中的<region>标识符替换为地理位置最接近的区域名称(例如,us-west-2)。

      amazon-ecs-init-latest.x86_64.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
    4. 用密钥验证 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
  4. 安装 ecs-init 软件包。

    对于 CentOS 7、CentOS 8 和 RHEL 7 上的 rpm 程序包

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

    对于SUSE 企业服务器 15 上的 rpm 程序包

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

    对于 deb 程序包

    sudo dpkg -i ./amazon-ecs-init.deb
  5. 重新启动 ecs 服务。

    sudo systemctl restart ecs
  6. 验证 Amazon ECS 代理版本是否已更新。

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