Установите статические частные IP-адреса для инстансов AWS EC2, зарегистрированных с помощью AWS Elastic Load Balancer

Я пытаюсь установить статические частные IP-адреса для экземпляров AWS EC2, зарегистрированных с помощью AWS Elastic Load Balancer.

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

Позже я наткнулся на AWS Auto Recovery для Amazon EC2 Функция Instances, которая упрощает большую часть работы, связанной с подключением AWS Elastic Network Interfaces, обсуждаемой в вышеупомянутом обсуждении на форуме (подход с автоматическим масштабированием).

Но для меня неясной частью подхода, основанного на автоматическом восстановлении (это было бы проблемой), является его успех в динамической регистрации восстановленных экземпляров EC2 во время сбоя с любыми балансировщиками нагрузки, с которыми они были зарегистрированы. Информации о том, как можно использовать автоматически восстановленные экземпляры и работать с балансировщиками нагрузки, не найдено. Это введение в функцию автоматического восстановления определило следующие преимущества функции автоматического восстановления:

  • Работающий экземпляр автоматически переносится на новое базовое оборудование.
  • Нет необходимости переходить на новый экземпляр EC2.
  • Идентификатор экземпляра не изменяется.
  • IP-адрес, если это эластичный IP-адрес, остается прежним.
  • Метаданные экземпляра и частные IP-адреса также остаются прежними.

Вышеупомянутые преимущества создали у меня впечатление, что автоматически восстанавливаемые экземпляры будут успешно работать с любыми балансировщиками нагрузки (в первую очередь из-за постоянного идентификатора экземпляра), к которым они подключены во время сбоя и восстановления.

Но мои вопросы следующие:

  1. Успешно ли работает функция автоматического восстановления экземпляров EC2 с любыми подсистемами балансировки нагрузки, к которым они подключены (с точки зрения успешной регистрации экземпляра и отмены регистрации во время сбоя и восстановления)?
  2. Как лучше всего задать статические частные IP-адреса для инстансов AWS EC2, зарегистрированных с помощью AWS Elastic Load Balancers?

person Chiranga Alwis    schedule 12.08.2017    source источник


Ответы (2)


Успешно ли работает функция автоматического восстановления экземпляров EC2 с любыми подсистемами балансировки нагрузки, к которым они подключены (с точки зрения успешной регистрации экземпляра и отмены регистрации во время сбоя и восстановления)?

Да, это работает, потому что не происходит регистрации / отмены регистрации. Экземпляр остается зарегистрированным. Суть автоматического восстановления экземпляра заключается в том, что никакие другие компоненты в EC2 не осознают, что экземпляр был заменен. Все в экземпляре остается в точности так, как было - идентификатор экземпляра, частный IP-адрес, вложения EBS и ENI - после восстановления экземпляра.

Восстановленный экземпляр идентичен исходному экземпляру, включая идентификатор экземпляра, частные IP-адреса, эластичные IP-адреса и все метаданные экземпляра.

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

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

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

Как лучше всего задать статические частные IP-адреса для инстансов AWS EC2, зарегистрированных с помощью AWS Elastic Load Balancers?

Вам не нужно этого делать. Балансировщики связаны с экземплярами, а не с IP-адресами. Если вы завершите работу экземпляра и создадите новый экземпляр с тем же частным IP-адресом, ни один из балансировщиков, которые ранее отправляли трафик на этот частный IP-адрес, не будет продолжать это делать, потому что балансировщики знают, что их предполагаемая цель - конкретный экземпляр с определенным ID экземпляра - пропал.

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

person Michael - sqlbot    schedule 12.08.2017

Прежде всего, вы не можете назначить частный IP-адрес для эластичных балансировщиков нагрузки (внутреннего или внешнего), поскольку он управляется AWS. форум, которым вы поделились, предназначен для назначения исправленных частных IP-адресов для ENI и назначения это при загрузке EC2, добавив команду CLI в раздел UserData.

  1. Этот подход должен работать для автоматического восстановления, если вы можете сохранить дополнительные ENI с фиксированными частными IP-адресами. Это сделано для обработки непредвиденных ситуаций: если несколько экземпляров EC2 выйдут из строя при загрузке, новые экземпляры не смогут запуститься из-за недоступности ENI. Также вам необходимо написать дополнительные команды CLI, чтобы связать доступные ENI для новых экземпляров при аварийном переключении.

  2. Сохранение статических частных IP-адресов для экземпляров автомасштабирования не является обычной практикой, поэтому приведенное выше решение является обходным путем. Вся цель автомасштабирования заключается в том, что в любой момент времени любой экземпляр может выйти из строя и восстановиться, или может быть создан новый экземпляр для обработки дополнительной нагрузки, что устраняет необходимость других компонентов для прямого вызова экземпляра (скорее, через ELB).

person Ashan    schedule 12.08.2017