是否可以在Terraform中添加额外的(内部)负载平衡器来操纵beantalk的自动缩放组和目标组?如果是,怎么办?
我想有2个负载均衡器,一个是内部负载均衡器,另一个是公共负载均衡器。 我从AWS找到了这种解决方法:
还有其他更智能的解决方案吗?
答案 0 :(得分:2)
我认为可以完美实现,但是您需要对方法进行一些小的更改。
您将在EB内部没有2个负载均衡器,但是,您的beantalk将描述从第二个负载均衡器开始的基础架构,并将其设置为内部负载,然后您将添加另一个指向BE负载的公共负载均衡器。平衡器。
与AWS博客中提出的方法相比,我们可以通过一种更简单的方法来实现这一目标。
为此,您的BE设置将与您的设置几乎相同,但是:
现在创建一个公共负载均衡器:
这将起到神奇作用。您将需要检查如何在terraform中执行此操作,但是该方法非常简单,因此我相信terraform可以让您执行此操作。
与AWS博客(旨在用于完全不同的目的)相比,此方法的优势在于,这里的内部负载均衡器是网络,而不需要外部负载均衡器。由于NLB是内部的,您可以避免基础结构中的大量开销,也可以避免动态逻辑(例如他们建议注册IP地址的lambda)。 通过这种方法,您将获得更具声明性的体系结构,更易于在地形中进行描述,并且更易于在生产中进行维护。
答案 1 :(得分:0)
您只能将一个目标组与一个负载均衡器关联。将目标组与负载均衡器关联后,该目标组将不再可用于与另一个ALB关联。
您可能会想出一种解决方法,使用端口和安全组规则之类的不同方法,或者创建第二个目标组。
Elastic beanstalk的设计目的并非如此。对于开发人员来说,这只是推销代码并脱离基础架构的一种简单方法。当复杂性级别增加时,它就有时间离开EB。
答案 2 :(得分:0)
您可以根据自己的选项设置从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的引用,根本没有文档