不带ALB和Spring Boot的ECS Fargate端口



我在端口5000上有一个Spring Boot应用程序,我试图将其部署到ECS网关。当我在本地构建Docker镜像时,我可以很容易地做到80:5000,不需要URL上的端口。

我似乎不能在ECS上做到以上。

当我在Task定义中将容器端口设置为5000时。它是这样创建的:

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

我尝试将其修复为JSON,但我收到一个错误消息,主机和容器端口必须匹配。

像这样,我必须在安全组中打开端口5000的TCP入站规则,并且我需要使用5000端口访问我的应用程序的公共IP。没有它就不能工作(端口80也在安全组中打开)。

我以前用超过1个容器的alb和服务这样做过,它与没有5000端口的负载均衡器的域名或dns一起工作得很好。

我可以实现这与一个单一的容器吗?对不起,我很笨。

我以前用alb和超过1个容器的服务这样做过,它与没有5000端口的负载均衡器的域名或dns一起工作很好。

我可以实现这与一个单一的容器吗?

。你要么需要修改你的SpringBoot应用程序来监听端口80,要么在ECS服务前添加一个应用程序负载均衡器。注意,即使您将容器配置为监听端口80,这仍然非常不安全。如果您要将ECS容器暴露给web浏览器,则绝对应该使用配置了AWS ACM SSL证书的应用程序负载均衡器,以确保web浏览器和AWS之间的连接安全。

最新更新