Назначение эластичного IP для автомасштабируемого EC2 в VPC - AWS
Моя цель - автоматически назначить эластичный IP для автоматически масштабируемого экземпляра EC2.
Я сделал следующее: - Настроил экземпляр EC2 с помощью сценария запуска для назначения IP - Настроил конфигурацию запуска и группу автоматического масштабирования согласно спецификации.
Проблема заключается в том, что при развертывании конфигурации автоматического масштабирования при запуске я теряю возможность автоматически назначать публичный адрес (сначала), прежде чем он получит назначение эластичного IP-адреса.
При развертывании AMI вручную, при условии, что я установил флажок "назначить публичный IP-адрес", экземпляр будет развернут, временно назначит адрес xxxx.amazon.xxxx, а затем перенесет на мое назначение с эластичным IP-адресом.
тем не мение..
при развертывании через утилиты командной строки автоматического масштабирования (as-create-launch-config + as-create-auto-scaling-group) IP не будет работать. Я чувствую, что это можно исправить, если при настройке конфигурации запуска была опция временного захвата общедоступного IP-адреса для связи с API-интерфейсом Amazon для получения гибкого назначения.
Я очень ценю вашу помощь!
1 ответ
Вы можете использовать cloud-init для запуска команды на локальном автоматически масштабируемом сервере, который подключает EIP. Вот пример локальной команды, выполняющейся на сервере при первой загрузке: http://cloudinit.readthedocs.org/en/latest/topics/examples.html
В этой локальной команде вы можете использовать встроенные инструменты amazon, чтобы связать адрес: http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-AssociateAddress.html
В конфигурации запуска добавьте этот синтаксис cloud-init к атрибуту user-data в кодировке base64, и все будущие автомасштабированные экземпляры будут делать именно то, что Cloud-init заявляет, что будет делать.
Я обычно base64 кодирую, выполняя:
base64 <filename>