如何在私有子网中运行 Fargate 上的 Amazon ECS 任务?

上次更新日期:2022 年 7 月 15 日

我想要在私有子网中运行 AWS Fargate 上的 Amazon Elastic Container Service (Amazon ECS) 任务。

简短描述

您可以在私有子网中运行 Fargate 任务。但是,基于您的使用案例,您可能需要互联网访问权限才能执行某些操作,例如从公有存储库中提取图像。或者,您可能想要阻止任务的任何互联网访问权限。

要在无互联网访问权限的私有子网中运行 Fargate 任务,请使用 VPC 端点。VPC 端点允许您运行 Fargate 任务,而无需授予任务互联网访问权限。所需的端点通过私有 IP 地址进行访问。

如果您的任务需要从私有子网访问互联网,请使用 NAT 网关授予互联网访问权限。所需的端点通过 NAT 网关的公有 IP 地址进行访问。

解决方法

创建 VPC

创建带有公有或私有子网的 Amazon Virtual Private Cloud (Amazon VPC)

然后,根据您的使用案例,按照本文的使用无网络访问权限的私有子网(VPC 端点方法)使用有网络访问权限的私有子网部分中的步骤操作。

使用无网络访问权限的私有子网(VPC 端点方法)

要创建接口端点和 S3 网关,请执行以下操作:

  1. 创建 S3 网关端点
  2. 创建 ECR 接口端点
  3. 如果您的任务使用 Secrets Manager 将密钥注入任务和 CloudWatch 日志,请为 Secrets ManagerCloudWatch 日志创建接口端点。

然后,按照本文的创建 Amazon ECS 集群和服务部分中的说明进行操作。

使用有互联网访问权限的私有子网

创建 NAT 网关

创建 NAT 网关时,请确保:

  • 将 NAT 网关置于公有子网内。
  • 更新私有子网的路由表。对于目的地,输入 0.0.0.0/0。对于目标,选择您的 NAT 网关的 ID。

然后,按照本文的创建 Amazon ECS 集群和服务部分中的说明进行操作。

创建 Amazon ECS 集群和服务

  1. 使用 仅联网模板(由 Fargate 提供支持)创建 Amazon ECS 集群
  2. 创建 Amazon ECS 服务

为服务配置网络时,请确保:

  1. 选择您在步骤 1 中为集群 VPC 创建的集群。
  2. 根据您之前选择的方法,选择您为 VPC 端点配置的私有子网或为 NAT 网关配置的子网。

现在,您的新任务将在私有子网中启动。


这篇文章对您有帮助吗?


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