AWS ECS 前端和后端通信
AWS ECS Frontend & Backend Communication
基于AWS ECS architecture
@Marcin 提出了一个有趣的想法,但我无法理解 ALB 如何知道要转发到哪个目标组,因为我尝试使用 2 个侦听器(HTTP 80 → 前端和 HTTP 5000 → 后端)没有奏效.
假设我有以下内容(正如@Marcin 的目的)
|---> Target Group 1 ---> ECS Services for Frontend (private subnet)
Client ---> ALB (public subnet) ---|
|---> Target Group 2 ---> ECS Service for Backend (private subnet)
假设:
- ALB 可通过
http://www.example.com
访问并侦听:
- HTTP 80 → 转发到目标组 1
- HTTP 5000 → 转发到目标组 2
- 前端容器暴露在端口
3000
- 后端容器暴露在端口
5000
- 目标组 1 映射到
HTTP 3000
- 目标组 2 映射到
HTTP 5000
上述设置的原因是,如果客户端需要前端资源,则访问 http://www.example.com
(端口 80),但如果前端向后端发出 API 请求,它会这样做通过 http://www.example.com:5000/<end_point>
(注意 :5000)。
但是,由于超时而挂起
POST http://www.example.com:5000/check net::ERR_CONNECTION_TIMED_OUT
我可以看到两个目标组都在 AWS 控制台中通过了各自的健康检查
我的上述推理有误吗,还是设置问题?
根据评论。
问题是 ALB 的安全组 中的规则允许端口 5000。因此,解决方案是添加所需的规则。
基于AWS ECS architecture
@Marcin 提出了一个有趣的想法,但我无法理解 ALB 如何知道要转发到哪个目标组,因为我尝试使用 2 个侦听器(HTTP 80 → 前端和 HTTP 5000 → 后端)没有奏效.
假设我有以下内容(正如@Marcin 的目的)
|---> Target Group 1 ---> ECS Services for Frontend (private subnet)
Client ---> ALB (public subnet) ---|
|---> Target Group 2 ---> ECS Service for Backend (private subnet)
假设:
- ALB 可通过
http://www.example.com
访问并侦听: - HTTP 80 → 转发到目标组 1
- HTTP 5000 → 转发到目标组 2
- 前端容器暴露在端口
3000
- 后端容器暴露在端口
5000
- 目标组 1 映射到
HTTP 3000
- 目标组 2 映射到
HTTP 5000
上述设置的原因是,如果客户端需要前端资源,则访问 http://www.example.com
(端口 80),但如果前端向后端发出 API 请求,它会这样做通过 http://www.example.com:5000/<end_point>
(注意 :5000)。
但是,由于超时而挂起
POST http://www.example.com:5000/check net::ERR_CONNECTION_TIMED_OUT
我可以看到两个目标组都在 AWS 控制台中通过了各自的健康检查
我的上述推理有误吗,还是设置问题?
根据评论。
问题是 ALB 的安全组 中的规则允许端口 5000。因此,解决方案是添加所需的规则。