Назначение статических IP-адресов автоматически масштабируемому экземпляру EC2

У нас есть сторонняя интеграция, которая требует внесения IP-адреса экземпляра EC2 в белый список. Сторонняя сторона вносит IP-адреса в белый список на своем сервере, и тогда только экземпляр EC2 может общаться с ними. В случае с одним экземпляром это работает. Однако, когда сработает автоматическое масштабирование, мы окажемся в более чем 1 экземпляре. Эти новые экземпляры автоматически получают новые IP-адреса для каждого действия автомасштабирования. Можем ли мы попросить AWS назначить IP-адреса, скажем, из набора из 4 предопределенных эластичных IP-адресов? (Предполагается, что автомасштабирование ограничено, скажем, 4, и у нас есть 4 плавающих EIP)

Я пытаюсь избежать шлюза NAT, так как с ним связаны большие затраты.

Любые идеи?




Ответы (3)


При автомасштабировании невозможно напрямую назначить эластичный IP-адрес автоматически масштабируемым экземплярам. Однако есть несколько вариантов, которые вы можете рассмотреть.

  • После автомасштабирования экземпляра загрузочный сценарий (например, UserData в Linux) с командами командной строки AWS EC2 для связать эластичный IP-адрес, который вы выделили своей учетной записи, написав сценарий командной строки. Обратите внимание, что вам необходимо соответствующим образом обрабатывать проверки работоспособности, чтобы переход прошел гладко.
  • Наличие триггера тревоги CloudWatch для выполнения функции Lambda, которая свяжет эластичный IP-адрес с вновь запущенным экземпляром. Для этого вы можете использовать AWS SDK и код для проверки экземпляра без EIP и связать с ним доступный EIP.
person Ashan    schedule 25.09.2017

Auto Scaling не будет автоматически назначать эластичный IP-адрес экземпляру.

Для этого можно написать код и включить его в состав данных пользователя, которые выполняются при запуске экземпляра. Это будет:

  • Получить список эластичных IP-адресов
  • Найдите тот, который в настоящее время не связан с экземпляром EC2.
  • Свяжите его с самим собой (то есть с экземпляром EC2, на котором запущен скрипт пользовательских данных).
person John Rotenstein    schedule 25.09.2017

Используйте экземпляр NAT. С t2.nano связана лишь небольшая стоимость, и вы должны найти ее более чем достаточной для этой цели.

http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html

Хотя он и не так надежен, как NAT Gateway (вы платите за автоматическую надежность и практически бесконечную масштабируемость), маловероятно, что у вас возникнут проблемы с экземпляром NAT, если только базовое оборудование не выйдет из строя, и вы можете помочь смягчить это, настроив экземпляр. Восстановление:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-recover.html

person Michael - sqlbot    schedule 25.09.2017