适用于AWS ECS Fargate任务的静态出站IP

时间:2019-09-15 02:09:36

标签: amazon-web-services docker amazon-ecs aws-fargate

我有一个带有服务的Docker容器,我想通过带有Fargate的AWS ECS运行该服务。不幸的是,我要运行的服务需要访问需要将IP列入白名单的合作伙伴的SFTP服务器。

我现在的问题是:如何为AWS ECS Fargate任务分配静态IP (IPv4)?我已经设置了VPC,子网,Internet和NAT网关,并将它们彼此分配。但是我看到的最大问题是,使用Fargate每次执行任务时,都会分配一个具有不同IP的新ENI。

很高兴获得一些帮助! :)

2 个答案:

答案 0 :(得分:2)

有趣的GitHub repo解释了用例以及如何实现Fargate服务的静态IP。

为什么?

第三方可能希望将您的应用程序IP列入白名单。 using-static-ip-addresses-for-application-load-balancers

涵盖了大多数步骤

创建Fargate集群

  

使用向导创建集群。

     

与群集一起,它将创建一个VPC和安全组。找   给他们起个有用的名字。

     

在您的VPC安全组中,为HTTP和HTTPS设置入站。

弹性IPs

  

在EC2下找到>弹性IP

     

分配两个静态IP。每个可用性组一个。

网络负载平衡器

  

在EC2>负载均衡器下找到它

     

创建NLB。在可用区下为其分配VPC和弹性IP   您之前创建的。

     

使用目标类型IP和协议TCP创建新的目标组。

     

将IP空白。接下来。

应用程序负载平衡器

从VPC添加现有安全组。

  

创建一个新的目标组。输入IP。协议TCP。

     

将IP空白。接下来。

Fargate服务

  

在集群中创建新服务。

     

选择您创建的应用程序负载平衡器。

     

选择现有的ALB目标人群。

架构图或多或少会 enter image description here

答案 1 :(得分:0)

我们当前遇到同样的问题,我们发现的解决方案是将整个子网CIDR(例如10.11.12.13/24)列入白名单,并且工作正常,但仍然感到不安全。

我发现一个response建议使用NAT网关来设置您容器的IP地址。这是Lambda用例的link,仍然需要测试其Fargate。