Мы работаем над настройкой автомасштабируемого веб-сервиса на AWS. Одно из наших требований - перезагрузить конфигурацию веб-сервера через SSH. Обычно это не очень сложно, так как это всего лишь вопрос выполнения
ssh user@webserver "service apache2 reload"
Проблема в том, что при автоматическом масштабировании веб-серверов вы не знаете, сколько серверов работает и, что наиболее важно, каковы их IP-адреса. Итак, нам нужен способ получить список IP-адресов, которые в настоящее время сформированы в группе автоматического масштабирования.
Я проверил AWS CLI describe-auto-scaling-instances
команда, но это дает мне только идентификаторы экземпляров. AFAIK, нет способа получить IP, связанный с этим идентификатором.
Я попытался найти подсказки в документации по API AWS, но безуспешно.
Есть ли здесь кто-нибудь, кто знает чистый способ сделать это? Альтернативой может быть то, что серверы проверяют себя на центральном сервере при загрузке и проверяют себя при остановке. Однако это подвержено ошибкам и требует центрального сервера, который не очень доступен и, честно говоря, немного расточительно использовать только для этой цели ...
Очевидно, я был слепым. API AWS для экземпляров EC2 действительно перечисляет IP-адрес при выдаче describe-instances
команда.