У меня есть приложение MEAN, в котором я использую частный IP-адрес для обеспечения соединения между сервером или приложением. И я использую для этого внутри своего приложения частный IP-адрес экземпляра ec2.
Теперь я хочу использовать автоматическое масштабирование для своей производственной среды. Но я не могу выделить предопределенные частные IP-адреса при запуске экземпляра ec2 с помощью Auto Scaling Group.
Is there a better way to do this? Perhaps through Launch Configurations?
Как лучше всего разрешить экземплярам ec2, запущенным группой Auto Scaling Group, назначить частный IP-адрес?
Не могли бы вы предоставить дополнительную информацию о том, как вы используете IP-адрес в своем приложении? Вы должны использовать членство в AWS Security Group для открытия портов вместо указания частных IP-адресов, но мне нужно больше информации о том, что делает ваше приложение, чтобы предоставить полный альтернативный подход к использованию определенных IP-адресов. — person Shah4All schedule 29.06.2019
Куда вы помещаете IP-адреса — на главном сервере, который затем общается с подчиненной машиной? Что происходит, когда Auto Scaling завершает один из экземпляров — как система реагирует на потерю экземпляра? Измените свой вопрос, чтобы получить дополнительную информацию о том, как это работает. — person Shah4All schedule 30.06.2019
Amazon EC2 Auto Scaling регулирует емкость по:
При запуске нового экземпляра он получает частный IP-адрес из диапазона CIDR связанной подсети. Хотя обычно в Amazon EC2 можно запросить конкретный IP-адрес (что выполняется через резервирование DHCP), это невозможно с автоматическим масштабированием. Вместо этого каждый экземпляр получит случайный адрес из диапазона CIDR подсети.
Если вашему приложению действительно требуется диапазон заранее определенных IP-адресов, вы можете использовать пул эластичных IP-адресов и заставить каждый новый экземпляр «захватывать» один из этих адресов. Однако трафик в VPC, который относится к общедоступному IP-адресу (а эластичный IP-адрес является общедоступным IP-адресом), имеет плату в размере 1 цента / ГБ, потому что он выходит, а затем возвращается в VPC. Я бы не рекомендовал такой подход.
Учитывая, что может быть переменное количество экземпляров, работающих в любое время, и, следовательно, предполагая, что ваше приложение может обрабатывать тот факт, что у него может быть зарегистрированный, но не используемый IP-адрес, вы можете просто дать ему каждый IP-адрес в диапазоне CIDR. . Вы даже можете сделать подсеть меньшего размера, чтобы диапазон не был очень большим.
Одно уточнение по поводу создания подсетей меньшего размера: на сегодняшний день (июль 2021 г.) минимально допустимые подсети — / 28, поэтому, если кто-то пытается создать, скажем, / 31 или / 32, он потерпит неудачу. — person Shah4All; 22.07.2021
Невозможно зарезервировать определенный частный IP-адрес для группы автоматического масштабирования в конфигурациях запуска для экземпляра ec2.
Однако здесь есть три возможных обходных пути.
В соответствии с частным IP создайте небольшую подсеть и выберите ее при создании группы автоматического масштабирования.
Создайте ENI (сетевой интерфейс) и назначьте ему частный IP адрес по вашему выбору. В конфигурации запуска автоматического масштабирования напишите сценарий данных пользователя, который использует Инструменты AWS cli, чтобы обнаружить предварительно созданный ENI и прикрепить его к экземпляру ec2.
Вы также можете попробовать добавить Дополнительный частный IP-адрес в основной интерфейс экземпляра, используя данные пользователя.