Проблемы с сетью при создании сред Beanstalk из AMI

Я использую веб-интерфейс эластичного beanstalk AWS для создания среды на основе существующего AMI, в котором развернуто наше приложение.

Среда создается, приложение доступно по IP-адресу экземпляра ec2. однако состояние среды остается "ожидающим" в течение 15 минут, а затем ухудшается до "Серьезного" с этими ошибками в журнале среды:

2017-10-22 15:57:50 UTC + 0300 ИНФОРМАЦИЯ Запущенная среда: Winfooztest->env-6. Однако во время запуска были проблемы. Смотрите журнал событий для> деталей.

2017-10-22 15:57:49 UTC + 0300 ОШИБКА Экземплярам EC2 не удалось> связаться с AWS Elastic Beanstalk, либо из-за проблем с настройкой VPC, либо из-за сбоя экземпляра EC2. Проверьте конфигурацию VPC > и попробуйте снова запустить среду. 2017-10-22 15:57:49 UTC+0300 ОШИБКА Стек с именем 'awseb-e-ypy7mg2pta->stack' прервал операцию. Текущее состояние: 'CREATE_FAILED' Причина:> Следующим ресурсам не удалось создать [AWSEBInstanceLaunchWaitCondition].

2017-10-22 15:56:16 UTC + 0300 ПРЕДУПРЕЖДЕНИЕ> Состояние окружающей среды> перешло из режима ожидания в состояние серьезного. Идет инициализация (работает> 16 минут). Ни один из экземпляров не отправляет данные.

2017-10-22 15:41:48 UTC + 0300 ИНФОРМАЦИЯ Создан сигнал тревоги CloudWatch с именем: >awseb-e-ypy7mg2pta-stack-AWSEBCloudwatchAlarmHigh-QVXFWC3HZS5S

Итак, что я понял здесь, так это то, что экземпляр создан, но он не может взаимодействовать с эластичным бобовым стеблем. В отличие от здравого смысла, и для того, чтобы точно определить проблему, я постарался сделать настройки VPC как можно более общедоступными. Вот что я сделал:

Тип VPC: Создан "VPC с одной общедоступной подсетью"

Блок CIDR IPv4: 10.0.0.0/16

IPv4 CIDR публичной подсети: 10.0.0.0/24

Видимость: общедоступная

Отметил опцию иметь публичный IP-адрес для VPC

Группа безопасности - Входящий: ВСЕ Трафик | ВСЕ | ВСЕ |0.0.0.0/0

Группа безопасности - Исходящий: ВСЕ Трафик | ВСЕ | ВСЕ |0.0.0.0/0

Среда настроена на использование балансировщика нагрузки.

Неудачно.

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

1 ответ

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

Наилучшим подходом здесь является создание вашего AMI с использованием упаковщика https://www.packer.io/ из одного из предварительно настроенных шаблонов http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html

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

Крючки организованы в следующие папки:

appdeploy - сценарии запускаются во время развертывания приложения. Elastic Beanstalk выполняет развертывание приложения при запуске новых экземпляров и когда клиент инициирует развертывание новой версии. configdeploy - сценарии запускаются, когда клиент выполняет обновление конфигурации, которое влияет на конфигурацию программного обеспечения на экземпляре, например, путем установки свойств среды или включения ротации журналов в Amazon S3. restartappserver - сценарии запускаются, когда клиент выполняет перезапуск сервера приложений. preinit - сценарии запускаются во время начальной загрузки экземпляра. postinit - скрипты запускаются после начальной загрузки экземпляра.

Другие вопросы по тегам