我想在私有子网中的 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 端点方法)
要创建接口端点和 Amazon Simple Storage Solution(Amazon S3)网关端点,请完成以下步骤:
- 创建 Amazon S3 网关端点。
- 创建 Amazon Elastic Container Registry(Amazon ECR)接口端点。
- 对于使用 AWS Secrets Manager 向任务和 Amazon CloudWatch Logs 注入密钥的任务,请为这两个服务创建接口端点。
**注意:**这些 VPC 端点的安全组允许 TCP 端口 443 上来自 Fargate 任务安全组或 Fargate 任务 VPC CIDR 范围的入站流量。
- 按照本文创建 Amazon ECS 集群和服务一节中的说明进行操作。
使用具有互联网访问权限的私有子网
创建 NAT 网关。创建 NAT 网关时,请完成下面的任务:
- 将 NAT 网关置于公有子网内。
- 更新私有子网的路由表:
对于目标,输入 0.0.0.0/0。
对于目标,选择您的 NAT 网关的 ID。
然后,按照本文创建 Amazon ECS 集群和服务一节中的说明进行操作。
创建 Amazon ECS 集群和服务
- 创建 Amazon ECS 集群。对于基础设施,选择 AWS Fargate(无服务器)。
- 创建 Amazon ECS 服务。
在为 Fargate 服务配置网络时,请完成下面的任务:
- 根据之前选择的方法,选择为 VPC 端点配置的私有子网。或者,选择为 NAT 网关配置的子网。
- 对于安全组,允许端口 443 上的出站流量访问 Amazon ECS 端点。