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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

外部实例 (Amazon ECS Anywhere)

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

下面介绍了 Amazon ECS Anywhere 的高级系统体系结构概述。


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

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

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

  • Amazon Linux 2

  • CentOS 7

  • CentOS Stream 8

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

  • Fedora 32、Fedora 33

  • openSUSE Tumbleweed

  • Ubuntu 18、Ubuntu 20、Ubuntu 22

  • Debian 10

    重要

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

  • SUSE Enterprise Server 15

  • 支持 x86_64ARM64 CPU 体系结构。

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

    • Windows Server 2022

    • Windows Server 2019

    • Windows Server 2016

    • Windows Server 20H2

注意事项

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

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

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

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

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

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

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

  • ECS Exec 在外部实例上受支持。有关更多信息,请参阅使用 Amazon ECS Exec进行调试

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

    • 不支持服务负载平衡。

    • 不支持服务发现。

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

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

    • 安装在外部实例上的 SSM Agent 维护使用硬件指纹每 30 分钟轮换一次的 IAM 凭证。如果您的外部实例失去与的连接 Amazon,SSM 代理会在重新建立连接后自动刷新凭证。有关更多信息,请参阅 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 角色用于任务。有关更多信息,请参阅在 Amazon EC2 或外部实例上使用任务 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

与 ECS Anywhere 联网

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

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

  • 不支持服务负载平衡。

  • 不支持服务发现。

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

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

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

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

  • 安装在外部实例上的 SSM Agent 维护使用硬件指纹每 30 分钟轮换一次的 IAM 凭证。如果您的外部实例失去与的连接 Amazon,SSM 代理会在重新建立连接后自动刷新凭证。有关更多信息,请参阅 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— 这是用于在 System Amazon Systems Manager s Manager 代理和云中的 Systems Manager 服务之间进行通信的服务端点。

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

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

Amazon FSx for Windows File Server 随时随地使用 ECS

要将 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 Web Services 云 使用连接之间创建 Amazon Direct Connect 连接。有关如何创建连接的信息,请参阅 Amazon Virtual Private Cloud 连接性选项。您可以在 Amazon Web Services 云 中创建 Active Directory。有关如何开始使用的信息 Amazon Directory Service,请参阅《Amazon Directory Service 管理指南》 Amazon Directory Service中的设置。然后,您可以使用 Amazon Direct Connect 连接将您的外部实例加入到域中。有关将 gMSA 与 Amazon ECS 结合使用的信息,请参阅 为 Windows 容器使用 gMSA

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