Ajouter des points de contrôle à une actualisation d'instance - Amazon EC2 Auto Scaling

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Ajouter des points de contrôle à une actualisation d'instance

Lorsque vous utilisez une actualisation d'instance, vous pouvez choisir de remplacer les instances par phases, afin de pouvoir effectuer des vérifications sur vos instances au fur et à mesure. Pour effectuer un remplacement par phases, vous devez ajouter des points de contrôle qui permettront de mettre l'actualisation d'instance en pause. L'utilisation de points de contrôle vous permet de mieux contrôler la façon dont vous choisissez de mettre à jour votre groupe Auto Scaling. Cela vous aide à vous assurer que votre application fonctionnera de manière fiable et prévisible.

Comment ça marche

Lorsque vous lancez une actualisation d'instance, vous spécifiez les points de contrôle sous forme de pourcentages du nombre total d'instances du groupe Auto Scaling. Ces points de contrôle indiquent le pourcentage minimum d'instances du groupe Auto Scaling qui doivent être de nouvelles instances avant que le point de contrôle soit considéré comme atteint. Par exemple, si vos points de contrôle le sont[20, 50, 100], le premier point de contrôle est atteint lorsque 20 % des instances sont nouvelles, le second lorsque 50 % sont nouvelles et le dernier point de contrôle lorsque toutes les instances sont nouvelles.

Amazon EC2 Auto Scaling accélère le remplacement des instances afin de respecter les pourcentages de points de contrôle spécifiés tout en maintenant le pourcentage de santé minimum du groupe. Pour atteindre un pourcentage de point de contrôle, Amazon EC2 Auto Scaling remplace parfois un nombre de points de contrôle inférieur, mais jamais plus que ce que permet le pourcentage minimal valide.

Prenons l’exemple du groupe Auto Scaling suivant qui compte 10 instances. Les pourcentages de points de contrôle sont [20,50,100], le pourcentage minimal valide est de 80 % et le pourcentage maximal valide est de 100 %. Pour maintenir le pourcentage minimal valide, seulement deux instances peuvent être remplacées à la fois. Le graphique suivant résume le processus de remplacement des instances avant qu’un point de contrôle ne soit atteint.

Ce diagramme montre comment les points de contrôle affectent le flux d’actualisation d’une instance.

Dans l'exemple ci-dessus, il existe une période de préchauffage pour chaque nouvelle instance qui démarre. Vous pouvez également avoir un hook de cycle de vie qui met une instance en attente, puis exécute une action personnalisée lors de son lancement ou de sa résiliation.

Amazon EC2 Auto Scaling émet des événements pour chaque point de contrôle, à l'exception du point de contrôle complet à 100 %. Vous pouvez ajouter une EventBridge règle pour envoyer les événements à une cible telle qu'Amazon SNS. De cette façon, vous recevez une notification lorsque vous pouvez effectuer les vérifications requises. Pour plus d’informations, consultez Créez des EventBridge règles pour les événements d'actualisation, par exemple.

Considérations

