从 VPC 内创建的 ECS-fargate 任务调用 AWS 服务 [s3、DynamoDB、kinsesis]

Calling AWS services [s3, DynamoDB, kinsesis] from ECS-fargate task which is created inside a VPC

我在 VPC 中创建了一个 ECS-Fargate 集群。 如果我想从 fargate 任务访问上述 AWS 服务,需要做什么? 我从阅读的不同文档中看到以下选项:

  1. 为每个 AWS 服务创建私有 link
  2. 创建 NAT 网关

不确定哪个是正确的推荐选项?

需要明确的是,ECS 集群是一个抽象的实体,并不规定您在其中连接工作负载的位置 运行。如果我们坚持使用 Fargate 启动类型,这意味着任务可以在私有子网或 public 子网上启动:

  • 如果您在 public 子网中启动它们(并为任务分配 public IP),那么这些任务可以到达 public 端点您提到的服务,不需要其他服务(从网络路由的角度来看)。

  • 如果您在私有子网中启动它们,您有两个选项,即您在问题中提到的选项。

我认为没有什么是最好的黄金法则。决策是多方面的(成本、设置的难易程度、特性、可观察性和控制等)。我认为 NAT GW 路由更容易设置,无论您需要添加多少服务,但您可能会失去一些可见性,并且您的所有流量都将流出 VPC(对于某些客户来说,这没问题,但对于其他客户不是)。私人链接会给你更严格的控制,但它们可能需要更多的设置工作(特别是如果你需要访问许多服务)。