是否可以在terraform中添加额外的(内部)负载平衡器来操纵beantalk的自动缩放组和目标组?如果是,怎么办?
我想有2个负载均衡器,一个是内部负载均衡器,另一个是公共负载均衡器。
我从AWS找到了这个解决方法:
https://aws.amazon.com/it/blogs/networking-and-content-delivery/using-static-ip-addresses-for-application-load-balancers/
还有其他更聪明的解决方案吗?
最佳答案
我认为可以完美实现,但是您需要对方法进行一些小的更改。
您将在EB内部没有2个负载均衡器,但是,您的beantalk将描述从第二个负载均衡器(设置为内部)开始的基础结构,然后您将添加另一个指向BE负载均衡器的公共负载均衡器。
与AWS博客中提出的方法相比,我们可以通过一种更轻松的方式来实现这一目标。
为此,您的BE设置将与您的设置几乎相同,但是:
将负载均衡器设置为网络类型。这是唯一一种允许您在负载均衡器中具有静态IP的类型。
将负载均衡器设置为内部(在beantalk的网络配置中,将可见性设置为内部,然后取消选中“将公共IP地址分配给EC2实例...”)
在不同的可用区中至少为2个负载均衡器分配弹性IP。
其余的Beanstalk保持不变。
现在创建一个公共负载均衡器:
可以是您需要的任何类型。如果您想执行SSL终止或任何其他第7层魔术,则可能是ALB。另外,它必须是公开的
创建一个新的目标组。该组的目标类型应为IP。
在上面注册您的网络负载平衡器的2个弹性IP。
将侦听器添加到指向该目标组的ALB
而这将神奇。您将需要检查如何在terraform中执行此操作,但是该方法非常简单,因此我相信terraform可以让您执行此操作。
与AWS博客(旨在用于完全不同的目的)相比,此方法的优势在于,内部负载均衡器是网络,而外部负载均衡器则不需要。由于NLB是内部的,您可以避免基础结构中的大量开销,也可以避免动态逻辑(例如他们建议注册IP地址的lambda)。
通过这种方法,您可以获得更具声明性的体系结构,更易于在地形中进行描述,并且更易于在生产中进行维护。
关于amazon-web-services - AWS:在Terraform中向弹性beantalk添加第二个内部负载平衡器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56427682/