Amazon web services 我的ECS任务正在运行,但当我试图通过ALB或公共IP访问它时,它不工作 ECS设置 网络配置

Amazon web services 我的ECS任务正在运行,但当我试图通过ALB或公共IP访问它时,它不工作 ECS设置 网络配置,amazon-web-services,docker,amazon-ecs,amazon-ecr,Amazon Web Services,Docker,Amazon Ecs,Amazon Ecr,任务和容器 部署配置 健康配置 入口安全组 出口安全组 还有几件事: Dockerfile将端口设置为443 容器的端口443映射到443,端口8080映射到8080 ALB正在收听443 目标群体是443和8080 公开问题: 问题是服务和任务正在运行容器,但是我无法通过公共IP或负载均衡器dns访问它 它们是Fargate上的健康实例,没有失败或不断重启的迹象。运行状况检查为600秒,最小运行状况为50%,最大运行状况为200% 我想知道我所提供的信息是否有什么听起来不寻常的地方,

任务和容器

部署配置

健康配置

入口安全组

出口安全组

还有几件事:
  • Dockerfile将端口设置为443
  • 容器的端口443映射到443,端口8080映射到8080
  • ALB正在收听443
  • 目标群体是443和8080
  • 公开问题: 问题是服务和任务正在运行容器,但是我无法通过公共IP或负载均衡器dns访问它

    它们是Fargate上的健康实例,没有失败或不断重启的迹象。运行状况检查为600秒,最小运行状况为50%,最大运行状况为200%

    我想知道我所提供的信息是否有什么听起来不寻常的地方,因为我已经彻底检查了我的配置,但是每个人都会犯错误


    感谢您的阅读。

    不确定这是否有帮助,因为您正在使用fargate,将每个任务作为带有安全组的ENI。在您的解释中,您只显示了一个安全组(ALB组?),您需要检查任务的sg是否也存在。更多细节。您应该考虑SG任务的动态端口映射,只允许在短暂端口范围内从ALB的SG连接(对于Amazon ECS优化的AMI,32768到61000)。< / P> < P>不确定这是否可以帮助,因为您使用的是FavGATE,每个任务都是具有安全组的ENI。在您的解释中,您只显示了一个安全组(ALB组?),您需要检查任务的sg是否也存在。更多细节。您应该考虑SG的任务的动态端口映射,只允许在短暂端口范围内从ALB的SG连接(对于Amazon ECS优化的AMI,32768到61000)。您可以发布ALB、目标组和安全组设置的详细信息。为什么是443端口?你有ssl证书设置吗?是的,我现在更新。Docker app Im将端口上载到443,因此当我在本地主机上运行时,我必须使用端口443:443运行,您可以发布ALB、目标组和安全组设置的详细信息。为什么是443端口?你有ssl证书设置吗?是的,我现在更新。Docker应用程序Im将端口上传到443,因此当我在本地主机上运行时,我必须使用端口443:443是,这样我的EMI就有了自己的sg:出口[All,All,0.0.0.0/0]和入口[(80,tcp,0.0.0/0),(All,All,0.0.0/0),(443,tcp,0.0.0/0)***应该注意的是,当我在本地运行该映像并通过docker将其移植到本地主机443时,该映像在我的机器上工作得非常好。此外,我制作了一个stacktrace,仅当应用程序正在运行时才输出,这是通过任务日志实现的-问题完全在于使用ECS.这是正常的,因为网络模式特定于AWS(awsvpc)。调试的最佳方法是检查VPC/ENI日志,您可以查看您的请求是否被接受。您应该阅读ALB+SSL。如果您在docker容器中执行SSL终止,您应该使用网络LB而不是ALB。对于ALB,它正在执行SSL终止,您将需要2个证书(一个客户端ALB,一个ALB docker)。祝你好运!如果你不使用ALB,你不需要。一个问题,你确认VPC和子网正确配置为访问互联网(IGW+路由表+公共IP)是的,因此我的EMI有自己的sg:出口[All,All,0.0.0/0]和入口[(80,tcp,0.0.0/0),(All,All,0.0.0/0),(443,tcp,0.0.0.0/0)***应该注意的是,当我在本地运行该映像并通过docker将其移植到本地主机443时,该映像在我的机器上工作得非常好。此外,我制作了一个stacktrace,仅当应用程序正在运行时才输出,这是通过任务日志实现的-问题完全在于使用ECS.这是正常的,因为网络模式特定于AWS(awsvpc)。调试的最佳方法是检查VPC/ENI日志,您可以查看您的请求是否被接受。您应该阅读ALB+SSL。如果您在docker容器中执行SSL终止,您应该使用网络LB而不是ALB。对于ALB,它正在执行SSL终止,您将需要2个证书(一个客户端ALB,一个ALB docker).祝你好运!如果你不使用ALB,你就不需要了。一个问题,你确认VPC和子网已正确配置为访问internet(IGW+路由表+公共IP)