外部启动类型的 Amazon ECS 集群 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

外部启动类型的 Amazon ECS 集群

Amazon ECS Anywhere 支持向 Amazon ECS 群集注册外部实例,如本地部署服务器或虚拟机(VM)。外部实例针对生成出站流量或流程数据的运行应用程序进行了优化。如果应用程序需要入站流量,则缺乏 Elastic Load Balancing 支持会降低运行这些工作负载的效率。Amazon ECS添加了一个新的 EXTERNAL 启动类型,您可以使用该类型在外部实例上创建服务或运行任务。

下面介绍了 Amazon ECS Anywhere 的高级系统体系结构概述。您的本地服务器同时也安装了 Amazon ECS 代理和 SSM 代理。

显示 Amazon ECS Anywhere 的体系架构示意图。

支持的操作系统和系统体系结构

以下是受支持的操作系统和系统体系结构的列表。

  • Amazon Linux 2

  • Amazon Linux 2023

  • CentOS 7

  • CentOS Stream 9

  • RHEL 7、RHEL 8 — Docker 或 RHEL 的开放程序包存储库都不支持在 RHEL 上本地安装 Docker。在运行本文档中描述的安装脚本之前,您必须确保已安装 Docker。

  • Fedora 32、Fedora 33、Fedora 40

  • openSUSE Tumbleweed

  • Ubuntu 18、Ubuntu 20、Ubuntu 22、Ubuntu 24

  • Debian 10

    重要

    Debian 9 长期支持(LTS 支持)已于 2022 年 6 月 30 日结束,并且不再受 Amazon ECS Anywhere 支持。

  • Debian 11

  • Debian 12

  • SUSE Enterprise Server 15

  • 支持 x86_64ARM64 CPU 体系结构。

  • 支持以下 Windows 操作系统版本:

    • Windows Server 2022

    • Windows Server 2019

    • Windows Server 2016

    • Windows Server 20H2

注意事项

在开始使用外部实例之前,请注意以下注意事项。

  • 您可以一次向一个集群注册一个外部实例。有关如何向其他集群注册外部实例的说明,请参阅 注销 Amazon ECS 外部实例

  • 您的外部实例需要 IAM 角色,允许它们与 Amazon API通信。有关更多信息,请参阅 Amazon ECS Anywhere IAM 角色

  • 您的外部实例不应具有本地定义的预配置实例凭据链,因为这会干扰注册脚本。

  • 要将容器日志发送到 CloudWatch Logs,请确保在任务定义中创建并指定任务执行 IAM 角色。

  • 当外部实例注册到集群时,ecs.capability.external 属性与实例相关联。此属性将实例标识为外部实例。可以将自定义属性添加到外部实例中,用作任务放置约束。有关更多信息,请参阅 自定义属性

  • 您可以将资源标签添加到外部实例。有关更多信息,请参阅 外部容器实例

  • ECS Exec 在外部实例上受支持。有关更多信息,请参阅 使用 ECS Exec 监控 Amazon ECS 容器

  • 以下是特定于与外部实例联网的其他注意事项。有关更多信息,请参阅 联网

    • 不支持服务负载平衡。

    • 不支持服务发现。

    • 在外部实例上运行的任务必须使用 bridgehostnone 网络模式。不支持 awsvpc 网络模式。

    • 每个 Amazon 区域都有 Amazon ECS 服务域。必须允许这些服务域向外部实例发送流量。

    • 安装在外部实例上的 SSM Agent 维护使用硬件指纹每 30 分钟轮换一次的 IAM 凭证。如果您的外部实例与 Amazon 断开连接,SSM Agent 会在重新建立连接后自动刷新凭证。有关更多信息,请参阅 Amazon Systems Manager 用户指南中的使用硬件指纹验证本地部署服务器和虚拟机

  • 不支持 UpdateContainerAgent API。有关如何更新外部实例上的 SSM Agent 或 Amazon ECS 代理的说明,请参阅 更新外部实例上的 Amazon Systems Manager 代理和 Amazon ECS 容器代理

  • 不支持 Amazon ECS 容量提供程序。要在外部实例上创建服务或运行独立任务,请使用 EXTERNAL 启动任务。

  • 不支持 SELinux。

  • 不支持使用 Amazon EFS 卷或指定 EFSVolumeConfiguration

  • 不支持与 App Mesh 集成。

  • 如果您使用控制台创建外部实例任务定义,则必须使用控制台 JSON 编辑器来创建任务定义。

  • 在 Windows 上运行 ECS Anywhere 时,必须在本地基础设施上使用自己的 Windows 许可证。

  • 当您使用非 Amazon ECS 优化的 AMI 时,请在外部容器实例上运行以下命令来配置规则,以便将 IAM 角色用于任务。有关更多信息,请参阅 外部实例附加配置

    $ sysctl -w net.ipv4.conf.all.route_localnet=1 $ iptables -t nat -A PREROUTING -p tcp -d 169.254.170.2 --dport 80 -j DNAT --to-destination 127.0.0.1:51679 $ iptables -t nat -A OUTPUT -d 169.254.170.2 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 51679

