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

有没有办法自动确定给定EC2实例的负载均衡器(如果有)? 也就是说,问它“我的LB是谁,服务IP是什么?”。 我正在考虑实例元数据服务,但实例前面的LB“似乎并没有在那里列出。

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

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

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

注#1:EC2实例有可能被注册为一个,一个甚至两个或更多的负载均衡器。

注#2:Elastic Load Balancer的外部IP地址很可能会随时间而改变。