Автоматизация обновления AWS AMI и процесса развертывания
Я настроил процесс установки и настройки моего стека приложений в базовом образе Ubuntu, а затем создал AMI на компьютере. Все это автоматизировано с помощью упаковщика. Теперь, когда у меня есть ami-id, как только упаковщик готов, я вручную создаю новую конфигурацию запуска и обновляю свою конфигурацию ASG, а затем планирую масштабирование действия, которое избавляет от старых экземпляров.
Итак, что я ищу:
- Пожалуйста, предложите лучший способ обновления моего стека приложений, когда есть новое обновление для любой версии программного обеспечения (например, ngnix ruby и т. Д.)
- Как я могу автоматизировать процесс развертывания, чтобы поднять новый ami, а старый экземпляр должен ухудшиться.
1 ответ
Для этого есть хорошая стратегия ускоренного автоматического масштабирования в AWS CloudFormation Stacks с пользовательскими ресурсами с лямбда-поддержкой
Чтобы организовать этот процесс, вы запускаете эталонный экземпляр с помощью сценария пользовательских данных, используете условия ожидания для запуска захвата AMI и, наконец, создаете конфигурацию запуска группы автоматического масштабирования, которая ссылается на вновь созданный AMI. Эталонный экземпляр, который используется для захвата AMI, затем может быть прерван или может быть перенаправлен для административного доступа или для выполнения запланированных задач.
Процесс не использует Packer и не требует выделенного сервера для создания AMI, а вместо этого использует пользовательский ресурс с поддержкой Lambda.
Второй вариант
Поскольку у вас уже есть создание AMI в Packer, вам следует рассмотреть возможность использования Lambda для копирования существующей конфигурации запуска с обновленным AMI. Вы можете увидеть хороший подход к этому из патча AMI и обновления группы автоматического масштабирования:
В следующем примере используется пример "Упрощение исправления AMI с использованием автоматизации, лямбды и хранилища параметров" путем добавления шага, который обновляет группу автоматического масштабирования с использованием недавно исправленной AMI. Такой подход гарантирует, что новые образы будут автоматически доступны для различных вычислительных сред, в которых используются группы автоматического масштабирования.
На последнем этапе рабочего процесса автоматизации в этом примере используется лямбда-функция AWS для копирования существующей конфигурации запуска и установки идентификатора AMI для недавно исправленного AMI. Затем группа автоматического масштабирования обновляется с помощью новой конфигурации запуска. В этом типе сценария автоматического масштабирования пользователи могут завершить работу существующих экземпляров в группе автоматического масштабирования, чтобы принудительно запустить новый экземпляр, использующий новый образ. Либо пользователи могут подождать и позволить событиям масштабирования или масштабирования естественным образом запускать новые экземпляры.