联网

Amazon ECS 外部实例针对运行生成出站流量或处理数据的应用程序进行了优化。如果您的应用程序需要入站流量,例如web服务,则缺乏 Elastic Load Balancing 支持会降低运行这些工作负载的效率,因为不支持将这些工作负载置于负载平衡器之后。

以下是特定于与外部实例联网的其他注意事项。

  • 不支持服务负载平衡。

  • 不支持服务发现。

  • 在外部实例上运行的 Linux 任务必须使用 bridgehostnone 网络模式。不支持 awsvpc 网络模式。

    有关各网络模式的更多信息,请参阅 Amazon ECS 最佳实践指南中的选择网络模式

  • 在外部实例上运行的 Windows 任务必须使用 default 网络模式。

  • 每个区域都有 Amazon ECS 服务域,必须允许其向外部实例发送流量。

  • 安装在外部实例上的 SSM Agent 维护使用硬件指纹每 30 分钟轮换一次的 IAM 凭证。如果您的外部实例与 Amazon 断开连接,SSM Agent 会在重新建立连接后自动刷新凭证。有关更多信息,请参阅 Amazon Systems Manager 用户指南中的使用硬件指纹验证本地部署服务器和虚拟机

以下域用于 Amazon ECS 服务和安装在您的外部实例上的 Amazon ECS 代理之间的通信。确保允许流量并且 DNS 解析工作正常。对于每个端点,区域表示 Amazon ECS 支持的 Amazon 区域的区域标识符,例如美国东部(俄亥俄州)区域 us-east-2。应允许使用所有区域的端点。对于 ecs-aecs-t 端点,应包含星号(例如,ecs-a-*)。

  • ecs-a-*.region.amazonaws.com— 托管任务时使用此端点。

  • ecs-t-*.region.amazonaws.com— 此端点用于托管任务和容器指标。

  • ecs.region.amazonaws.com— 这是 Amazon ECS 的服务端点。

  • ssm.region.amazonaws.com — 这是 Amazon Systems Manager 的服务端点。

  • ec2messages.region.amazonaws.com — 这是 Amazon Systems Manager 用于在云中的 Systems Manager 代理和 Systems Manager 服务之间进行通信的服务端点。

  • ssmmessages.region.amazonaws.com — 这是使用云中的 Session Manager 服务创建和删除会话通道所需的服务端点。

  • 如果您的任务需要与任何其他 Amazon 服务通信,请确保允许这些服务端点可用。示例应用程序包括使用 Amazon ECR 提取容器镜像或使用 CloudWatch Logs 的 CloudWatch。有关更多信息,请参阅 Amazon 一般引用指南中的服务端点

Amazon FSx for Windows File Server 与 ECS Anywhere

要将 Amazon FSx for Windows File Server 与 Amazon ECS 外部实例结合使用,您必须在您的本地数据中心与 Amazon Web Services 云 之间建立连接。有关将您的网络连接到 VPC 的选项的信息,请参阅 Amazon Virtual Private Cloud 连接性选项

gMSA 与 ECS Anywhere

ECS Anywhere 支持以下使用案例。

  • Active Directory 位于 Amazon Web Services 云 中 - 对于此配置,您将使用 Amazon Direct Connect 连接在您的本地网络和 Amazon Web Services 云 之间创建连接。有关如何创建连接的信息,请参阅 Amazon Virtual Private Cloud 连接性选项。您可以在 Amazon Web Services 云 中创建 Active Directory。有关如何开始使用 Amazon Directory Service 的信息,请参阅 Amazon Directory Service 管理指南中的设置 Amazon Directory Service。然后,您可以使用 Amazon Direct Connect 连接将外部实例加入域。有关将 gMSA 与 Amazon ECS 结合使用的信息,请参阅 了解了解如何将 gMSA 用于适用于 Amazon ECS 的 EC2 Windows 容器

  • Active Directory 位于本地数据中心。- 对于此配置,您将您的外部实例加入到本地 Active Directory。然后,在运行 Amazon ECS 任务时,您可以使用本地可用的凭证。