如何将弹性IP与Fargate容器相关联?

Gab*_*azo 12 amazon-web-services aws-fargate

我正在探索为我的ECS容器使用新的Fargate选项.一个限制是必须始终可以在同一公共IP地址访问正在运行的任务.

我的第一个想法是分配一个弹性IP,但我无法分辨它与之相关联.似乎弹性IP可以与实例(与Fargate无关)或网络接口相关联.但是,如果我将它与ENI关联,我无法看到如何确保我的任务的容器具有该网络接口.创建服务时,我发现我可以把它放在VPC中,但就是这样.

从实验,如果我杀了一个任务,这样的服务会重新启动一个新的,或者如果我更新服务运行新任务的修订 - 启动运行新的任务将有一个新的ENI每次容器.

有没有办法确保给定服务具有相同的公共IP地址,即使其任务被杀死并重新启动?

use*_*282 9

其实你可以用网络负载平衡器来做到这一点。它是一种特殊类型的负载均衡器,可以在其中添加弹性 IP。这个指令真的可以帮助 https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html

  • 虽然网络负载均衡器与直接将弹性 IP 与任务关联几乎不是一回事,但它仍然适合许多用例。网络负载均衡器允许使用静态 IP 地址的负载均衡器,对实际 Fargate 任务执行 DNAT。对于使用 TCP 的入站连接,这几乎是解决方案。不要低估这个答案。 (6认同)
  • 值得注意的是,LB 并不是免费的。如果您运行的是小型设备,LB 的成本可能会高于其他服务的成本。请务必检查定价。 (2认同)
  • 目前我们正在使用 nginx 将请求重定向到 fargate 服务。要为服务提供一些静态名称,请使用 Fargate 服务发现。是的,如果你有很多小型服务,那么拥有单独的 LB 将花费你很多钱(LB 15 美元)。 (2认同)

小智 7

Fargate当前不支持ENI赋值,因此不可能将Elastic IP与Fargate任务定义相关联.

在Fargate中使用静态IP地址的唯一方法是通过带有别名的Application Load Balancer.

  • [AWS 论坛帖子](https://forums.aws.amazon.com/thread.jspa?threadID=270599) 确认这些答案 (2认同)