J'ai une configuration d'application Web avec un équilibreur de charge et un groupe de mise à l'échelle automatique pour gérer la mise à l'échelle. Le code source est dans un référentiel git donc je n'ai pas à mettre à jour les images lorsque le code change, mais parfois l'environnement change donc nous créons une nouvelle image. Ensuite, cette image doit être recyclée dans le groupe de mise à l'échelle automatique.
Existe-t-il un moyen de faire défiler les images automatiquement? En ce moment, je planifie une action de montée en puissance et de réduction d'échelle qui supprime les anciennes instances.
amazon-ec2
amazon-web-services
autoscaling
plateformes
la source
la source
as-set-instance-health
), de sorte que la mise à l'échelle automatique la remplace simplement par une nouvelle instance.Réponses:
J'aimerais suggérer "AWS-HA-Release" pour faire ceci - la façon dont AWS-HA-Release fonctionne:
Dans ce cas, vous pouvez expédier un nouveau code ou de nouvelles versions AMI sans temps d'arrêt et bénéficier d'avantages entièrement nouveaux. L'outil AWS-HA-Release est disponible sur https://github.com/colinbjohnson/aws-missing-tools .
la source
Le moyen le plus simple consiste à augmenter le nombre d'instances minimales dans Auto-Scaling Group (ASG) pour doubler votre nombre actuel, attendez qu'elles soient toutes démarrées, puis modifiez ce nombre minimal d'instances à ce qu'il était. ELB supprimera les instances plus anciennes et laissera les instances plus récentes avec du code. Pour y parvenir, la politique de résiliation doit être définie sur « OldestInstance » pour fonctionner comme prévu. La politique de résiliation par défaut peut avoir des effets secondaires indésirables.
Vous pouvez consulter les paramètres et exemples de l'AWS CLI ici: http://docs.aws.amazon.com/cli/latest/reference/autoscaling/update-auto-scaling-group.html
la source
la façon dont je gère ce scénario consiste à utiliser la fonctionnalité UpdatePolicy de l'objet AWS :: AutoScaling :: AutoScalingGroup dans la formation des nuages. lorsque la pile de formation de nuages est mise à jour, elle gère le cycle des instances.
quelques références. http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy .html
la source
Jetez également un œil à l' outil Netflix Asgard qui est maintenant open source. Non seulement il peut configurer des groupes de mise à l'échelle automatique, mais il peut également effectuer des versions continues de nouvelles images AMI pour un groupe d'instances.
la source
Pour être honnête, il n'y a pas vraiment de bonne façon de le faire. La meilleure façon de le faire est de mettre une version au nom ASG. Chaque fois que je mets à jour l'AMI, je crée une nouvelle configuration de lancement ASG + avec la nouvelle version afin qu'elle n'entre pas en conflit avec l'autre groupe. Ensuite, je termine toutes les instances de l'ancien groupe.
Si un déploiement plus tolérant aux pannes est requis, je recommande d'ajouter une autre étape en impliquant également la création d'un nouvel équilibreur de charge. Cela vous permet d'avoir les deux ASG isolés l'un de l'autre. Il vous permet également d'avoir une zone "Staging" pour tester vos modifications une dernière fois avant la mise à jour. Ensuite, lorsque vous êtes prêt à passer, vous mettez à jour les enregistrements DNS et mettez fin à toutes les instances de l'ancien groupe.
la source
Comme je l'ai posté ici (question similaire, juste avec Terraform), il n'est en aucun cas intégré à ASG, sauf si vous utilisez la cloudformation. J'ai également eu du mal à le faire, donc j'ai fini par écrire un "roller" qui surveille plusieurs ASG, vérifie leur état et leurs mises à jour. Toujours heureux de recevoir des commentaires. http://github.com/deitch/aws-asg-roller
la source