AWS LoadBalancer + TargetGroup 无法访问 ECS 中的 Spring Boot 应用程序

问题描述 投票:0回答:1

不知道我哪里错了:

负载均衡器

LoadBalancer 在 HTTPS / 443 上有一个监听器 并转发给目标群体

目标群体

目标组配置了 HTTP/80 协议

ECS

ECS 有 Spring Boot 应用程序,主机和容器端口映射到端口 9090 创建的 ECS 服务使用现有的 LoadBalancer 和上面的目标组

安全组

负载均衡器安全组 - 允许 443 上的入站 - CIDR 0.0.0.0 ECS 安全组 - 允许来自 LoadBalancer 安全组的端口 9090 入站

结果

当我运行该服务时: 服务运行。 启动 2 个任务作为“运行” 目标组将两个容器报告为“健康”(在端点 bff/actuator/health 上)

....但是当我尝试通过 LoadBalancer 访问该端点时

例如https://CloudFront/bff/actuator/health,我收到超时/无法访问错误(30 秒后)

我不知道我哪里出了问题。

我检查了 CloudWatch 日志,好像请求没有到达 ECS 容器。

有什么想法吗?

更新

当我直接使用 ALB DNS 时,它就可以工作

https://LoadBalancerDNS/bff/actuator/health (尽管我收到安全警告,因为 ALB SSL 证书需要 CloudFront URI)

问题似乎出在 CloudFront 和 ALB 之间,因为这不起作用:

https://CloudFrontRoute53DomainName/bff/actuator/health

amazon-web-services spring-boot amazon-ecs amazon-elb
1个回答
0
投票

目标组配置了 HTTP/80 协议

ECS 具有 Spring Boot 应用程序,主机和容器端口映射到端口 9090 创建 ECS 服务,该服务使用现有的负载均衡器和上面的目标组

您的目标组配置为将流量发送到 ECS 任务的端口

80
。您的 ECS 任务正在侦听端口
9090
,而不是端口
80

您需要配置目标组以将流量转发到 ECS 任务正在侦听的实际端口。在本例中,即端口

9090

© www.soinside.com 2019 - 2024. All rights reserved.