AWS обновляет военный файл на ec2 tomcat в группе автоматического масштабирования за loadbalancer

У меня есть VPC, который содержит балансировщик нагрузки в общедоступной подсети и имеет 3 экземпляра веб-сервера ec (tomcat7) в частной подсети. Экземпляры запускаются через группу автоматического масштабирования. Изначально было запущено 2 экземпляра (минимальное значение экземпляра было 2). Затем я вручную (SSH) установил java и tomcat и скопировал военный файл.

все работает нормально

У меня мало недоразумений

1. Как только что созданный экземпляр будет иметь установленную java + tomcat + war. Единственное место, которое я могу подозревать, это «Конфигурация запуска» -> Дополнительные сведения -> Данные пользователя, которые я планирую написать в этом поле.

sudo su root
apt-get update
apt-get install -y openjdk-7-jdk
apt-get install -y tomcat7
some command to get war file from some where (S3)

2 - Обновление в реальном времени: допустим, автомасштабирование и загрузка достигли 7 экземпляров, и если я хочу обновить войну с файлом новой версии, как это произойдет, должен ли он пройти ручное SSH и обновить или есть ли какой-либо автоматический способ обновления и синхронизации всех вещей на всех масштабируемых экземплярах (пока пользователь все еще обращается к веб-сайту)?


person PHP Avenger    schedule 11.05.2016    source источник


Ответы (1)


Вы можете хранить войну на s3, и это имеет смысл для cloudinit (хотя он работает как root, поэтому sudo не нужен). Так же появляются машины автомасштабирования.

Для обновления war вам нужно каким-то образом вытолкнуть war-файл и перезапустить tomcat* — вот почему люди используют Chef/Puppet/Ansible/Salt.

Если это слишком сложно, используйте Elastic Beanstalk. Это определенно упростит дело.

* на самом деле вам не нужно перезапускать tomcat, но вы не хотите спускаться в кроличью нору PermGen.

person tedder42    schedule 15.05.2016