【问题标题】:AWS ALB routes to other ALBsAWS ALB 路由到其他 ALB
【发布时间】:2020-12-04 01:13:25
【问题描述】:

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

我想要 ALB 提供的公开可用的域名,然后 在不同的路由下“挂载”了一个单独的集群(有自己的服务)(例如/cluster1/cluster2cluster3

还有其他解决方案可以实现这种设置吗?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 load-balancing amazon-ecs aws-application-load-balancer


    【解决方案1】:

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

    【讨论】:

    • 旁注,如果出于某种原因确实需要或需要这样的配置,或者您想将 ALB 和来自 S3 存储桶的内容集成到单个主机名后面,那么顶部的角色树可以由 CloudFront 处理。默认情况下,它支持 25 个不同的基于路径的目标,可扩展至比请求更多的目标。目标资源可以在任何账户中,甚至可以在 AWS 之外。
    • 由于 WAF 只能应用于整个 ALB(并且它可能会很快变得昂贵),一个有效的理由是 WAF 仅使用指向 2 个 ALB 的 ALB 的某些路径,1 个带有 WAF一个没有。但就像其他提到的那样,目前这并不容易。
    【解决方案2】:

    把它当作一个琐事问题而不是最佳设计问题,技术上是可行的,但有点烦人。

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

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

    【讨论】:

      猜你喜欢
      • 2021-06-17
      • 2020-01-05
      • 2018-10-08
      • 2017-06-12
      • 1970-01-01
      • 1970-01-01
      • 2019-01-22
      • 2020-07-03
      • 2020-11-23
      相关资源
      最近更新 更多