弹性网络接口中继 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

弹性网络接口中继

注意

此功能在 Fargate 上不可用。

每个使用 awsvpc 网络模式的 Amazon ECS 任务都会接收到自己的弹性网络接口 (ENI),该网络接口附加到托管它的容器实例。可以附加到 Amazon EC2 实例的网络接口的数量有原定设置限制,并且主网络接口计为一个。例如,默认情况下,最多可将三个 ENI 附加到一个 c5.large 实例。实例的主网络接口计为一个,因此您可以向该实例再附加 2 个 ENI。由于每个使用 awsvpc 网络模式的任务均需一个 ENI,因此,您通常只能在该实例类型上运行 2 个此类任务。

Amazon ECS 支持使用受支持的 Amazon EC2 实例类型启动已增加 ENI 密度的容器实例。当您使用这些实例类型并选择使用 awsvpcTrunking 账户设置时,其他 ENI 将在新启动的容器实例上可用。此配置允许您使用 awsvpc 网络模式在每个容器实例上放置更多任务。通过使用此功能,启用了 awsvpcTrunkingc5.large 实例的 ENI 限制提高了 12。容器实例将具有主网络接口,而 Amazon ECS 将创建一个“中继”网络接口并将此接口附加到容器实例。因此,此配置允许您在容器实例上启动 10 个任务,而不是当前的两个任务。

中继网络接口完全由 Amazon ECS 管理,并且会在您从集群中终止或注销容器实例时被删除。有关更多信息,请参阅Amazon ECS 任务联网

ENI 中继注意事项

在使用 ENI 中继功能时,需要考虑几个事项。

  • 只有经 Amazon ECS 优化的 AMI 的 Linux 版本,或其他具有容器代理 1.28.1 版本或更高版本以及 ECS init 软件包版本 1.28.1-2 或更高版本的 Amazon Linux 版本才能支持增加的 ENI 限制。只有您使用经 Amazon ECS 优化的 AMI 的 Linux 版本,则将满足这些要求。目前不支持 Windows 容器。

  • 仅在选择使用 awsvpcTrunking 后启动的新 Amazon EC2 实例将收到增加的 ENI 限制和中继网络接口。无论采取何种措施,以前启动的实例都不会收到这些功能。

  • Amazon EC2 实例必须禁用基于资源的 IPv4 DNS 请求。要禁用此选项,请确保在使用 Amazon EC2 控制台中创建新实例时取消选中 Enable resource-based IPV4 (A record) DNS requests(启用基于资源的 IPV4(A 记录)DNS 请求)选项。要使用 Amazon CLI 禁用此选项,使用以下命令:

    aws ec2 modify-private-dns-name-options --instance-id i-xxxxxxx --no-enable-resource-name-dns-a-record --no-dry-run
  • 不支持共享子网中的 Amazon EC2 实例。如果使用这些实例,则它们将无法注册到集群。

  • 您的 Amazon ECS 任务必须使用 awsvpc 网络模式和 EC2 启动类型。不管启动的实例数量如何,使用 Fargate 启动类型的任务都始终会收到专用的 ENI,因此不需要此功能。

  • 您的 Amazon ECS 任务必须在您的容器实例所在的 Amazon VPC 中启动。如果您的任务与容器实例不在同一 VPC 中,则任务将无法启动并显示属性错误。

  • 在启动新的容器实例时,实例将转换为 REGISTERING 状态,同时为实例预配置中继弹性网络接口。如果注册失败,则实例将转换为 REGISTRATION_FAILED 状态。您可以通过描述容器实例以查看 statusReason 字段,该字段描述失败的原因。然后可以手动注销或终止容器实例。一旦容器实例成功注销或终止,Amazon ECS 将删除中继 ENI。

    注意

    Amazon ECS 会发出容器实例状态更改事件,您可以监控这些事件,以查看过渡到 REGISTRATION_FAILED 状态。有关更多信息,请参阅容器实例状态更改事件

  • 一旦终止容器实例,该实例就会转换为 DEREGISTERING 状态,同时取消预配置中继弹性网络接口。随后,实例将转换为 INACTIVE 状态。

  • 如果停止并重新启动具有增加的 ENI 限制的公有子网中的容器实例,则实例将丢失其公有 IP 地址,并且容器代理将丢失其连接。

使用具有增加的 ENI 限制的容器实例

