AWS ALB 路由到其他 ALB

AWS ALB routes to other ALBs

是否可以使用 ALB 实现这样的架构?

我想要ALB提供的公开域名然后 在不同的路线下有一个单独的集群(有自己的服务)"mounted"(例如/cluster1/cluster2cluster3

是否有任何其他解决方案来实现此类设置?

不,这不可能,但也没有理由这样做。您只需要在单个 Application Load Balancer 中设置路由规则即可路由到不同的 Target Groups

将其视为琐碎问题而不是最佳设计问题,技术上可以做到,但有点烦人。

  1. 使用 3 个基于 IP 的目标组和基于路径的侦听器规则创建您的顶级 ALB,以路由到正确的组。
  2. 创建每个子 ALB 并将其配置为正确路由到您的服务。
  3. 将父目标组连接到子 IP。每个子 ALB 将在您分配给它的每个子网中都有一个节点。每个 ALB 节点都将拥有动态 IP。您可以从 ALB 中获取每个节点的 IP,并将其添加到父 ALB 中的正确目标组。您想要对其进行设置,以便父级中的每个目标组都具有您希望它路由到的所有 ALB 节点的 IP。
  4. ALB 节点 IP 是动态的,因此您需要处理它们在没有警告的情况下对您的更改。创建一个 Cloudwatch 事件,该事件在子 ALB 节点的 IP 更改时触发,并使用它来触发 Lambda。让 Lambda 使用新 IP 更新父 ALB 中的正确目标组。

有一点 Rube-Goldberg 正在发生,设置起来很烦人,但它会在实践中起作用。