当我创建经典负载均衡器(CLB)或应用程序负载均衡器(ALB)时,弹性网络接口(ENI)自动创建并附加到Load Balancer。
我的目标:我想影响从我的负载均衡器到其网络接口的标签。
这有点奇怪,因为:
com.amazonaws.services.ec2.model.Instance
有一个getNetworkInterfaces()
用于列出EC2实例网络接口。com.amazonaws.services.elasticloadbalancing.model.LoadBalancerDescription
没有列出CLB网络接口的方法。com.amazonaws.services.elasticloadbalancingv2.model.LoadBalancer
没有列出ALB网络接口的方法。我找到了另一种解决方案,但我对此不满意:
com.amazonaws.services.ec2.AmazonEC2#describeNetworkInterfaces()
description
字段。此描述字段包含Load Balancer的名称。如果它是CLB格式为ELB classic-load-balancer-name
,如果它是ALB格式为ELB app/application-load-balancer-name/f8bb2c1b66c9a086
description
与负载均衡器相关联。如果有人更改了说明字段,此解决方案不再有效,影响负载均衡器标记到其网络接口的最佳方法是什么?
注意:我使用的是Java AWS-SDK。
答案 0 :(得分:2)
自动创建弹性网络接口(ENI)并将其连接到负载均衡器。
更确切地说,至少创建了一个 ENI,并将其连接到部署平衡器的每个可用区中的平衡器(NLB除外,每个应该只有一个) AZ)。在平衡器的使用寿命期间,新的ENI将出现,旧的ENI将消失,因为平衡器水平扩展(节点数)和/或垂直扩展(底层硬件的容量),所有这些都由基础设施透明地处理。即使您可以标记它们,标记也会随着时间的推移而变得陈旧。
如果有人更改了说明字段
您无法在这些ENI中编辑说明。访问被拒绝。