如何将静态或弹性 IP 地址用于 Fargate 上的 Amazon ECS 任务?

上次更新日期:2022 年 4 月 8 日

我想要将静态或弹性 IP 地址用于 AWS Fargate 上的 Amazon Elastic Container Service (Amazon ECS) 任务。

简短描述

您不能将静态 IP 地址或弹性 IP 地址直接添加到 Fargate 任务中。要在 Fargate 任务中使用静态 IP 或弹性 IP,您必须首先使用应用程序或 Network Load Balancer 创建 Fargate 服务。然后,您可以将任务的弹性 IP 地址附加到负载均衡器。

选择以下任一方案:

  • 要为 Fargate 任务创建静态 IP 地址用于入站流量,请完成解决方法部分中的以下步骤。
  • 要为 Fargate 任务创建静态 IP 地址用于出站流量,请创建 NAT 网关。在这种情况下,下游使用者需要静态 IP 地址。您必须将 Fargate 任务放在私有子网上。您可以将 NAT 网关 IP 地址用于 IP 允许列表。

解决方法

创建 Network Load Balancer 并为您的目标组配置路由

  1. 打开 Amazon EC2 控制台
  2. 在导航窗格中,选择负载均衡下的负载均衡器
  3. 选择 Create Load Balancer(创建负载均衡器)。
  4. Select load balancer type(选择负载均衡器类型)页面上,为 Network Load Balancer 选择 Create(创建)。
  5. Create Network Load Balancer(创建负载均衡器)页面上,在 Load balancer name(负载均衡器名称)处输入您的负载均衡器名称。
  6. Scheme(方案)中,选择 Internet-facing(面向互联网)或 internal(内部)。
  7. 对于 IP address type(IP 地址类型),请选择 IPv4
  8. Network mapping(网络映射)部分中,对于 VPC,为您的 Fargate 任务选择 Amazon Virtual Private Cloud (Amazon VPC)。
  9. 对于 Mappings(映射),请为每个区域至少选择一个可用区和一个子网。
    注意:启用多个可用区可提高应用程序的容错能力。对于面向 Internet 的负载均衡器,您可以为每个可用区选择一个弹性 IP 地址。这会为您的负载均衡器提供静态 IP 地址。或者,对于内部负载均衡器,您可以从每个子网的 IPv4 范围内分配一个私有 IP 地址,而不是让 AWS 为您分配一个 IP 地址。
  10. Listeners(侦听器)和 routing(路由)部分中,保留默认侦听器或添加另一个侦听器。
    注意:默认侦听器接受端口 80 上的 TCP 流量。您可以保留默认侦听器设置、修改侦听器的协议或端口,或者选择 Add listener(添加侦听器)以添加另一个侦听器。
  11. 对于 Protocol(协议),选择您的协议。
  12. 对于 Port(端口),请选择您的端口。
  13. 默认操作下,选择创建目标组
    注意:目标组由 Network Load Balancer 侦听器规则使用,该规则将请求转发到目标组。
  14. 指定组详细信息页面上,对于选择目标类型,选择 IP地址
    注意:Fargate 不支持目标类型实例
  15. 对于 Target group name(目标组名称),请输入您的目标组的名称。
  16. Health checks(运行状况检查)部分中,保留默认设置。
  17. 选择 Next(下一步)。
    注意:负载均衡器在目标组内的目标之间分发流量。当目标组与 Amazon ECS 服务关联时,Amazon ECS 会自动向目标组注册和取消注册容器。由于 Amazon ECS 处理目标注册,因此您不需要向目标组添加目标。
  18. 注册目标页面上,选择创建目标组
  19. 导航到创建 Network Load Balancer 页面。
  20. 在“侦听器和路由”部分的“转发到”中,选择您创建的目标组。
  21. 选择 Create Load Balancer(创建负载均衡器)。

创建 Amazon ECS 服务

创建 Amazon ECS 服务。创建服务时,请务必在服务定义中指定目标组。

启动服务的每个任务时,服务定义中指定的容器和端口组合将注册到目标组中。然后,流量将从负载均衡器路由到该容器。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?