在启动具有增加的 ENI 限制的容器实例之前,必须完成以下先决条件。

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

    aws iam create-service-linked-role --aws-service-name ecs.amazonaws.com
  • 您的账户或容器实例 IAM 角色必须选择使用 awsvpcTrunking 账户设置。可通过以下方式执行此任务:

    • 任何用户都可以使用 PutAccountSettingDefault API 来选择账户上的所有 IAM 用户和角色

    • 根用户可以使用 PutAccountSetting API 来选择将在集群上注册实例的 IAM 用户或容器实例角色

    • 在某个实例注册到集群之前,当 PutAccountSetting API 运行在该实例上时,容器实例角色可以选择使用自身

    有关更多信息,请参阅账户设置

在满足先决条件后,您可以使用受支持的 Amazon EC2 实例类型之一来启动新容器实例,并且实例将具有增加的 ENI 限制。有关受支持实例类型的列表,请参阅支持 Amazon EC2 实例类型。容器实例必须具有 1.28.1 版本或更高版本的容器代理以及 1.28.1-2 版本或更高版本的 ecs-init 程序包。只有您使用经 Amazon ECS 优化的 AMI 的 Linux 版本,则将满足这些要求。有关更多信息,请参阅启动 Amazon ECS Linux 容器实例

重要

Amazon EC2 实例必须禁用基于资源的 IPv4 DNS 请求。要禁用此选项,请确保在使用 Amazon EC2 控制台中创建新实例时取消选中 Enable resource-based IPV4 (A record) DNS requests(启用基于资源的 IPV4(A 记录)DNS 请求)选项。要使用 Amazon CLI 禁用此选项,使用以下命令:

aws ec2 modify-private-dns-name-options --instance-id i-xxxxxxx --no-enable-resource-name-dns-a-record --no-dry-run
为您账户上的所有 IAM 用户和角色选择增加的 ENI 限制(Amazon Web Services Management Console)
  1. 作为账户的根用户,在 https://console.aws.amazon.com/ecs/ 上打开 Amazon ECS 经典控制台。

  2. 在屏幕顶部的导航栏中,选择要增加 ENI 限制的区域。

  3. 从控制面板中选择账户设置

  4. 对于 IAM 用户或角色,确保选择了您的根用户或容器实例 IAM 角色。

  5. 对于 AWSVPC 中继,请选中复选框。完成后,选择保存

    重要

    IAM 用户和 IAM 角色需要 ecs:PutAccountSetting 权限来执行此操作。

  6. 在确认屏幕上,选择 Confirm (确认) 以保存选择。

使用命令为您账户上的所有 IAM 用户和角色选择增加的 ENI 限制。

账户上的任意用户可以使用下列命令之一修改账户中所有 IAM 用户或角色的原定设置账户设置。这些更改将应用于整个 Amazon 账户,除非一个 IAM 用户或角色显式覆盖自己的这些设置。

  • put-account-setting-default (Amazon CLI)

    aws ecs put-account-setting-default \ --name awsvpcTrunking \ --value enabled \ --region us-east-1
  • Write-ECSAccountSettingDefault (Amazon Tools for Windows PowerShell)

    Write-ECSAccountSettingDefault -Name awsvpcTrunking -Value enabled -Region us-east-1 -Force
使用命令行,以根用户身份为 IAM 用户或容器实例 IAM 角色选择增加的 ENI 限制

账户的根用户可以使用以下命令之一,并在请求中指定委托人 IAM 用户或容器实例 角色的 ARN 来修改账户设置。

  • put-account-setting (Amazon CLI)

    以下示例用于修改特定 IAM 用户的账户设置:

    aws ecs put-account-setting \ --name awsvpcTrunking \ --value enabled \ --principal-arn arn:aws:iam::aws_account_id:user/userName \ --region us-east-1

    以下示例用于修改特定容器实例 IAM 角色的账户设置:

    aws ecs put-account-setting \ --name awsvpcTrunking \ --value enabled \ --principal-arn arn:aws:iam::aws_account_id:role/ecsInstanceRole \ --region us-east-1
  • Write-ECSAccountSetting (Amazon Tools for Windows PowerShell)

    以下示例用于修改特定 IAM 用户的账户设置:

    Write-ECSAccountSetting -Name awsvpcTrunking -Value enabled -PrincipalArn arn:aws:iam::aws_account_id:user/userName -Region us-east-1 -Force

    以下示例用于修改特定容器实例 IAM 角色的账户设置:

    Write-ECSAccountSetting -Name awsvpcTrunking -Value enabled -PrincipalArn arn:aws:iam::aws_account_id:role/ecsInstanceRole -Region us-east-1 -Force
使用 Amazon CLI 查看具有增加的 ENI 限制的容器实例

