Я хочу создать конфигурацию Elastic Beanstalk, которая позволяет мне развернуть службу .NET Windows, но без развертывания веб-приложения.
Я только что прочитал это сообщение в блоге, в котором объясняется, как использовать .ebextensions для развертывания службы Windows рядом с вашим веб-приложением, но есть сценарий, для которого. ebextensions можно запустить без развертывания пакета Web Deploy для веб-приложения?
Является единственной возможностью создать пустое веб-приложение, содержащее каталог .ebextensions, а затем развернуть пакет Web Deploy?
В разделе "Часто задаваемые вопросы" в разделе "Эластичные бобы" упоминается возможность развертывания не-веб-приложений (здесь), и я нашел аналогичный (не отвеченный) вопрос на форумах разработчиков AWS (здесь).
Update
Из-за отсутствия активности по этому вопросу и моей неспособности найти какую-либо другую информацию в Интернете, я просто предположил, что ответ на этот вопрос "Нет" (по крайней мере, на данный момент).
В итоге я создал пустое веб-приложение и использовал его для развертывания моей Службы Windows через конфигурацию .ebextensions YAML.
В качестве примечания я хотел бы выделить эту страницу из документации Amazon, которую я нашел очень полезным руководством для создания этих специальных файлов конфигурации.
Другое обновление
После реализации упомянутого выше подхода я обнаружил, что Elastic Beanstalk не выполнял мои сценарии .ebextensions
для новых экземпляров Beanstalk. В результате служба Windows не смогла быть установлена при создании новых экземпляров. Мне пришлось перепрыгнуть через еще несколько обручей, чтобы наконец прийти к масштабируемому решению. Пожалуйста, дайте мне знать, хотите ли вы детали окончательного решения.
В конечном итоге это похоже на то, что Elastic Beanstalk не предназначался для развертывания масштабируемых служб Windows.
Основное решение
Мне не удобно выпускать исходный код, поскольку он не для личного проекта, а вот базовая структура моего текущего решения для развертывания:
- Пользовательский EC2 AMI содержит программу "bootstrap", которая запускается при запуске. Программа выполняет следующие действия:
1.1. Загрузите 'zip' архив из (настраиваемого) 'развертывания' S3-ведра
1.2. Извлеките загруженный zip файл во временный каталог
1.3. Установлен/выполнен" install.bat" script (также можно настроить имя script). Этот script устанавливает и запускает службу Windows. - Упругий бобовый знак "Instance AMI" установлен в пользовательский AMI с программой bootsrap (см. в этой статье)
Чтобы развернуть новый код: загрузите архив .zip установки (содержащий службу Windows и файл install.bat) в ведро S3 и завершите все экземпляры EC2 для приложения Elastic Beanstalk. По мере повторного создания экземпляров программа начальной загрузки будет загружать/устанавливать обновленный код.
Конечно, если бы я начинал, я бы просто пропустил использование Elastic Beanstalk и использовал стандартное автомасштабирование AWS вместе с аналогичной схемой развертывания. Нижняя строка заключается в том, что если у вас нет веб-приложения, не используйте Elastic Beanstalk; вам лучше со стандартным автомасштабированием AWS.
Новые средства развертывания AWS
Недавно Amazon анонсировала несколько новых служб развертывания/управления кодом, которые, по-видимому, затрагивают проблемы с развертыванием: http://aws.amazon.com/blogs/aws/code-management-and-deployment/
Мне еще нужно использовать эти новые сервисы (я даже не уверен, что они еще выпущены), но они выглядят многообещающими.