不知道我哪里错了:
负载均衡器
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
目标组配置了 HTTP/80 协议
ECS 具有 Spring Boot 应用程序,主机和容器端口映射到端口 9090 创建 ECS 服务,该服务使用现有的负载均衡器和上面的目标组
您的目标组配置为将流量发送到 ECS 任务的端口
80
。您的 ECS 任务正在侦听端口 9090
,而不是端口 80
。
您需要配置目标组以将流量转发到 ECS 任务正在侦听的实际端口。在本例中,即端口
9090
。