每个容器实例都有一个默认网络接口,该接口称为中继网络接口。使用以下命令通过查询 ecs.awsvpc-trunk-id 属性来列出具有增加的 ENI 限制的容器实例,这表明它具有中继网络接口。

  • list-attributes (Amazon CLI)

    aws ecs list-attributes \ --target-type container-instance \ --attribute-name ecs.awsvpc-trunk-id \ --cluster cluster_name \ --region us-east-1
  • Get-ECSAttributeList (Amazon Tools for Windows PowerShell)

    Get-ECSAttributeList -TargetType container-instance -AttributeName ecs.awsvpc-trunk-id -Region us-east-1

支持 Amazon EC2 实例类型

下面显示了受支持的 Amazon EC2 实例类型,以及在选择使用 awsvpcTrunking 账户设置之前和之后,可以在每个实例类型上启动使用 awsvpc 网络模式的任务的数目。对于每个实例类型上的弹性网络接口 (ENI) 限制,将一个添加到当前任务限制中,因为主网络接口将计入限制,并将两个添加到新任务限制中,因为主网络接口和中继网络实例将再次计入限制。

重要

虽然同一实例系列中支持其他实例类型,但不支持 a1.metalc5.metalc5a.8xlargec5ad.8xlargec5d.metalm5.metalp3dn.24xlarger5.metalr5.8xlarger5d.metal 实例类型。

不支持 c5nd3d3eng3g3sg4dni3i3eninf1m5dnm5nm5znmac1r5br5nr5dnu-12tb1u-6tb1u-9tb1z1d 实例系列。

通用型

实例类型 没有 ENI 中继的任务限制 有 ENI 中继的任务限制
a1.medium 1 10
a1.large 2 10
a1.xlarge 3 20
a1.2xlarge 3 40
a1.4xlarge 7 60
m5.large 2 10
m5.xlarge 3 20
m5.2xlarge 3 40
m5.4xlarge 7 60
m5.8xlarge 7 60
m5.12xlarge 7 60
m5.16xlarge 14 120
m5.24xlarge 14 120
m5a.large 2 10
m5a.xlarge 3 20
m5a.2xlarge 3 40
m5a.4xlarge 7 60
m5a.8xlarge 7 60
m5a.12xlarge 7 60
m5a.16xlarge 14 120
m5a.24xlarge 14 120
m5ad.large 2 10
m5ad.xlarge 3 20
m5ad.2xlarge 3 40
m5ad.4xlarge 7 60
m5ad.8xlarge 7 60
m5ad.12xlarge 7 60
m5ad.16xlarge 14 120
m5ad.24xlarge 14 120
m5d.large 2 10
m5d.xlarge 3 20
m5d.2xlarge 3 40
m5d.4xlarge 7 60
m5d.8xlarge 7 60
m5d.12xlarge 7 60
m5d.16xlarge 14 120
m5d.24xlarge 14 120
m5d.metal 14 120
m6a.large 2 10
m6a.xlarge 3 20
m6a.2xlarge 3 40
m6a.4xlarge 7 60
m6a.8xlarge 7 90
m6a.12xlarge 7 120
m6a.16xlarge 14 120
m6a.24xlarge 14 120
m6a.32xlarge 14 120
m6a.48xlarge 14 120
m6a.metal 14 120
m6g.medium 1 4
m6g.large 2 10
m6g.xlarge 3 20
m6g.2xlarge 3 40
m6g.4xlarge 7 60
m6g.8xlarge 7 60
m6g.12xlarge 7 60
m6g.16xlarge 14 120
m6g.metal 14 120
m6gd.medium 1 4
m6gd.large 2 10
m6gd.xlarge 3 20
m6gd.2xlarge 3 40
m6gd.4xlarge 7 60
m6gd.8xlarge 7 60
m6gd.12xlarge 7 60
m6gd.16xlarge 14 120
m6gd.metal 14 120
m6i.large 2 10
m6i.xlarge 3 20
m6i.2xlarge 3 40
m6i.4xlarge 7 60
m6i.8xlarge 7 90
m6i.12xlarge 7 120
m6i.16xlarge 14 120
m6i.24xlarge 14 120
m6i.32xlarge 14 120
m6i.metal 14 120
m6id.large 2 10
m6id.xlarge 3 20
m6id.2xlarge 3 40
m6id.4xlarge 7 60
m6id.8xlarge 7 90
m6id.12xlarge 7 120
m6id.16xlarge 14 120
m6id.24xlarge 14 120
m6id.32xlarge 14 120
m6id.metal 14 120

计算优化

