Détachez ou attachez des instances de votre groupe Auto Scaling - 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.

Détachez ou attachez des instances de votre groupe Auto Scaling

Vous pouvez détacher des instances de votre groupe Auto Scaling. Une fois qu'une instance est détachée, elle devient indépendante et peut être gérée seule ou attachée à un autre groupe Auto Scaling, distinct du groupe d'origine auquel elle appartenait. Cela peut être utile, par exemple, lorsque vous souhaitez effectuer des tests à l'aide d'instances existantes qui exécutent déjà votre application.

Cette rubrique fournit des instructions sur la manière de détacher et d'attacher des instances. Lorsque vous attachez des instances, vous pouvez également utiliser une instance existante plutôt qu'une instance détachée.

Au lieu de détacher et de rattacher une instance au même groupe, nous vous recommandons d'utiliser la procédure de mise en veille pour supprimer temporairement l'instance du groupe. Pour plus d’informations, consultez Supprimer temporairement des instances du groupe Auto Scaling.

Considérations relatives au détachement des instances

Lorsque vous détachez des instances, gardez les points suivants à l'esprit :

  • Vous ne pouvez détacher une instance que lorsqu'elle est dans son InService état actuel.

  • Une fois que vous avez détaché une instance, elle continue de fonctionner et d'être facturée. Pour éviter des frais inutiles, veillez à rattacher ou à résilier les instances détachées lorsqu'elles ne sont plus nécessaires.

  • Vous pouvez choisir de réduire la capacité souhaitée en fonction du nombre d'instances que vous souhaitez détacher. Si vous choisissez de ne pas réduire la capacité, Amazon EC2 Auto Scaling lance de nouvelles instances pour remplacer les instances détachées afin de maintenir la capacité souhaitée.

  • Si le nombre d'instances que vous détachez amène le groupe Auto Scaling en dessous de sa capacité minimale, vous devez réduire la capacité minimale.

  • Si vous détachez plusieurs instances de la même zone de disponibilité sans réduire la capacité souhaitée, le groupe se rééquilibrera à moins que vous ne suspendiez le processus. AZRebalance Pour plus d’informations, consultez Suspendre et reprendre les processus Amazon EC2 Auto Scaling.

  • Si vous détachez une instance d'un groupe Auto Scaling qui possède un groupe cible d'équilibreur de charge attaché ou un Classic Load Balancer, l'instance est désenregistrée de l'équilibreur de charge. Si le drainage de la connexion (délai de désinscription) est activé pour l'équilibreur de charge, Amazon EC2 Auto Scaling attend la fin des demandes à la volée.

Note

Si vous détachez des instances qui se trouvent dans l'état Standby, faites preuve de prudence. Une tentative de détachement des instances après les avoir placées dans l'état Standby peut entraîner la fermeture inattendue d'autres instances.

Considérations relatives à l'attachement d'instances

Tenez compte des points suivants lorsque vous attachez des instances :

  • Amazon EC2 Auto Scaling traite les instances jointes de la même manière que les instances lancées par le groupe lui-même. Cela signifie que les instances attachées peuvent être résiliées lors d'événements d'extension si elles sont sélectionnées. Les autorisations accordées par le rôle AWSServiceRoleForAutoScaling lié au service permettent à Amazon EC2 Auto Scaling de le faire.

  • Lorsque vous attachez des instances, la capacité souhaitée du groupe augmente en fonction du nombre d'instance attachées. Si la capacité souhaitée après l'ajout des nouvelles instances dépasse la taille maximale du groupe, la demande d'attachement d'autres instances échoue.

  • Si vous ajoutez des instances à votre groupe, ce qui entraîne une répartition inégale entre les zones de disponibilité, Amazon EC2 Auto Scaling rééquilibre le groupe pour rétablir une distribution uniforme, sauf si vous suspendez le processus. AZRebalance Pour plus d’informations, consultez Suspendre et reprendre les processus Amazon EC2 Auto Scaling.

  • Si vous attachez une instance à un groupe Auto Scaling qui possède un groupe cible d'équilibreur de charge attaché ou un Classic Load Balancer, l'instance est enregistrée avec l'équilibreur de charge.

Pour pouvoir attacher une instance, celle-ci doit répondre aux critères suivants :

  • L'instance est dans l'état running avec Amazon EC2.

  • L'AMI utilisée pour lancer l'instance doit toujours exister.

  • L'instance ne fait pas partie d'un autre groupe Auto Scaling.

  • L'instance est lancée dans l'une des zones de disponibilité définies dans le groupe Auto Scaling.

  • Si le groupe Auto Scaling possède un groupe cible de l'équilibreur de charge attaché ou Classic Load Balancer, l'instance et l'équilibreur de charge doivent tous les deux se trouver dans le même VPC.

Déplacer une instance vers un autre groupe à l'aide de l'option détacher et attacher

Utilisez l'une des procédures suivantes pour détacher une instance de votre groupe Auto Scaling et l'associer à un autre groupe Auto Scaling.

Pour créer un nouveau groupe Auto Scaling à partir d'une instance détachée, voir Créer un groupe Auto Scaling à l'aide des paramètres d'une instance existante (non recommandé, crée une configuration de lancement).