Lorsque vous utilisez des points de contrôle, gardez à l'esprit les considérations suivantes :

  • Étant donné que les points de contrôle sont basés sur des pourcentages, le nombre d'instances à remplacer change en fonction de la taille du groupe. Lorsqu'une activité de montée en puissance se produit et que la taille du groupe augmente, une opération en cours peut à nouveau atteindre un point de contrôle. Dans ce cas, Amazon EC2 Auto Scaling envoie une autre notification et applique à nouveau le délai d'attente spécifié entre les points de contrôle avant de continuer.

  • Dans certaines circonstances, un point de contrôle peut être ignoré. Par exemple, supposons que votre groupe Auto Scaling contienne deux instances et que les pourcentages associés à vos points de contrôle soient de [10,40,100]. Une fois la première instance remplacée, Amazon EC2 Auto Scaling calcule que 50 % du groupe a été remplacé. Étant donné que 50 % est un pourcentage supérieur à ceux des deux premiers points de contrôle, il ignore le premier point de contrôle (10) et envoie une notification pour le deuxième point de contrôle (40).

  • L'annulation de l'opération empêche tout remplacement ultérieur. Si vous annulez l'opération ou qu'elle échoue avant d'atteindre le dernier point de contrôle, l'ancienne configuration des instances qui ont déjà été remplacées n'est pas restaurée.

  • Dans le cas d'une actualisation partielle, lorsque vous relancez l'opération, Amazon EC2 Auto Scaling ne redémarre pas à partir du dernier point de contrôle et ne s'arrête pas lorsque seules les instances antérieures sont remplacées. Cela dit, il cible d'abord les instances antérieures à remplacer avant de cibler les nouvelles.

  • Le pourcentage réel d'achèvement peut être supérieur au pourcentage pour ce point de contrôle lorsque le pourcentage du point de contrôle est trop faible par rapport au nombre d'instances du groupe. Supposons, par exemple, que le pourcentage du point de contrôle soit de 20 % et que le groupe compte quatre instances. Si Amazon EC2 Auto Scaling remplace l’une des quatre instances, le pourcentage remplacé réel (25 %) sera supérieur au pourcentage du point de contrôle (20 %).

  • Une fois qu'un point de contrôle est atteint, le pourcentage global d'achèvement affiché n'est mis à jour qu'une fois le préchauffage des instances terminé. Par exemple, vos pourcentages de points de contrôle correspondent [20,50] à un délai de 15 minutes et à un pourcentage de santé minimum de 80 %. Votre groupe Auto Scaling compte 10 instances et effectue les remplacements suivants :

    • 0:00 : deux instances antérieures sont remplacées par des nouvelles.

    • 0:10 : deux nouvelles instances finissent leur préparation.

    • 0:25 : deux instances antérieures sont remplacées par des nouvelles. (Seulement deux instances sont remplacées pour maintenir le pourcentage minimal valide.)

    • 0:35 : deux nouvelles instances finissent leur préparation.

    • 0:35 : une instance antérieure est remplacée par une nouvelle.

    • 0:45 : une nouvelle instance finit sa préparation.

    À 0:35, l'opération cesse de lancer de nouvelles instances. Le pourcentage d'achèvement ne reflète pas encore avec précision le nombre de remplacements terminés (50 %), car la nouvelle instance n'a pas encore terminé sa préparation. Une fois que la nouvelle instance a terminé sa période de préchauffage à 0h45, le pourcentage d'achèvement indique 50 %.

Activer les points de contrôle (console)

Vous pouvez activer des points de contrôle avant de démarrer une actualisation d'instance pour remplacer des instances à l'aide d'une approche progressive ou par phases. Cela donne plus de temps pour la vérification.