实例类型 没有 ENI 中继的任务限制 有 ENI 中继的任务限制
c5.large 2 10
c5.xlarge 3 20
c5.2xlarge 3 40
c5.4xlarge 7 60
c5.9xlarge 7 60
c5.12xlarge 7 60
c5.18xlarge 14 120
c5.24xlarge 14 120
c5a.large 2 10
c5a.xlarge 3 20
c5a.2xlarge 3 40
c5a.4xlarge 7 60
c5a.12xlarge 7 60
c5a.16xlarge 14 120
c5a.24xlarge 14 120
c5ad.large 2 10
c5ad.xlarge 3 20
c5ad.2xlarge 3 40
c5ad.4xlarge 7 60
c5ad.12xlarge 7 60
c5ad.16xlarge 14 120
c5ad.24xlarge 14 120
c5d.large 2 10
c5d.xlarge 3 20
c5d.2xlarge 3 40
c5d.4xlarge 7 60
c5d.9xlarge 7 60
c5d.12xlarge 7 60
c5d.18xlarge 14 120
c5d.24xlarge 14 120
c6a.large 2 10
c6a.xlarge 3 20
c6a.2xlarge 3 40
c6a.4xlarge 7 60
c6a.8xlarge 7 90
c6a.12xlarge 7 120
c6a.16xlarge 14 120
c6a.24xlarge 14 120
c6a.32xlarge 14 120
c6a.48xlarge 14 120
c6a.metal 14 120
c6g.medium 1 4
c6g.large 2 10
c6g.xlarge 3 20
c6g.2xlarge 3 40
c6g.4xlarge 7 60
c6g.8xlarge 7 60
c6g.12xlarge 7 60
c6g.16xlarge 14 120
c6g.metal 14 120
c6gd.medium 1 4
c6gd.large 2 10
c6gd.xlarge 3 20
c6gd.2xlarge 3 40
c6gd.4xlarge 7 60
c6gd.8xlarge 7 60
c6gd.12xlarge 7 60
c6gd.16xlarge 14 120
c6gd.metal 14 120
c6gn.medium 1 4
c6gn.large 2 10
c6gn.xlarge 3 20
c6gn.2xlarge 3 40
c6gn.4xlarge 7 60
c6gn.8xlarge 7 60
c6gn.12xlarge 7 60
c6gn.16xlarge 14 120
c6gn.metal 14 120
c6i.large 2 10
c6i.xlarge 3 20
c6i.2xlarge 3 40
c6i.4xlarge 7 60
c6i.8xlarge 7 90
c6i.12xlarge 7 120
c6i.16xlarge 14 120
c6i.24xlarge 14 120
c6i.32xlarge 14 120
c6i.metal 14 120
c6id.large 2 10
c6id.xlarge 3 20
c6id.2xlarge 3 40
c6id.4xlarge 7 60
c6id.8xlarge 7 90
c6id.12xlarge 7 120
c6id.16xlarge 14 120
c6id.24xlarge 14 120
c6id.32xlarge 14 120
c6id.metal 14 120
c7g.medium 1 4
c7g.large 2 10
c7g.xlarge 3 20
c7g.2xlarge 3 40
c7g.4xlarge 7 60
c7g.8xlarge 7 60
c7g.12xlarge 7 60
c7g.16xlarge 14 120
hpc6a.48xlarge 1 120

内存优化

