Определить балансировщик нагрузки экземпляра EC2 автоматически
Есть ли способ автоматически определить балансировщик нагрузки, если таковой имеется, для данного экземпляра EC2? Т.е. спросите "кто мой LB и какой у него сервисный IP?". Я думал о службе метаданных экземпляра, но LB "перед" экземпляром, кажется, там не указан.
Причина этого заключается в том, что я хочу установить адрес ELB (или имя DNS) в качестве атрибута узла Chef, который будет автоматически запрашиваться клиентскими службами, которым необходимо знать этот внешний IP-адрес.
1 ответ
Вы можете получить информацию, используя API.
- Получите текущий идентификатор экземпляра EC2 из метаданных экземпляра EC2.
- Используйте эластичную балансировку нагрузки:DescribeLoadBalancers, чтобы получить список балансировщиков нагрузки.
- Переберите каждый балансировщик нагрузки в ответе. Для каждого балансировщика нагрузки выполните итерацию списка экземпляров в поисках идентификатора вашего экземпляра.
Примечание № 1: возможно, что экземпляр EC2 будет зарегистрирован ни с одним, с одним или даже двумя или более балансировщиками нагрузки.
Примечание № 2. Внешний IP-адрес Elastic Load Balancer, скорее всего, со временем изменится.