Pour lancer une actualisation d'instance qui utilise des points de contrôle
  1. Ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/ et choisissez Groupes Auto Scaling dans le panneau de navigation.

  2. Cochez la case située en regard de votre groupe Auto Scaling.

    Un volet fractionné s'ouvre dans la partie inférieure de la page Groupes Auto Scaling.

  3. Dans l'onglet Instance refresh (Actualisation d'instance), dans Active instance refresh (Actualisation d'instance active), sélectionnez Start instance refresh (Démarrer l'actualisation d'instance).

  4. Sur la page Start instance refresh (Lancer une actualisation d'instance), choisissez les valeurs à attribuer dans les champs Minimum healthy percentage (Pourcentage minimal d'instances saines) et Instance warmup (Préparation d'instance).

  5. Cochez la case Enable checkpoints (Activer les points de contrôle).

    Vous accédez alors à une zone dans laquelle vous pouvez définir le seuil, en pourcentage, du premier point de contrôle.

  6. Pour Proceed until ____ % of the group is refreshed (Continuer jusqu'à ce que ____ % du groupe soit actualisé), saisissez un nombre (entre 1 et 100). Cela définit le pourcentage pour le premier point de contrôle.

  7. Pour ajouter un autre point de contrôle, choisissez Add checkpoint (Ajouter un point de contrôle), puis définissez le pourcentage à associer à celui-ci.

  8. Pour spécifier le délai à l'issue duquel Amazon EC2 Auto Scaling pourra reprendre l'actualisation d'instance après avoir atteint un point de contrôle, mettez à jour les champs du paramètre Patienter 1 hour entre des points de contrôle. Le temps peut être exprimé en heures, en minutes ou en secondes.

  9. Lorsque vous en avez terminé avec les sélections d’actualisation d’instance, sélectionnez Démarrer l’actualisation de l’instance.

Activer les points de contrôle (AWS CLI)

Pour démarrer une actualisation d'instance avec des points de contrôle activés à l'aide de AWS CLI, vous avez besoin d'un fichier de configuration qui définit les paramètres suivants :

  • CheckpointPercentages : spécifie des valeurs de seuil pour le pourcentage d'instances à remplacer. Ces valeurs de seuil fournissent les points de contrôle. Lorsque le pourcentage d'instances remplacées et prêtes atteint l'un des seuils spécifiés, l'opération attend la fin du délai spécifié. Vous devez spécifier ce délai (en secondes) dans CheckpointDelay. Une fois le délai spécifié écoulé, l'actualisation d'instance reprend jusqu'à ce qu'elle atteigne le point de contrôle suivant (le cas échéant).

  • CheckpointDelay : spécifie le délai, en secondes, à l'issue duquel l'actualisation d'instance pourra reprendre après avoir atteint un point de contrôle. Choisissez une période qui offre suffisamment de temps pour effectuer vos vérifications.

La dernière valeur affichée dans le tableau CheckpointPercentages décrit le pourcentage du groupe Auto Scaling qui doit être remplacé avec succès. L’opération affiche Successful une fois que ce pourcentage a été remplacé avec succès et que chaque instance est considérée comme ayant terminé son initialisation.

Pour créer plusieurs points de contrôle

Pour créer plusieurs points de contrôle, utilisez l'exemple de commande start-instance-refresh suivant. Cet exemple illustre la configuration d'une actualisation d'instance qui actualise initialement 1 % du groupe Auto Scaling. Après avoir attendu 10 minutes, il actualise ensuite les 19 % suivants et attend encore 10 minutes. Enfin, il rafraîchit le reste du groupe avant de conclure l'opération.

aws autoscaling start-instance-refresh --cli-input-json file://config.json

Contenu de config.json :

{ "AutoScalingGroupName": "my-asg", "Preferences": { "InstanceWarmup": 60, "MinHealthyPercentage": 80, "CheckpointPercentages": [1,20,100], "CheckpointDelay": 600 } }
Pour créer un point de contrôle unique

Pour créer un point de contrôle unique, utilisez l'exemple de commande start-instance-refresh suivant. Cet exemple illustre la configuration d'une actualisation d'instance qui actualise initialement 20 % du groupe Auto Scaling. Après avoir attendu 10 minutes, il actualise ensuite le reste du groupe avant de conclure l'opération.

aws autoscaling start-instance-refresh --cli-input-json file://config.json

Contenu de config.json :

{ "AutoScalingGroupName": "my-asg", "Preferences": { "InstanceWarmup": 60, "MinHealthyPercentage": 80, "CheckpointPercentages": [20,100], "CheckpointDelay": 600 } }
Pour actualiser partiellement le groupe Auto Scaling

Pour remplacer uniquement une partie de votre groupe Auto Scaling, puis arrêter complètement, utilisez l'exemple de commande start-instance-refresh suivant. Cet exemple illustre la configuration d'une actualisation d'instance qui actualise initialement 1 % du groupe Auto Scaling. Après avoir attendu 10 minutes, il actualise ensuite les 19 % suivants avant de conclure l'opération.

aws autoscaling start-instance-refresh --cli-input-json file://config.json

Contenu de config.json :

{ "AutoScalingGroupName": "my-asg", "Preferences": { "InstanceWarmup": 60, "MinHealthyPercentage": 80, "CheckpointPercentages": [1,20], "CheckpointDelay": 600 } }