我想对在 Amazon Elastic Compute Cloud (Amazon EC2) 容器实例上运行的 Amazon Elastic Container Service (Amazon ECS) 任务使用静态或弹性 IP 地址。
解决方法
无法将静态或弹性 IP 地址直接添加到 Amazon ECS 任务中。
相反,请执行以下操作之一:
- 要对出站流量使用静态 IP 地址,请创建 NAT 网关。
**注意:**如果下游用户需要静态 IP 地址,请将您的容器实例放置在具有 NAT 网关的私有子网中。然后,将 NAT 网关 IP 地址添加到 IP 地址允许列表中。
- 要对入站流量使用静态 IP 地址,请使用 host 和 bridge 网络模式。然后,将弹性 IP 地址与托管任务的 Amazon EC2 容器实例相关联。
如果您的任务分散在多个容器实例上,请完成以下解决方法,以对入站流量使用静态 IP 地址。
**注意:**以下解决方法适用于使用 Amazon ECS 优化版 Amazon Linux 亚马逊机器映像 (AMI),且采用 host、bridge 或 awsvpc 网络模式的任务。
创建目标组
创建目标组。对于 Choose a target type(选择目标类型),选择 Instances(实例),对于 Protocol(协议),选择 TCP。
**重要事项:**如果服务的任务定义使用 awsvpc 网络模式,则对于 Choose a target type(选择目标类型),请选择 IP addresses(IP 地址)。
配置网络负载均衡器以使用您的目标组
**注意:**您的负载均衡器的安全组规则必须允许出站流量通过流量端口和运行状况检查端口流向容器实例或任务弹性网络接口。这些规则还必须允许来自客户端的入站流量通过侦听器端口。如果您设置动态端口映射,则安全组必须允许出站流量通过临时端口(通常为 32768-65535)。
将目标组连接到网络负载均衡器,然后配置以下设置:
- 对于 IP address type(IP 地址类型),选择 IPv4。
- 对于 VPC,选择容器实例的虚拟私有云 (VPC)。
(可选)为网络负载均衡器节点激活跨区域负载均衡,以便将流量分发到所有可用区中已注册的目标上。
创建 Amazon ECS 服务
创建 Amazon ECS 服务,以在已注册到您的集群的 EC2 实例上启动任务。指定您在服务定义中创建的网络负载均衡器和目标组。
容器实例或任务网络接口安全组必须允许来自负载均衡器的入站流量通过流量端口和运行状况检查端口。此外,当您使用动态端口映射时,安全组必须允许来自负载均衡器的入站流量通过临时端口范围。
当服务中的任务启动时,Amazon ECS 会在服务定义中将容器实例或 IP 地址和端口注册到您的目标组。然后,负载均衡器会将流量路由到该容器实例或 IP 地址。使用负载均衡器的静态 IP 地址作为任务的固定入口点。
相关信息
使用负载均衡分配 Amazon ECS 服务流量
对 Amazon ECS 使用网络负载均衡器