web-dev-qa-db-fra.com

Comment changer le type d'instance dans un cluster AWS ECS?

J'ai un cluster dans AWS EC2 Container Service. Lorsque je l’ai configuré, j’ai utilisé des instances t2.micro car celles-ci étaient suffisantes pour le développement. Maintenant, j'aimerais utiliser des instances plus puissantes, comme m4.large.

J'aimerais savoir s'il est possible de changer les types d'instances uniquement, de sorte que je n'ai pas besoin de recréer l'intégralité du cluster. Je ne pouvais pas trouver comment faire cela.

36
vargen_

Oui, c'est possible.

Les types d'instance de votre cluster sont déterminés par le paramètre 'Type d'instance' de votre configuration de lancement. Pour mettre à jour le type d'instance sans avoir à recréer le cluster:

  1. Faites une copie du cluster Launch Configuration et mettez à jour le "Type d'instance".
  2. Ajustez le cluster Groupe Auto Scaling pour qu'il pointe vers votre nouveau Configuration de lancement.
  3. Attendez que vos nouvelles instances s'inscrivent dans votre cluster et que vos services démarrent.

Vous pouvez également ajouter des types d'instance multiples à un cluster nique en créant plusieurs groupes Auto Scaling liés à différentes configurations de lancement. Notez toutefois que vous ne pouvez pas copier facilement les groupes Auto Scaling dans la console.

37
Luke Peterson

Oui, vous pouvez y parvenir dans CloudFormation.

  • Cliquez sur la pile correspondant à votre cluster ECS.
  • Cliquez sur Update Stack
  • Utilisez radiocurrent template, Next
  • changer EcsInstanceType
  • Next, Next, Update
  • Améliorez votre cluster à 2*n instances
  • Attendez les n nouvelles instances du nouveau type en cours de création
  • Réduisez votre cluster à n
  • Ou vous pouvez simplement vider et terminer les instances 1 par 1
53
revau.lt

Voici comment procéder sans temps d'arrêt:

  1. Créez une copie de la configuration de lancement utilisée par votre groupe Auto Scaling, y compris les modifications que vous souhaitez apporter.
  2. Modifiez le groupe Auto Scaling pour:
    • Utiliser la nouvelle configuration de lancement
    • Capacité souhaitée = Capacité souhaitée * 2
    • Min = Capacité souhaitée
  3. Attendez que toutes les nouvelles instances deviennent "ACTIVE" dans l'onglet Instances ECS du cluster ECS.
  4. Sélectionnez les anciennes instances et cliquez sur Actions -> Drain Instances
  5. Attendez que toutes les anciennes instances exécutent 0 tâche
  6. Modifiez le groupe Auto Scaling et rétablissez les valeurs minimales et souhaitées
5
Greg Sansom

Cela peut être réalisé en modifiant EcsInstanceType dans la pile CloudFormation pour l'instance ECS. Toute modification manuelle du groupe de mise à l'échelle automatique sera écrasée par la prochaine opération "Echelle des instances ECS".

3
Disco Mike

Voici les étapes exactes que j'ai prises pour mettre à jour le type d'instance sur mon cluster:

  • Allez au service de cluster, mettez à jour Nombre de tâches à 0

  • Allez dans EC2 -> Configurations de lancement -> Liste déroulante Actions -> Copier la configuration de lancement et définissez le nouveau type d'instance.

  • Allez à EC2 -> Groupes Auto Scaling -> Éditer -> définir Configuration de lancement à la configuration de lancement nouvellement créée

  • Allez dans EC2 -> Groupes Auto Scaling -> Instances -> Detach instance

  • Allez dans EC2 -> Configurations de lancement -> Supprimer l'ancienne configuration de lancement

  • Accédez au service de cluster, mettez à jour Nombre de tâches au nombre souhaité.

Maintenant, lorsque les tâches démarrent, elles s'exécutent sur le type d'instance EC2 mis à jour.

2
Miguel Mota

Il existe certainement plusieurs façons de modifier le type d'instance, comme suggéré pour l'utilisation des configurations de lancement.

Attention, il est difficile d'utiliser une configuration à plusieurs lancements pour se connecter à un cluster ECS doté de stratégies de mise à l'échelle des instances de conteneur.

Par exemple, si l'un d'entre eux exécute un cluster avec le type d'instances t2.medium à l'aide d'une configuration de lancement et qu'une stratégie de redimensionnement automatique est associée au cluster ECS, il ne peut signaler que le groupe de redimensionnement automatique et pas plus de 1.

2
Lalit Kumar

