Как обновить новые экземпляры, запущенные с помощью автоматического масштабирования AWS?
Мы используем сервис облачной информации AWS для инициализации нашего стека и настраиваем сервис автоматического масштабирования для запуска новых серверов приложений при увеличении нагрузки.
Насколько я понимаю, автоматическое масштабирование может запускать предопределенный AMI только в качестве новых экземпляров. Эти экземпляры могут отличаться от других работающих экземпляров, потому что у нас могут быть обновленные пакеты / исходный код, развернутые в этих экземплярах.
Как я могу привести новые экземпляры в актуальное состояние? Должен ли я обновлять AMI каждый раз, когда внедряю что-то новое в работающие экземпляры? Или есть в любом случае для запуска автоматического развертывания на новых экземплярах (Opsworks) при автоматическом масштабировании?
Я новичок в AWS, так что извините, если мой вопрос рудиментарный.
2 ответа
Есть несколько способов сделать это. Мой предпочтительный подход - никогда не трогать серверы напрямую, а вместо этого создавать новый AMI всякий раз, когда я развертываю новую версию программного обеспечения.
Для этого используйте AutoScalingRollingUpdate
свойство для автомасштабирующей группы. Когда вы тогда измените ImageId
для конфигурации запуска AWS автоматически заменит ваши старые серверы на новые в качестве непрерывного обновления.
У меня есть простой сценарий развертывания, который создает новый AMI, заменяет ImageId
в шаблоне, а затем выполняет обновление стека - AWS позаботится обо всем остальном.
При создании экземпляров EC2 из Beanstalk он автоматически создает группу автоматического масштабирования и запускает конфигурацию на основе указанных параметров среды. Создание экземпляра из базового AMI выполняется с использованием пользовательских данных вызова кода, который включает в себя сценарий оболочки для создания папок и установки соответствующего программного обеспечения.
Вы можете добавить новые сценарии оболочки или команды, чтобы выполнить пользовательскую работу перед запуском нового экземпляра. Таким образом, это намного проще. например, вы можете запустить обновление yum перед запуском экземпляра
Чтобы найти раздел пользовательских данных Перейдите в консоль EC2 -> Перейдите в раздел конфигураций запуска (слева) -> Выберите правильную конфигурацию запуска и скопируйте ее -> Нажмите "Просмотр пользовательских данных" -> Добавьте необходимые сценарии и команды -> Измените соответствующие Группа автоматического масштабирования для указания новой конфигурации запуска