Подтвердить что ты не робот

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

Я немного смущен об использовании услуги Elastic IP, предлагаемой Amazazon Web Services. Я предполагаю, что основная идея заключается в том, что я могу перейти на новую версию веб-приложения без простоя после этой простой процедуры:

  • Разверните новую версию в новом экземпляре EC2
  • Настройте новую версию правильно и протестируйте ее с помощью промежуточного DB
  • После правильной проверки сделайте эту новую версию с помощью Live DB
  • Свяжите Elastic IP с этим экземпляром
  • Завершить все бесполезные службы (промежуточная БД и старый экземпляр EC2)

Является ли это распространенным способом развертывания новой версии веб-приложения?

Теперь, что, если приложение масштабируется для большего количества экземпляров? Я настроил автомасштабирование в настройках эластичного beanstalk, и это создало балансировщик нагрузки (я могу видеть это в разделе EC2 консоли управления AWS). Проблема в том, что я, по-видимому, не могу связать Elastic IP с балансировщиком нагрузки, мне нужно связать его с существующим экземпляром. К какому экземпляру я должен его связать? Я в замешательстве...

Извините, если некоторые вопросы могут показаться глупыми, но я всего лишь программист, и это первый раз, когда я настроил облачную систему.

Спасибо!

4b9b3361

Ответ 1

Эластичная балансировка нагрузки (ELB) не работает с Amazon EC2 Elastic IP-адреса, на самом деле эти две концепции не сочетаются вообще.

Эластичность через балансировку упругой нагрузки

Скорее, ELB обычно используется записи CNAME (но см. ниже), и это обеспечивает первый уровень эластичности/доступности, позволяя псевдоним DNS-адреса для изменения IP-адреса используемых ELB (-ов), если это необходимо. Второй уровень эластичности/доступности выполняется балансировщиком нагрузки при распределении трафика между экземплярами EC2, которые вы зарегистрировали.

Подумайте об этом так: CNAME никогда не изменяется (точно так же, как Elastic IP-адрес), а замена экземпляров EC2 обрабатывается через балансировщик нагрузки, Auto Масштабирование или самостоятельно (путем регистрации/отмены регистрации экземпляров).

Это более подробно объясняется в превосходном анализе Shlomo Swidler "Эластичность" в "балансировке эластичной нагрузки" : эластичность ELB и как ее протестировать, что, в свою очередь, относится к недавно предоставленному AWS Amazon Route 53, чтобы разрешить корневой домен (или зону Apex), см. Раздел "Псевдонимы" и "Апекс зоны" в Перемещение вперед с маршрутом Amazon 53 для быстрого обзора и Использование имен доменов с балансировкой упругой нагрузки для деталей.

Эластичность с помощью эластичного бобового стебля

В первую очередь AWS Elastic Beanstalk использует балансировку эластичной нагрузки, как описано выше. В верхней части, если это, он добавляет управление жизненным циклом приложения:

AWS Elastic Beanstalk - еще более простой способ быстрого развертывания и управлять приложениями в облаке AWS. Вы просто загружаете свои приложение и эластичный бобовый стебель автоматически обрабатывают сведения о развертывании пропускной способности, балансировке нагрузки, автоматическое масштабирование и мониторинг работоспособности приложений. [...] [акцент мой]

Это достигается добавлением концепции среды в смесь, которая объясняется в Архитектурный обзор:

Окружающая среда является сердцем приложения. [...] Когда вы создаете окружающей среды, AWS Elastic Beanstalk предусматривает ресурсы требуется для запуска вашего приложения. Ресурсы AWS, созданные для включают в себя один эластичный балансировщик нагрузки (ELB на диаграмме), Auto Scaling group и один или несколько экземпляров Amazon EC2.

Обратите внимание, что каждая среда имеет CNAME (URL), которая указывает на балансировщик нагрузки, то есть точно так же, как использование ELB самостоятельно.

Все это объединяется в Управление и настройка приложений и сред, в котором подробно рассматриваются некоторые из наиболее важных особенностей AWS Elastic Beanstalk, в том числе примеры использования с использованием консоли управления AWS, CLI и API.

Время простоя нуля

Сложно определить наиболее подходящую часть для иллюстративных целей, но Развертывание версий с нулевым временем простоя точно соответствует вашему варианту использования и подразумевает все требуемые предыдущие шаги (например, Создание новых версий приложений и Запуск новых сред), поэтому раздел чтения AWS Management Console может дать вам наилучшую общую картину работы этой платформы.

Удачи!

Ответ 2

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

Я описываю вариант в мой ответ на аналогичный вопрос. Elastic Beanstalk теперь позволяет вам выбирать между двумя Типы окружения, а опция Single-instance создает Elastic IP.

Dropdown with options "Single instance" and "Load balancing, autoscaling".


Я думаю, что использование ELB будет предпочтительным вариантом в большинстве случаев, но, например, для промежуточного сервера приятно иметь альтернативу, которая менее сложна (и дешевле).

Ответ 3

Извинения за ответ на сообщение через несколько лет, однако для тех, кому действительно нужен набор статических IP-адресов на ELB, можно попросить AWS приятно добавить то, что они называют "стабильными IP-адресами" в ELB, и тем самым предоставить ему функцию статического IP-адреса.

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

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

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