Console
Pour détacher une instance d'un groupe Auto Scaling
  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 en bas de la page.

  3. Sous l'onglet Instance management (Gestion des instances) dans Instances, sélectionnez une instance et choisissez Actions, Detach (Détacher).

  4. Dans la boîte de dialogue Détacher l’instance, gardez la case à cocher Remplacer l’instance sélectionnée pour lancer une instance de remplacement. Désactivez la case à cocher pour réduire la capacité souhaitée.

  5. Lorsque vous êtes invité à confirmer l’opération, saisissez detach pour confirmer la suppression de l’instance spécifiée du groupe Auto Scaling, puis choisissez Détacher l’instance.

Vous pouvez désormais associer l'instance à un autre groupe Auto Scaling.

Pour attacher une instance à un groupe Auto Scaling
  1. Ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/.

  2. (Facultatif) Dans le panneau de navigation, sous Auto Scaling, choisissez Auto Scaling Groups (Groupes Auto Scaling). Sélectionnez le groupe Auto Scaling et vérifiez que sa taille maximale est suffisamment grande pour pouvoir ajouter une autre instance. Sinon, dans l'onglet Details (Détails), augmentez la capacité maximale.

  3. Dans le panneau de navigation, sous Instances, choisissez Instances, puis sélectionnez une instance.

  4. Choisissez Actions, Instance Settings (Paramètres de l'instance), puis Attach to Auto Scaling Group (Attacher à un groupe Auto Scaling).

  5. Sur la page Attach to Auto Scaling group (Attacher à un groupe Auto Scaling), sous Auto Scaling Group (Groupe Auto Scaling) sélectionnez le groupe Auto Scaling, puis choisissez Attach (Attacher).

  6. Si l'instance ne répond pas aux critères, un message d'erreur détaillé s'affiche. Par exemple, l'instance peut se trouver dans une zone de disponibilité différente de celle du groupe Auto Scaling. Choisissez Fermer et réessayez avec un groupe Auto Scaling répondant aux critères.

AWS CLI

Pour détacher et attacher une instance, utilisez les exemples de commandes suivants. Remplacez chaque espace réservé à la saisie de l'utilisateur par vos propres informations.

Pour détacher une instance d'un groupe Auto Scaling
  1. Pour décrire les instances actuelles, utilisez la describe-auto-scaling-instancescommande suivante.

    aws autoscaling describe-auto-scaling-instances \ --query 'AutoScalingInstances[?AutoScalingGroupName==`my-asg`]'

    L'exemple suivant montre le résultat produit lorsque vous exécutez cette commande.

    Prenez note de l'ID de l'instance que vous souhaitez supprimer du groupe. Vous aurez besoin de cet identifiant à l'étape suivante.

    { "AutoScalingInstances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0c20ac468fa3049e8", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0787762faf1c28619", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-0f280a4c58d319a8a", "InstanceType": "t3.micro", "AutoScalingGroupName": "my-asg", "HealthStatus": "HEALTHY", "LifecycleState": "InService" } ] }
  2. Pour détacher une instance sans réduire la capacité souhaitée, utilisez la commande detach-instances suivante.

    aws autoscaling detach-instances --instance-ids i-05b4f7d5be44822a6 \ --auto-scaling-group-name my-asg

    Pour détacher une instance et réduire la capacité souhaitée, incluez l'--should-decrement-desired-capacityoption.

    aws autoscaling detach-instances --instance-ids i-05b4f7d5be44822a6 \ --auto-scaling-group-name my-asg --should-decrement-desired-capacity

Vous pouvez désormais associer l'instance à un autre groupe Auto Scaling.

Pour attacher une instance à un groupe Auto Scaling
  1. Pour associer l'instance à un autre groupe Auto Scaling, utilisez la commande attach-instances suivante.

    aws autoscaling attach-instances --instance-ids i-05b4f7d5be44822a6 --auto-scaling-group-name my-asg-for-testing
  2. Pour vérifier la taille du groupe Auto Scaling après avoir attaché une instance, utilisez la describe-auto-scaling-groupscommande suivante.

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names my-asg-for-testing

    L'exemple de réponse suivant montre que le groupe possède deux instances en cours d'exécution, dont l'une est l'instance que vous avez attachée.

    { "AutoScalingGroups": [ { "AutoScalingGroupName": "my-asg-for-testing", "AutoScalingGroupARN": "arn", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "2", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "MinSize": 1, "MaxSize": 5, "DesiredCapacity": 2, ... "Instances": [ { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "1", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-05b4f7d5be44822a6", "InstanceType": "t3.micro", "HealthStatus": "Healthy", "LifecycleState": "InService" }, { "ProtectedFromScaleIn": false, "AvailabilityZone": "us-west-2a", "LaunchTemplate": { "LaunchTemplateName": "my-launch-template", "Version": "2", "LaunchTemplateId": "lt-050555ad16a3f9c7f" }, "InstanceId": "i-00dcdfffdf5175890", "InstanceType": "t3.micro", "HealthStatus": "Healthy", "LifecycleState": "InService" } ], ... } ] }