Как сохранить все экземпляры в AWS Автоматического масштабирования группы обновляется после развертывания нового кода?

голоса
0

Я пытаюсь построить более динамичную / масштабируемую систему в AWS . Я запустил 2 экземпляра в AutoScaling группы , где минимальное количество экземпляров составляет 2 и максимум составляет 5 с распределителем нагрузки перед ними. Я включен «Termination Protection» на первых двух случаях , так как они будут те , которые я использую для развертывания моего Rails приложения с помощью Capistrano .

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

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

1- AWS CodeDeploy: Выглядит очень круто, используя синий / зеленый развертывание выглядит , как он будет делать эту работу довольно твердую с нулевым временем простоя. Я не знаю, есть ли правило для этого , но на мой взгляд, время развертывания немного долго , я не уверен , если это будет применимо , когда мне нужно выпустить исправление .

2 С помощью сценария: Я не уверен , как реализовать это с помощью АМС либо , но идея заключается в том , когда новый код загружается в мой 2 «мастер (?)» Экземпляры,

  1. Я создать в новой конфигурации запуска с помощью нового AMI
  2. Обновите группу AutoScaling использовать эту новую конфигурацию запуска
  3. Шкала вниз моя AutoScaling группы прекратить экземпляры , которые под управлением старой конфигурацию
  4. Будем надеяться, что AutoScaling политика будет создавать новые экземпляры , используя новую конфигурацию запуска

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

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

Таким образом, эти решения, которые я видел до сих пор, что бы быть лучшим решением?

Ура!

Задан 19/09/2018 в 13:36
источник пользователем
На других языках...                            


1 ответов

голоса
0

Я закончил с использованием удлинителем камня (мое приложение написано в рубине на рельсах) для развертывания. Я уже использовал Capistranoдля развертывания, то я узнал, драгоценный камень , elbasкоторый внутренне выполняет следующее:

  • Развертывание кода для каждого запущенного экземпляра, подключенного к данной группе AutoScale
  • После развертывания создать AMI одного из запущенных экземпляров
  • Прикрепите AMI с новым кодом для нового запуска Конфигурация AWS
  • Обновите свою AutoScale группу, чтобы использовать новую конфигурацию запуска
  • Удалите все старые МАССЫ созданных ELBAS
  • Удалите старые запуска конфигурации, созданные ELBAS

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

Надеюсь, что это помогает, ура!

Ответил 23/09/2018 d 07:30
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more