Question Comment puis-je convertir automatiquement une nouvelle image dans un groupe AWS Auto Scaling?


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, je n'ai donc pas besoin de mettre à jour les images lorsque le code change, mais parfois l'environnement change pour créer une nouvelle image. Ensuite, cette image doit être cyclée dans le groupe de mise à l'échelle automatique.

Est-il possible de faire défiler les images automatiquement? À l'heure actuelle, je planifie une action d'intensification et de réduction qui supprime les anciennes instances.


18
2018-04-30 17:59


origine


Il est probablement plus efficace si, après avoir créé votre nouvelle configuration de lancement et mis à jour votre groupe de mise à l'échelle automatique, vous marquez chaque instance comme nuisible (par exemple, en utilisant as-set-instance-health), de sorte que l'autoscaling le remplace simplement par une nouvelle instance. - cyberx86


Réponses:


J'aimerais suggérer "AWS-HA-Release" comme suit: voici comment AWS-HA-Release fonctionne:

  1. Si le groupe de mise à l'échelle automatique actuel et ELB signalent 5 instances saines,
  2. AWS-HA-Release introduit une nouvelle instance en production et attend que l'ELB l'identifie comme étant en bon état (portez le nombre total d'instances en bon état à 6)
  3. Supprime une ancienne instance (total jusqu'à 5)
  4. Met en service une autre instance (total de 6)
  5. Supprime une ancienne instance (total jusqu'à 5)
  6. et ainsi de suite jusqu'à ce que toutes les instances aient été remplacées

Dans ce cas, vous pouvez expédier un nouveau code ou de nouvelles versions AMI sans temps d’arrêt et bénéficier de toutes nouvelles instances. L’outil AWS-HA-Release est disponible à l’adresse suivante: https://github.com/colinbjohnson/aws-missing-tools.


8
2017-11-12 04:05





Le moyen le plus simple est d’augmenter le nombre d’instances minimum dans ASG pour doubler votre attente actuelle au démarrage de toutes les instances, puis de modifier le nombre minimal d’instances comme il était. ELB supprimera les anciennes instances et laissera les nouvelles instances avec du code.

Vous pouvez consulter les paramètres et les exemples de l'AWS CLI ici: http://docs.aws.amazon.com/cli/latest/reference/autoscaling/update-auto-scaling-group.html


7
2018-04-07 12:36



J'ai oublié de mentionner que la politique de résiliation doit être "OldestInstance" pour fonctionner comme prévu. Une politique de résiliation par défaut peut avoir des effets secondaires indésirables. - Computer Mage
Cheers, c'est une méthode très pratique et sans tracas. - Elad Nava


Pour gérer ce scénario, j'utilise la fonctionnalité UpdatePolicy de l'objet AWS :: AutoScaling :: AutoScalingGroup dans la formation d'un nuage. Lorsque la pile de formation en nuage 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


5
2018-04-07 01:42



Merci une tonne @graeme. Je n'avais aucune idée que Cloudformation proposait cette fonctionnalité. - AJB


Regardez aussi le Netflix Asgard outil qui est maintenant open source. Non seulement il peut configurer des groupes Auto Scaling, mais il peut également générer des versions en continu de nouvelles images AMI pour un groupe d'instances.


2
2017-11-17 13:12



Vous voulez dire "Netflix Asgard"
Oui - corrigé - merci - platforms
Netflix Asgard est maintenant obsolète, il est remplacé par Netflix Spinnaker - dlaidlaw


Pour être honnête, il n'y a pas vraiment de bonne façon de le faire. Le meilleur moyen que j'ai trouvé de le faire est de mettre une version dans le nom ASG. Chaque fois que je mets à jour l’AMI, je crée une nouvelle configuration ASG + Launch avec la nouvelle version afin qu’elle n’entre pas en conflit avec les autres groupes. Ensuite, je termine toutes les instances de l'ancien groupe.

Si un déploiement plus tolérant aux pannes est requis, je vous recommande d'ajouter une étape supplémentaire 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 de disposer d'une zone "Stockage" pour tester vos modifications une dernière fois avant la mise à jour. Ensuite, lorsque vous êtes prêt à basculer, mettez à jour les enregistrements DNS et mettez fin à toutes les instances de l'ancien groupe.


0
2018-05-01 15:41