5

Не могли бы вы предложить, каким образом я могу развернуть изменения кода из SVN во все экземпляры ec2, работающие за балансировщиком Amazon в группе автомасштабирования? Мне также нужно обновить код до последней версии, когда новый экземпляр ec2 запускается автоматически в группе автомасштабирования.Как развернуть и обновить приложение для умножения экземпляров ec2 в группе автомасштабирования Amazon?

Я предполагаю использовать «пользовательские данные» для запуска «svn up» на новых машинах. И, вероятно, я мог бы использовать cron для периодического запуска «svn up» на всех машинах. Не могли бы вы предложить лучшие решения?

ответ

6

На мой взгляд, вы не должны обновлять код на работающих экземплярах, лучше создавать мастер-AMI, который имеет все обновленный стек/код, готовый к работе, а затем методично завершать запущенные экземпляры и позволять автомасштабирующий код заботиться о развертывании новых экземпляров по мере необходимости, что фактически приведет к развертыванию вашего нового кода.

Вы можете использовать AWS CloudFormation для выполнения этой задачи: http://aws.amazon.com/about-aws/whats-new/2013/02/20/announcing-new-aws-cloudformation-deployment-enhancements/

или ElasticBeanStalk:

http://aws.amazon.com/about-aws/whats-new/2013/11/11/aws-elastic-beanstalk-announces-rolling-updates/

Попробуйте прибегая к помощи "АМС Роллинг обновления" для еще более полезные ссылки.

+0

Согласен. Я также хотел бы добавить, что для вас более разумно, чтобы вы меняли свои изменения на свой кластер, вместо того, чтобы менять кластер _pull_ из SVN. Если вы не хотите (или не можете) использовать встроенные функции развертывания приложений в Elastic Beanstalk, вы можете попробовать такой инструмент, как Capistrano, который вы можете использовать для автоматизации развертывания в кластере машин. –