【问题标题】:AWS: add second internal load balancer to elastic beanstalk in terraformAWS:在 terraform 中向弹性 beantalk 添加第二个内部负载均衡器
【发布时间】:2019-10-19 00:39:46
【问题描述】:

是否可以在 terraform 中操作 beanstalk 的自动缩放组和目标组,添加额外的(内部)负载平衡器?如果是,怎么做?

我想要 2 个负载平衡器,一个是内部的,另一个是公共的。 我从 AWS 找到了这个解决方法:

https://aws.amazon.com/it/blogs/networking-and-content-delivery/using-static-ip-addresses-for-application-load-balancers/

还有其他更智能的解决方案吗?

【问题讨论】:

    标签: amazon-web-services terraform amazon-elastic-beanstalk terraform-provider-aws


    【解决方案1】:

    我认为这可以完美实现,但您需要在方法上稍作改动。

    EB 内部不会有 2 个负载均衡器,但是您的 beanstalk 将描述从第二个负载均衡器开始的基础架构,设置为内部,然后您将添加另一个指向 BE 负载的公共负载均衡器平衡器。

    与 AWS 博客中提出的方法相比,我们可以更轻松地实现这一目标。

    为此,您的 BE 设置将与您拥有的几乎相同,但是:

    • 将负载平衡器设置为网络类型。这是唯一允许您在负载平衡器中拥有静态 IP 的类型。
    • 将负载均衡器设置为内部(在 beanstalk 的网络配置内部,将可见性设置为内部,并取消选中“将公共 IP 地址分配给 EC2 实例...”
    • 将弹性 IP 分配给您的负载均衡器,至少 2 个,位于不同的可用区。
    • Beanstalk 的其余部分保持原样。

    现在创建一个公共负载均衡器:

    • 这可以是您需要的任何类型。如果你想做 SSL 终止或任何其他第 7 层魔法,也许是 ALB。此外,它必须是公开的
    • 创建一个新的目标组。该组的目标类型应为 IP。
    • 在上面注册您的网络负载均衡器的 2 个弹性 IP。
    • 向您的 ALB 添加一个指向此目标组的侦听器

    这会变魔术。您将需要检查如何在 terraform 中执行此操作,但该方法非常简单,因此我确信 terraform 会让您这样做。


    与 AWS 博客(其目的是为了完全不同的目的)相比,这样做的优势在于,这里的内部负载均衡器是网络,而外部则不需要。由于 NLB 是内部的,您可以避免基础架构中的大量开销,也可以避免动态逻辑,例如他们建议注册 IP 地址的 lambda。 使用这种方法,您可以获得更具声明性的架构,更易于在 terraform 中描述,并且更易于在生产中维护。

    【讨论】:

      【解决方案2】:

      您只能将一个目标组与一个负载均衡器相关联。将目标组与负载均衡器关联后,该目标组将无法再与另一个 ALB 关联。

      您可能会想出一个解决方法,使用不同的方法,例如端口和安全组规则,或者创建第二个目标组。

      这些都不是 Elastic beanstalk 的设计初衷。这只是开发人员推送代码并远离底层基础设施的一种简单方法。当复杂程度增加时,就需要离开 EB。

      【讨论】:

        【解决方案3】:

        您可以在选项设置上从 EB 扩展其 TargetGroupARNs

        使用 cloudformation 语法

          - Namespace: aws:cloudformation:template:resource:property
            ResourceName: AWSEBAutoScalingGroup
            OptionName: TargetGroupARNs
            Value: [{\"Ref\":\"AWSEBV2LoadBalancerTargetGroup\"},"ARN_FROM_A_EXTERNAL_TARGETGROUP_LINKING_TO_ANOTHER_LOADBALANCER"}]
        

        而且,是的,我刚刚找到了对 aws:cloudformation:template:resource:property here 的引用,根本没有文档

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-12-18
          • 1970-01-01
          • 1970-01-01
          • 2015-09-23
          • 2020-05-08
          • 2017-09-30
          • 2019-10-21
          • 2013-03-22
          相关资源
          最近更新 更多