实例类型 没有 ENI 中继的任务限制 有 ENI 中继的任务限制
r5.large 2 10
r5.xlarge 3 20
r5.2xlarge 3 40
r5.4xlarge 7 60
r5.12xlarge 7 60
r5.16xlarge 14 120
r5.24xlarge 14 120
r5a.large 2 10
r5a.xlarge 3 20
r5a.2xlarge 3 40
r5a.4xlarge 7 60
r5a.8xlarge 7 60
r5a.12xlarge 7 60
r5a.16xlarge 14 120
r5a.24xlarge 14 120
r5ad.large 2 10
r5ad.xlarge 3 20
r5ad.2xlarge 3 40
r5ad.4xlarge 7 60
r5ad.8xlarge 7 60
r5ad.12xlarge 7 60
r5ad.16xlarge 14 120
r5ad.24xlarge 14 120
r5d.large 2 10
r5d.xlarge 3 20
r5d.2xlarge 3 40
r5d.4xlarge 7 60
r5d.8xlarge 7 60
r5d.12xlarge 7 60
r5d.16xlarge 14 120
r5d.24xlarge 14 120
r6a.large 2 10
r6a.xlarge 3 20
r6g.2xlarge 3 40
r6a.4xlarge 7 60
r6a.8xlarge 7 90
r6a.12xlarge 7 120
r6a.16xlarge 14 120
r6a.24xlarge 14 120
r6a.32xlarge 14 120
r6a.48xlarge 14 120
r6a.metal 14 120
r6g.medium 1 4
r6g.large 2 10
r6g.xlarge 3 20
r6g.2xlarge 3 40
r6g.4xlarge 7 60
r6g.8xlarge 7 60
r6g.12xlarge 7 60
r6g.16xlarge 14 120
r6g.metal 14 120
r6gd.medium 1 4
r6gd.large 2 10
r6gd.xlarge 3 20
r6gd.2xlarge 3 40
r6gd.4xlarge 7 60
r6gd.8xlarge 7 60
r6gd.12xlarge 7 60
r6gd.16xlarge 14 120
r6gd.metal 14 120
r6i.large 2 10
r6i.xlarge 3 20
r6i.2xlarge 3 40
r6i.4xlarge 7 60
r6i.8xlarge 7 90
r6i.12xlarge 7 120
r6i.16xlarge 14 120
r6i.24xlarge 14 120
r6i.32xlarge 14 120
r6i.metal 14 120
r6id.large 2 10
r6id.xlarge 3 20
r6gd.2xlarge 3 40
r6id.4xlarge 7 60
r6id.8xlarge 7 90
r6id.12xlarge 7 120
r6id.16xlarge 14 120
r6id.24xlarge 14 120
r6id.32xlarge 14 120
r6id.metal 14 120
u-3tb1.56xlarge 7 12
u-18tb1.metal 14 12
u-24tb1.metal 14 12
x2gd.medium 1 10
x2gd.large 2 10
x2gd.xlarge 3 20
x2gd.2xlarge 3 40
x2gd.4xlarge 7 60
x2gd.8xlarge 7 60
x2gd.12xlarge 7 60
x2gd.16xlarge 14 120
x2gd.metal 14 120
x2idn.16xlarge 14 120
x2idn.24xlarge 14 120
x2idn.32xlarge 14 120
x2idn.metal 14 120
x2iedn.xlarge 3 13
x2iedn.2xlarge 3 29
x2iedn.4xlarge 7 60
x2iedn.8xlarge 7 120
x2iedn.16xlarge 14 120
x2iedn.24xlarge 14 120
x2iedn.32xlarge 14 120
x2iedn.metal 14 120
x2iezn.2xlarge 3 64
x2iezn.4xlarge 7 120
x2iezn.6xlarge 7 120
x2iezn.8xlarge 7 120
x2iezn.12xlarge 14 120
x2iezn.metal 14 120
z1d.large 2 14

存储优化

实例类型 没有 ENI 中继的任务限制 有 ENI 中继的任务限制
i4i.large 2 -2
i4i.xlarge 3 8
i4i.2xlarge 3 28
i4i.4xlarge 7 58
i4i.8xlarge 7 118
i4i.16xlarge 14 248
i4i.32xlarge 14 498
i4i.metal 14 498
im4gn.large 2 10
im4gn.xlarge 3 20
im4gn.2xlarge 3 40
im4gn.4xlarge 7 60
im4gn.8xlarge 7 60
im4gn.16xlarge 14 120
im4gn.metal 14 120
is4gen.medium 1 4
is4gen.large 2 10
is4gen.xlarge 3 20
is4gen.2xlarge 3 40
is4gen.4xlarge 7 60
is4gen.8xlarge 7 60

加速计算

实例类型 没有 ENI 中继的任务限制 有 ENI 中继的任务限制
dl1.24xlarge 59 120
g4ad.xlarge 1 12
g4ad.2xlarge 1 12
g4ad.4xlarge 2 12
g4ad.8xlarge 3 12
g4ad.16xlarge 7 12
g4dn.xlarge 2 40
g4dn.2xlarge 2 40
g4dn.4xlarge 2 60
g4dn.8xlarge 3 60
g4dn.12xlarge 7 60
g4dn.16xlarge 3 120
g4dn.metal 14 120
g5.xlarge 3 6
g5.2xlarge 3 19
g5.4xlarge 7 40
g5.8xlarge 7 90
g5.12xlarge 14 120
g5.16xlarge 7 120
g5.24xlarge 14 120
g5.48xlarge 14 120
g5g.xlarge 3 20
g5g.2xlarge 3 40
g5g.4xlarge 7 60
g5g.8xlarge 7 60
g5g.16xlarge 14 120
g5g.metal 14 120
inf1.xlarge 3 40
inf1.2xlarge 3 40
inf1.6xlarge 7 60
inf1.24xlarge 10 120
p3.2xlarge 3 40
p3.8xlarge 7 60
p3.16xlarge 7 120
p4d.24xlarge 59 120
p4de.24xlarge 59 120
vt1.3xlarge 3 40
vt1.6xlarge 7 60
vt1.24xlarge 14 120