外部实例 (Amazon ECS Anywhere) - Amazon Elastic Container Service

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

外部实例 (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 角色来允许它们与 AWS API 通信。有关更多信息,请参阅 ECS Anywhere IAM 角色

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

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

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

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

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

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

    • 不支持服务负载平衡。

    • 不支持服务发现。

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

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

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

  • 不支持 UpdateContainerAgent API。有关如何更新外部实例上的 SSM Agent 或 Amazon ECS 代理的说明,请参阅 在外部实例上更新 AWS 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 凭证。如果您的外部实例失去与的连接 AWS,SSM 代理会在重新建立连接后自动刷新凭证。有关更多信息,请参阅 AWS Systems Manager 用户指南中的使用硬件指纹验证本地部署服务器和虚拟机

以下域用于 Amazon ECS 服务和安装在您的外部实例上的 Amazon ECS 代理之间的通信。确保允许流量并且 DNS 解析工作正常。对于每个端点,区域表示 Amazon ECS 支持的 AWS 区域的区域标识符,例如美国东部(俄亥俄州)区域 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 — 这是的服务端点 AWS Systems Manager。

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

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

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

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

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

gMSA 与 ECS Anywhere

ECS Anywhere 支持以下使用案例。

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

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