AWS ECS Fargate 任务的静态出站 IP

Flo*_*ann 18 amazon-web-services amazon-ecs docker aws-fargate

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

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

能得到一些帮助会很棒!:)

Adi*_*iii 7

有一个有趣的GitHub 存储库,它解释了用例以及如何为 fargate 服务实现静态 IP。

为什么?

第三方可能希望将您的应用程序的 IP 列入白名单。使用-static-ip-addresses-for-application-load-balancers涵盖了大部分步骤

创建 Fargate 集群

使用向导创建集群。

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

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

弹性 IP

在 EC2 > 弹性 IP 下找到它

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

网络负载均衡器

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

创建 NLB。在可用区下,将您之前创建的 VPC 和弹性 IP 分配给它。

创建具有目标类型 IP 和协议 TCP 的新目标组。

将 IP 留空。下一个。

应用程序负载均衡器

从 VPC 添加现有安全组。

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

将 IP 留空。下一个。

Fargate服务

在您的集群中创建一个新服务。

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

选择现有的 ALB 目标组。

架构图或多或少会这样 在此处输入图片说明

  • Github 存储库链接已损坏 (5认同)
  • 您的答案有几个缺陷:1)您提供的链接用于将 NLB 与 ALB 相结合,这是不必要的 2)不存在“可用性组”之类的东西。您可能指的是可用区 (AZ) 3) 该图显示了永远无法工作的 ALB;ALB 不允许您使用静态 IP(在 AWS 术语中称为弹性 IP);该图应显示 NLB (3认同)
  • 我有点困惑,这个答案似乎是 AWS ECS Fargate 任务的静态*入站* IP 的答案。这真的解决了OP提出的问题吗?我的意思是 Fargate 任务需要一个静态 IP 作为客户端来连接到远程服务。 (2认同)

sdg*_*sdh 6

这对我有用:

  1. 创建一个子网供 ECS 任务在内部运行
  2. 在子网内添加 NAT 网关(只能是出口)
  3. 为 NAT 网关分配弹性 IP
  4. 观察ECS任务的外部IP为网关的弹性IP


小智 3

我们目前遇到了同样的问题,我们找到的解决方案是将整个子网 CIDR(例如 10.11.12.13/24)列入白名单,并且效果很好,但我们仍然觉得它不安全。

我发现一个回复建议使用 NAT 网关来获取容器的 IP 地址。这是Lambda 用例的链接,仍然需要对其进行 Fargate 测试。