5

Können Sie mir vorschlagen, wie ich Codeänderungen von SVN auf alle ec2-Instanzen anwenden kann, die hinter Amazon Load Balancer in der Auto-Scaling-Gruppe laufen? Ich muss Code auch auf die neueste Version aktualisieren, wenn eine neue ec2-Instanz automatisch in der Auto-Scaling-Gruppe gestartet wird.Wie kann ich eine App auf mehreren ec2-Instanzen in der Amazon Auto-Scaling-Gruppe bereitstellen und aktualisieren?

Ich nehme an, Benutzer-Daten zu verwenden, um 'svn up' auf neuen Maschinen laufen zu lassen. Und wahrscheinlich könnte ich cron benutzen, um 'svn' regelmäßig auf allen Maschinen laufen zu lassen. Können Sie bessere Lösungen vorschlagen?

Antwort

6

Meiner Meinung nach sollten Sie den Code auf den laufenden Instanzen nicht aktualisieren, besser ein Master-AMI erstellen, das den gesamten aktualisierten Stack/Code bereithält, und dann die laufenden Instanzen methodisch beenden und den automatischen Skalierungscode zulassen Sorgen Sie dafür, dass bei Bedarf neue Instanzen bereitgestellt werden, wodurch Ihr neuer Code tatsächlich bereitgestellt wird.

Sie können für diese Aufgabe AWS Cloudformation verwenden: http://aws.amazon.com/about-aws/whats-new/2013/02/20/announcing-new-aws-cloudformation-deployment-enhancements/

oder ElasticBeanStalk:

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

Try "AWS Rollen Updates" für noch mehr hilfreiche Links googeln.

+0

Einverstanden. Ich würde auch hinzufügen, dass es schlauer ist, wenn Sie Ihre Änderungen an Ihren Cluster senden, als dass Ihr Cluster _pull_ von SVN geändert wird. Wenn Sie die integrierten App-Bereitstellungsfunktionen von Elastic Beanstalk nicht verwenden möchten (oder können), können Sie ein Tool wie Capistrano ausprobieren, mit dem Sie Ihre Bereitstellungen auf einem Cluster von Computern automatisieren können. –

Verwandte Themen