2016-11-08 2 views
0

J'ai actuellement un environnement d'essai avec ~ 16 services répartis sur 4 micro-instances. Les instances sont gérées par un groupe d'évolution automatique (ASG). Lorsque j'ai besoin de mettre à jour l'AMI de mes instances de cluster, je le fais actuellement:Comment remplacer les instances de cluster ECS sans interruption de service ou réduction de la redondance?

  1. Créer une nouvelle configuration de lancement, éditer ASG avec une nouvelle configuration de lancement.
  2. Détachez toutes les instances avec l'option de remplacement de l'ASG et attendez que les nouvelles soient répertoriées dans la liste des instances de cluster.
  3. MANUELLEMENT trouver et les désenregistrer anciennes instances du cluster ECS (très difficile)
  4. Maintenant, les services sont tués par ECS en raison de désenregistrement les instances :(
  5. Attendre 3 minutes jusqu'à ce que les services sont redémarrés sur les nouvelles instances
  6. trouver MANUELLEMENT les instances EC2 dans la liste des instances EC2 et les mettre fin à (très très attention à ne pas mettre fin aux nouvelles).

Avec cette approche, j'ai environ 3 minutes d'arrêt et je frissonne de la idée de le faire dans la production envs .. Y at-il un moyen de faire t son sans temps d'arrêt mais en gardant le montant global de l'instance de la même façon (donc sans 200% des paramètres de mise à l'échelle, etc.).

Répondre

0

Vous pouvez mettre à jour la configuration de lancement avec la nouvelle AMI, puis l'affecter à l'ASG. Assurez-vous d'inclure ce qui suit dans la section de données utilisateur:

echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config 

Puis stoppez une instance à la fois, et attendre jusqu'à ce que le nouveau est automatiquement enregistré et avant de terminer la suivante.

Cela pourrait être scriptable pour être automatisé aussi.

+0

Oui, j'ai ceci dans ma config. Mais votre solution nécessite d'avoir au moins 2 services en cours d'exécution, et vous seriez en redondance réduite/mise à l'échelle pour un certain temps. – Pepster