目前,我正在尝试弄清楚如何配置 ECS 服务之间的通信。我计划进行以下设置:
- 后端服务
- 前台服务
- 一个应用程序负载均衡器
我有以下选择:
- 为 ALB 配置 2 个目标组,并根据路径转发请求。例如,
alb.amazonaws.com/backend/
将请求转发给backend-target-group
将请求提供给后端 ECS 任务的请求。 - 在每个 ECS 任务中运行一个脚本,该脚本将使用 AWS cli 和服务发现检索正在运行的任务的 IP 地址。不确定这是否可行,而且测试起来相对困难。
它们似乎都不是正确的方法。由于财务限制,我不想为每个服务使用单独的 ALB。我在想的是 ECS 服务的某种内部 DNS 名称。我检查了以下链接,但无法弄清楚如何将其应用于我的案例。
- https://docs.aws.amazon.com/cloud-map/latest/dg/what-is-cloud-map.html
- https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html
- https://aws.amazon.com/blogs/aws/amazon-ecs-service-discovery/
- https://aws.amazon.com/blogs/compute/task-networking-in-aws-fargate/
相关问题: AWS ECS 容器通信
因此,理想情况下,我想要实现的是:为后端服务提供一个内部 DNS 名称,并将来自前端服务的请求发送到后端。