sud*_*udo 8 port amazon-ec2 amazon-web-services amazon-ecs docker
我正在运行 AWS ECS 服务,该服务正在运行具有多个容器的单个任务。任务在 awsvpc 网络模式下运行。(EC2,不是 Fargate)
容器端口映射在 ECS 任务定义中。
我在 EC2 容器实例安全组中添加了入站规则(例如:TCP 8883 -> 从任何地方访问)。也在 VPC 网络安全组中。
当我尝试从远程 PC 使用实例的公共 IP 访问端口时,我得到connection refused.
例如: nc -z <PublicIP> <port>
当我通过 SSH 连接到 EC2 实例并尝试 netstat 时,我可以看到 SSH 端口 22 正在侦听,但不是容器端口(例如:8883)。另外,当我docker ps在实例内部执行时,端口列是空的。
我无法弄清楚我错过了什么配置。请帮忙。
PS:目标(公共 IP)可从远程 PC 访问。只是不是从港口。
我正在运行 AWS ECS 服务,该服务正在运行具有多个容器的单个任务。任务在 awsvpc 网络模式下运行。(EC2,不是 Fargate)
Ec2,不是 Fargate,不同课程的不同马。针对awsvpc 网络模式运行的任务具有自己的弹性网络接口 (ENI)、主要私有 IP 地址和内部 DNS 主机名。那么您将如何使用 AWS EC2 公共 IP 访问该容器?
awsvpc 网络模式提供的任务联网功能为 Amazon ECS 任务提供与 Amazon EC2 实例相同的联网属性。当您在任务定义中使用 awsvpc 网络模式时,从该任务定义启动的每个任务都会获得自己的弹性网络接口 (ENI)、主要私有 IP 地址和内部 DNS 主机名。任务联网功能简化了容器联网,让您可以更好地控制容器化应用程序之间以及 VPC 内其他服务之间的通信方式。
所以你需要放置 LB,然后在 LB 后面配置你的服务。
当您为这些服务创建任何目标组时,您必须选择 ip 作为目标类型,而不是实例。这是因为使用 awsvpc 网络模式的任务与 ENI 相关联,而不是与 Amazon EC2 实例相关联。
所以网络模式之间的配置有问题或缺乏了解。我会推荐阅读这篇文章。
当我在实例内执行 docker ps 时,Ports 列为空。
因此,如果端口列为空,则可能是以下情况。
主机和 awsvpc 网络模式为容器提供最高的网络性能,因为它们使用 Amazon EC2 网络堆栈而不是桥接模式提供的虚拟化网络堆栈。在主机和 awsvpc 网络模式下,暴露的容器端口直接映射到相应的主机端口(对于主机网络模式)或附加的弹性网络接口端口(对于 awsvpc 网络模式),因此您无法利用动态主机端口映射。
请记住以下几点:
它可用于 ECS 优化 AMI 的最新变体。它仅在选择加入 awsvpcTrunking 后影响新容器实例的创建。它仅影响使用 awsvpc 网络模式和 EC2 启动类型创建的任务。使用 AWS Fargate 启动类型创建的任务始终具有专用网络接口,无论您启动多少个。
| 归档时间: |
|
| 查看次数: |
3650 次 |
| 最近记录: |