自动确定 EC2 实例的负载均衡器

自动确定 EC2 实例的负载均衡器

有没有办法自动确定给定 EC2 实例的负载均衡器(如果有)是什么?即让它询问“我的 LB 是谁,它的服务 IP 是什么?”。我当时想的是实例元数据服务但实例“前面”的 LB 似乎没有列在那里。

这样做的原因是我想要将 ELB 地址(或 DNS 名称)设置为 Chef 节点属性,以便需要知道此外部 IP 的客户端服务自动查询。

答案1

您可以使用API​​获取信息。

  1. 从 EC2 实例元数据中获取当前 EC2 实例 ID。
  2. 使用 elasticloadbalancing:DescribeLoadBalancers 获取负载均衡器列表。
  3. 遍历响应中的每个负载均衡器。对于每个负载均衡器,遍历实例列表以查找您的实例 ID。

注意事项 1:EC2 实例可以注册零个负载均衡器、一个负载均衡器,甚至两个或多个负载均衡器。

注意事项#2:弹性负载均衡器的外部 IP 地址很可能会随着时间而改变。

相关内容