Fargate 任务联网 - Amazon ECS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

Fargate 任务联网

重要

如果您正在使用Amazon ECS托管在上的任务Amazon EC2实例,请参阅任务联网中的Amazon Elastic Container Service Developer Guide

默认情况下,每个Amazon ECS任务Fargate提供具有主要私有 IP 地址的 elastic network interface (ENI)。在使用公有子网时,您可以选择向任务的 ENI 分配公有 IP 地址。如果您的 VPC 启用了双堆栈模式,并且您使用带有 IPv6 CIDR 块的子网,则任务的 ENI 也将收到 IPv6 地址。一个任务一次只能有一个与之关联的 ENI。有关 VPC 和子网的更多信息,请参阅VPC 和子网中的Amazon VPC 用户指南

对于上的任务Fargate以便能够拉取容器映像,任务必须具有通往 Internet 的路由。下面介绍了如何确保您的任务具有通往 Internet 的路由。

  • 在使用公有子网时,您可以向任务 ENI 分配公有 IP 地址。

  • 使用私有子网时,子网可以连接 NAT 网关。

  • 当使用托管在Amazon ECR,您可以配置Amazon ECR以使用接口 VPC 终端节点,映像提取将通过任务的私有 IPv4 地址进行。有关更多信息,请参阅 。Amazon ECR接口 VPC 终端节点 (Amazon PrivateLink)中的Amazon Elastic Container Registry 用户指南

由于每个任务都有自己的 ENI,因此您也可以利用 VPC 流日志等联网功能(例如 VPC 流日志),以便您可以监控您任务的流量。此外,属于同一任务的容器可以通过 localhost 接口进行通信。有关更多信息,请参阅 https://docs.amazonaws.cn/vpc/latest/userguide/flow-logs.html 中的 Amazon VPC 用户指南VPC 流日志

创建的 ENI 由Amazon Fargate并且有一个关联的IAM策略,该策略用于授予Fargate。对于使用的任务Fargate平台版本1.4.0或更高版本,任务会接收单个 ENI(称为任务 ENI),所有网络流量都将流经 VPC 内的这个 ENI,并将通过 VPC 流日志对您可见。对于使用Fargate平台版本1.3.0和早些时候,除了任务 ENI,该任务还收到一个单独的Fargate拥有的 ENI,该 ENI 用于某些在 VPC 流日志中不可见的网络流量。以下内容介绍网络流量行为以及每个平台版本所需的 IAM 策略。

操作

平台版本的流量1.3.0早期版本

平台版本的流量1.4.0

IAM 许可

检索 Amazon ECR 登录凭证

Fargate 拥有的 ENI

任务 ENI

任务执行 IAM 角色

映像拉取

任务 ENI

任务 ENI

任务执行 IAM 角色

通过日志驱动程序发送日志

任务 ENI

任务 ENI

任务执行 IAM 角色

通过适用于 Amazon ECS 的 FireLens 发送日志

任务 ENI

任务 ENI

任务 IAM 角色

从 Secrets Manager 或 Systems Manager 检索密钥

Fargate 拥有的 ENI

任务 ENI

任务执行 IAM 角色

Amazon EFS 文件系统流量

不可用

任务 ENI

任务 IAM 角色

应用程序流量

任务 ENI

任务 ENI

任务 IAM 角色

Fargate任务联网注意事项

使用任务联网时,需要考虑多个因素。

  • 向 Amazon ECS 提供代表您调用其他 Amazon 服务的权限需要 Amazon ECS 服务相关角色。此角色是在创建集群时 (或者在 Amazon Web Services Management Console 中创建或更新服务时) 自动为您创建的。有关更多信息,请参阅 Amazon ECS的服务相关角色。您也可以使用以下 Amazon CLI 命令创建服务相关的角色:

    aws iam create-service-linked-role --aws-service-name ecs.amazonaws.com
  • Amazon ECS将使用 Amazon 提供的(内部)DNS 主机名来填充任务的主机名。enableDnsHostnamesenableDnsSupport选项已在您的 VPC 上启用。如果未启用这些选项,则任务的 DNS 主机名将是随机主机名。有关 VPC 的 DNS 设置的更多信息,请参阅在您的 VPC 中使用 DNS中的Amazon VPC 用户指南

  • awsvpcConfiguration。有关更多信息,请参阅 。AwsVpcConfiguration中的Amazon Elastic Container Service API Reference

  • Fargate 创建并附加的 ENI 不能由您的账户手动分离或修改。这是为了防止意外删除与正在运行的任务关联的 ENI。要释放任务的 ENI,请停止该任务。

  • 如果 VPC 已更新,例如更改所使用的 DHCP 选项集,并且您希望在使用该 VPC 的任务中使更改生效,则必须停止这些任务并启动新任务。

  • 使用平台版本时,在具有 IPv6 CIDR 块的子网中启动的任务仅接收 IPv6 地址1.4.0或更高版本.

  • 对于使用平台版本的任务1.4.0或更高版本,任务 ENI 支持巨型帧。网络接口配置了最大传输单元 (MTU),这是单个帧内将放入的最大负载的大小。MTU 越大,单个帧内可以放入的应用程序负载就越多,这可以减少每帧开销并提高效率。当您的任务和目标之间的网络路径支持巨型帧时,支持巨型帧将减少开销,如保留在您的 VPC 中的所有流量。

  • 具有使用 Fargate 启动类型的任务的服务仅支持 Application Load Balancer 和 Network Load Balancer。不支持 Classic Load Balancer。此外,当您创建任何目标组时,必须选择 ip 而不是 instance 作为目标类型。有关更多信息,请参阅 服务负载均衡

在双堆栈模式下使用 VPC

在双堆栈模式下使用 VPC 时,任务可通过 IPv4 /或 IPv6 进行通信。IPv4 和 IPv6 地址是彼此独立的,您必须在 VPC 中分别针对 IPv4 和 IPv6 配置路由和安全设置。有关配置 VPC 以实现双堆栈模式的更多信息,请参阅迁移到 IPv6中的Amazon VPC 用户指南

Amazon ECS上的任务Fargate在满足以下条件时向分配 IPv6 地址:

  • 您的 VPC 和子网已启用 IPv6。有关配置 VPC 以实现双堆栈模式的更多信息,请参阅迁移到 IPv6中的Amazon VPC 用户指南

  • 任务或服务使用平台版本1.4.0或更高版本.

  • 这些区域有:dualStackIPv6帐户设置已启用。有关更多信息,请参阅 账户设置

Amazon ECS上的任务Fargate只要 VPC 配置了互联网网关或仅限 Egress 的互联网网关,分配的 IPv6 地址就可以访问互联网。不需要 NAT 网关。有关更多信息,请参阅 。Internet 网关仅出口互联网网关中的Amazon VPC 用户指南