我想将静态或弹性 IP 地址用于 AWS Fargate 上的 Amazon Elastic Container Service (Amazon ECS) 任务。
解决方法
您无法为 Fargate 任务分配静态 IP 地址或弹性 IP 地址。要将静态 IP 地址用于 Fargate 任务,请创建带有网络负载均衡器的 Fargate 服务,并将弹性 IP 地址附加到该负载均衡器。
根据您的流量需求,选择以下选项之一:
- 对于出站流量,在 Fargate 任务所在的私有子网上创建 NAT 网关。NAT 网关的静态 IP 地址可用于 IP 允许列表。有关更多信息,请参阅将 Amazon ECS 应用程序连接到互联网。
- 对于入站流量,创建带有弹性 IP 地址的网络负载均衡器,并将其配置为将流量路由到您的 Fargate 任务。请完成以下部分中的步骤。
创建带有目标组的网络负载均衡器
- 打开 Amazon Elastic Compute Cloud (Amazon EC2) 控制台。
- 在导航窗格中的 Load Balancing(负载均衡)下,选择 Load Balancers(负载均衡器)。
- 选择 Create Load Balancer(创建负载均衡器)。
- 对于 Compare and select load balancer type(比较并选择负载均衡器类型),为 Network Load Balancer(网络负载均衡器)选择 Create(创建)。
- 对于 Load balancer name(负载均衡器名称),输入您的负载均衡器的名称。
- 对于 Scheme(方案),选择 Internet-facing(面向互联网)或 Internal(内部)。
- 对于 IP address type(IP 地址类型),选择 IPv4。
- 在 Network mapping(网络映射)部分,对于 VPC,选择 Fargate 任务的 Amazon Virtual Private Cloud (Amazon VPC)。
- 对于 Availability Zones and subnets(可用区域和子网),请为每个可用区至少选择一个可用区和一个子网。
**注意:**启用多个可用区可以提高应用程序的容错能力。对于面向互联网的负载均衡器,请为每个可用区选择一个弹性 IP 地址,以便为您的负载均衡器提供静态 IP 地址。对于内部负载均衡器,从每个子网的 IPv4 范围中分配一个私有 IP 地址,或让 AWS 为您分配。
- 对于 Listeners and routing(侦听器和路由),保留默认侦听器或者添加其他侦听器。
**注意:**默认侦听器接受端口 80 上的 TCP 流量。您可以保留默认侦听器设置,修改侦听器的协议或端口,或者选择 Add listener(添加侦听器)来添加其他侦听器。
- 对于 Protocol(协议),选择您的协议。
- 对于 Port(端口),选择您的端口。
- 在 Forward to target group(转发到目标组)下,选择 Create target group(创建目标组)。
**注意:**网络负载均衡器侦听器规则会使用目标组,还会将请求转发到目标组。
- 对于 Target type(目标类型),选择 IP addresses(IP 地址)。
注意:Fargate 不支持实例目标类型。
- 对于 Target group name(目标组名称),输入您的目标组名称。
- 在 Health checks(运行状况检查)下,保留默认设置。
- 选择 Next(下一步)。
**注意:**负载均衡器会分配目标组内的目标之间的流量。当目标组与 Amazon ECS 服务关联时,Amazon ECS 会自动从目标组注册和注销任务。由于 Amazon ECS 会处理目标注册,因此您无需向目标组添加目标。
- 选择 Create target group(创建目标组)。
- 导航回 Create Network Load Balancer(创建网络负载均衡器)选项卡。
- 在 Listeners and routing(侦听器和路由)下,对于 Target group(目标组),选择您创建的目标组。
**注意:**创建新目标组后,必须选择刷新目标组按钮才能看到该目标组。
- 选择 Create load balancer(创建负载均衡器)。
使用网络负载均衡器创建 Amazon ECS 服务
创建 Amazon ECS 服务并在服务定义中指定目标组。当服务的各项任务启动时,Amazon ECS 会向您的目标组注册服务定义中指定的容器和端口组合。然后,负载均衡器会将流量路由到该容器。
相关信息
使用负载均衡分配 Amazon ECS 服务流量
为 Amazon ECS 使用网络负载均衡器
适用于 Fargate 的 Amazon ECS 任务联网选项
创建网络负载均衡器
将 Amazon ECS 应用程序连接到互联网