docker 不带ALB和Sping Boot 的ECS Fargate端口

pinkon5k  于 2022-12-03  发布在  Docker
关注(0)|答案(1)|浏览(116)

我在端口5000上有一个Sping Boot 应用程序,我正试图将其部署到ECS fargate。当我在本地将其构建为Docker映像时,我可以轻松地做80:5000,并且不需要URL上的端口。
我似乎不能做上面的ECS fargate。
当我在任务定义中将容器端口设置为5000时,它创建了如下内容:

{
    ...
            "portMappings": [
                {
                    "containerPort": 5000,
                    "hostPort": 5000,
                    "protocol": "tcp"
                }
            ],
    ...
}

我尝试将其修复为JSON,但收到一条错误消息,指出主机和容器端口必须匹配。
像这样,我不得不在安全组中为端口5000打开一个TCP入站规则,并且我需要使用5000端口访问我的应用程序的公共IP。没有它它就无法工作(端口80也在安全组中打开)。
我以前对超过1个容器的ALB和服务做过这个操作,它在没有5000端口的情况下与域名或负载平衡器的DNS一起工作得很好。
我能用一个容器做到这一点吗?对不起,我的菜鸟。

3zwtqj6y

3zwtqj6y1#

我以前对超过1个容器的ALB和服务做过这个操作,它在没有5000端口的情况下与域名或负载平衡器的DNS一起工作得很好。
我可以用一个容器实现这一点吗?
不需要。您要么需要修改SpringBoot应用程序以侦听端口80,或者在ECS服务前面添加一个应用程序负载平衡器。注意,即使您将容器配置为侦听端口80,这仍然是非常不安全的。如果您要将ECS容器公开给Web浏览器,则绝对应该使用配置了AWS ACM SSL证书的应用程序负载平衡器确保Web浏览器与AWS之间的连接安全。

相关问题