Oui, vous pouvez modifier le type d'instance dans le cluster ECS. Je pense que vous avez créé le cluster ECS manuellement à partir de l'interface graphique AWS. En coulisse, il crée un modèle de formation pour le cloud aws selon vos entrées à partir de la console AWS (ECS) telle que VPC, le type d'instance et la taille, etc. Veuillez suivre les étapes ci-dessous pour la même chose.

  1. Recherchez le modèle de formation en nuage portant le nom "EC2ContainerService- {votre-ecs-cluster-name}".
  2. Vérifiez le paramètre existant dans l'onglet Paramètres (vous pouvez vérifier votre type d'instance ici).
  3. Maintenant, vous devez mettre à jour la formation de nuage. Cliquez sur-> Mise à jour -> utiliser le modèle actuel -> suivant -> mettez à jour la variable EcsInstanceType -> suivant-> suivant-> mettre à jour la pile.
  4. Maintenant votre mise à jour de formation de nuage. vous pouvez maintenant vérifier dans la console EC2 qu'il existe une nouvelle flotte de points avec un nouveau type d'instance.
2

Comment modifier le type d'instance de conteneur dans Amazon ECS?

Pour changer le type d'instance de conteneur, suivez la procédure décrite dans l'une des sections suivantes:

  • Mettre à jour les instances de conteneur lancées dans un cluster ECS via la pile AWS CloudFormation
  • Mettre à jour les instances de conteneur lancées manuellement dans un cluster ECS

Résolution

  • Mettre à jour les instances de conteneur lancées dans un cluster ECS via la pile AWS CloudFormation

Important: Les étapes suivantes s'appliquent uniquement aux clusters ECS créés avec des ressources créant en interne une pile AWS CloudFormation sous-jacente . La pile a un nom au format suivant: EC2ContainerService-yourClusterName . Ces étapes ne s'appliquent pas aux clusters ECS vides ni aux approches personnalisées pour le provisionnement d'instances de conteneur.

Mettez à jour la valeur du paramètre EcsInstanceType dans la pile AWS CloudFormation:

1. Ouvrez la console AWS CloudFormation.

  1. Sélectionnez la pile contenant votre cluster ECS.

Remarque: le nom du cluster est ajouté à la fin du nom de votre pile (par exemple, EC2ContainerService-yourClusterName).

  1. Choisissez Actions, puis choisissez Mettre à jour la pile.

  2. Choisissez Utiliser le modèle actuel, puis choisissez Suivant.

  3. Pour EcsInstanceType, définissez une valeur appropriée pour le type d'instance dans votre instance de conteneur, puis choisissez Suivant.

  4. Ignorez la section Options, choisissez Suivant, puis choisissez Mettre à jour.

Remplacez les anciennes instances de conteneur du cluster:

  1. Pour mettre à jour la pile AWS CloudFormation, suivez les étapes 1 à 4 de la section précédente.

  2. Pour AsgMaxSize, entrez une valeur de paramètre égale à deux fois la taille actuelle. Remarque: Par exemple, si la valeur actuelle est 2, définissez la nouvelle valeur sur 4. Cela permet d'éviter les temps d'arrêt lorsque vous modifiez le type d'instance.

  3. Ouvrez la console Amazon ECS.
  4. Dans le volet de navigation, choisissez Clusters, puis choisissez votre cluster.
  5. Choisissez l'onglet Instances ECS, puis sélectionnez les ID d'instance de conteneur pour les anciennes instances de conteneur que vous souhaitez remplacer. Remarque: Si DeploymentConfiguration permet de placer des tâches de remplacement sur 6. les instances de conteneur, Amazon ECS place les tâches de remplacement automatiquement.
  6. Choisissez le menu Actions, puis choisissez Drainer les instances pour drainer les instances.
  7. Dans l'onglet Instances ECS, vérifiez que Nombre de tâches en cours d'exécution est égal à 0 pour vos anciennes instances de conteneur.
  8. Dans le volet de navigation, choisissez Clusters, puis sélectionnez votre cluster. Choisissez l'onglet Instances ECS, sélectionnez les ID d'instance de conteneur de vos anciennes instances de conteneur, puis choisissez Deregister. Remarque: Le désenregistrement d'une instance le supprime d'Amazon ECS.
  9. Dans votre modèle AWS CloudFormation, définissez la valeur de AsgMaxSize sur la valeur d'origine pour mettre fin aux anciennes instances de conteneur. Important: cette étape suppose que votre groupe Auto Scaling dispose de la stratégie de résiliation par défaut.
2
sunnysharma