Résilier une instance - Amazon Elastic Compute Cloud

Résilier une instance

Vous pouvez supprimer votre instance lorsque vous n'en avez plus besoin. Cette opération est appelée mise hors service (ou résiliation) de votre instance. Dès que l'état d'une instance passe à shutting-down ou terminated, l'instance ne vous est plus facturée.

Vous ne pouvez pas vous connecter à une instance mise hors service, ni la démarrer. Toutefois, vous pouvez lancer des instances supplémentaires à l'aide de la même AMI. Si vous préférez arrêter et démarrer votre instance, ou la mettre en veille prolongée, consultez Arrêt et démarrage de votre instance ou Mettre votre instance Linux en veille prolongée. Pour plus d'informations, consultez Différences entre redémarrage, arrêt, mise en veille prolongée et résiliation.

Terminaison d'instance

Une fois que vous avez mis une instance hors service, elle demeure visible sur la console pendant un court instant, puis l'entrée est supprimée automatiquement. Vous ne pouvez pas supprimer vous-même l'entrée de l'instance mise hors service. Une fois qu'une instance est résiliée, les ressources telles que les volumes et les balises en sont progressivement dissociées, et elles ne seront plus visibles dans l'instance terminée après un certain temps.

Lorsqu'une instance est mise hors service, les données des volumes de stockage des instances associées à cette instance sont supprimées.

Par défaut, les volumes du périphérique racine Amazon EBS sont supprimés automatiquement lorsque l'instance est mise hors service. Toutefois, par défaut, tout volume EBS supplémentaire attaché lors du lancement, ou tout volume EBS attaché à une instance existante, persiste même après la mise hors service de l'instance. Ce comportement est contrôlé par l'attribut DeleteOnTermination du volume, un attribut que vous pouvez modifier. Pour plus d'informations, consultez Conserver les volumes Amazon EBS lors de la résiliation d'une instance.

Vous pouvez éviter que quelqu'un mette hors service une instance accidentellement en utilisant AWS Management Console, la CLI et l'API. Cette fonctionnalité est disponible pour les instances du stockage d'instances Amazon EC2 et pour les instances Amazon EBS. Chaque instance a un attribut DisableApiTermination avec la valeur par défaut false (l'instance peut être mise hors service via Amazon EC2). Vous pouvez modifier cet attribut d'instance pendant que l'instance est en cours d'exécution ou arrêtée (dans le cas des instances Amazon EBS). Pour plus d'informations, consultez Activation de la protection contre la résiliation.

Vous pouvez déterminer si une instance doit être arrêtée ou mise hors service lorsque l'arrêt est lancé depuis l'instance à l'aide d'une commande du système d'exploitation pour l'arrêt du système. Pour plus d'informations, consultez Modification du comportement d'arrêt lancé de l'instance.

Si vous exécutez un script de la mise hors service d'une instance, il est possible que cette dernière soit mise hors service de façon anormale dans la mesure où nous ne pouvons pas garantir le bon fonctionnement des scripts d'arrêt. Amazon EC2 tente d'arrêter une instance proprement et d'exécuter les scripts d'arrêt du système. Toutefois, certains événements (par exemple, une panne matérielle) peuvent empêcher l'exécution de ces scripts d'arrêt du système.

Ce qui se passe lorsque vous résiliez une instance

Lorsqu'une instance EC2 est résiliée à l'aide de la commande terminate-instances, les éléments suivants sont enregistrés au niveau du système d'exploitation :

  • La demande d'API envoie un événement d'appui sur un bouton à l'invité.

  • Divers services du système sont arrêtés suite à l'événement d'appui sur un bouton. systemd gère un arrêt normal du système. L'arrêt normal est déclenché par l'événement d'appui sur un bouton d'arrêt ACPI à partir de l'hyperviseur.

  • L'arrêt ACPI est initialisé.

  • L'instance s'arrête lorsque le processus d'arrêt normal se termine. L'heure d'arrêt du système d'exploitation n'est pas configurable.

Mise hors service d'une instance

Vous pouvez résilier une instance à l'aide d'AWS Management Console ou de la ligne de commande.

Pour résilier une instance à l'aide de la console

  1. Avant de résilier l'instance, vérifiez que vous ne perdrez aucune donnée en vous assurant que vos volumes Amazon EBS ne seront pas supprimés lors de la résiliation et que vous avez copié les données dont vous avez besoin des volumes du stockage d'instance vers Amazon EBS ou Amazon S3.

  2. Ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/.

  3. Dans le panneau de navigation, choisissez Instances.

  4. Sélectionnez l'instance et choisissez Actions, État de l'instance, Résilier.

  5. Sélectionnez Oui, résilier lorsque vous êtes invité à confirmer l'opération.

Pour résilier une instance à l'aide de la ligne de commande

Vous pouvez utiliser l'une des commandes suivantes. Pour obtenir plus d'informations sur les CLI (interface ligne de commande), consultez le didacticiel Accès à Amazon EC2.

Activation de la protection contre la résiliation

Par défaut, vous pouvez résilier votre instance à l'aide de la console Amazon EC2, de l'interface ligne de commande ou de l'API. Pour éviter que votre instance ne soit résiliée accidentellement à l'aide d'Amazon EC2, vous pouvez activer la protection contre la résiliation pour l'instance. L'attribut DisableApiTermination permet de vérifier si l'instance peut être résiliée à l'aide de la console, de l'interface ligne de commande ou de l'API. Par défaut, la protection contre la résiliation est désactivée pour votre instance. Vous pouvez définir la valeur de cet attribut lorsque vous lancez l'instance, pendant l'exécution de l'instance ou une fois l'instance arrêtée (pour les instances Amazon EBS).

L'attribut DisableApiTermination ne vous empêche pas de résilier une instance en lançant l'arrêt à partir de l'instance (à l'aide d'une commande du système d'exploitation pour l'arrêt système) lorsque l'attribut InstanceInitiatedShutdownBehavior est défini. Pour plus d'informations, consultez Modification du comportement d'arrêt lancé de l'instance.

Limites

Vous ne pouvez pas activer la protection contre la résiliation pour les Instances Spot. En effet, une instance Spot est résiliée lorsque le prix Spot dépasse le montant que vous êtes prêt à payer pour les Instances Spot. Vous pouvez toutefois préparer votre application afin qu'elle soit en mesure de gérer les interruptions d'instance Spot. Pour plus d'informations, consultez Interruptions d'une instance Spot.

L'attribut DisableApiTermination n'empêche pas Amazon EC2 Auto Scaling de résilier une instance. Pour les instances d'un groupe Auto Scaling, utilisez les fonctions Amazon EC2 Auto Scaling suivantes au lieu de la fonctionnalité de protection contre la résiliation Amazon EC2 :

  • Pour empêcher les instances qui font partie d'un groupe Auto Scaling d'être résiliées lors d'une mise à l'échelle, utilisez la fonctionnalité de protection de l'instance. Pour plus d'informations, consultez Protection de l'instance dans le Amazon EC2 Auto Scaling Guide de l'utilisateur.

  • Pour empêcher Amazon EC2 Auto Scaling de résilier les instances défectueuses, interrompez le processus ReplaceUnhealthy. Pour plus d'informations, consultez Suspension et reprise des processus de mise à l'échelle dans le Amazon EC2 Auto Scaling Guide de l'utilisateur.

  • Pour spécifier les instances qu'Amazon EC2 Auto Scaling doit résilier en premier, choisissez une stratégie de résiliation. Pour plus d'informations, consultez Personnalisation de la stratégie de résiliation dans le Amazon EC2 Auto Scaling Guide de l'utilisateur.

Pour activer la protection contre la résiliation d'une instance lors du lancement

  1. Ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/.

  2. Dans le tableau de bord, sélectionnez Lancer une instance et suivez les instructions de l'assistant.

  3. Sur la page Configurer les détails de l'instance, activez la case à cocher Activer la protection de la résiliation.

Pour activer la protection contre la résiliation d'une instance en cours d'exécution ou arrêtée

  1. Sélectionnez l'instance, puis Actions, Instance Settings (Paramètres de l'instance) et Change Termination Protections (Changer la protection de la résiliation).

  2. Choisissez Yes, Enable (Oui, Activer).

Pour désactiver la protection contre la résiliation d'une instance en cours d'exécution ou arrêtée

  1. Sélectionnez l'instance, puis Actions, Instance Settings (Paramètres de l'instance) et Change Termination Protections (Changer la protection de la résiliation).

  2. Choisissez Oui, désactiver.

Pour activer ou désactiver la protection contre la résiliation à l'aide de la ligne de commande.

Vous pouvez utiliser l'une des commandes suivantes. Pour obtenir plus d'informations sur l'interface ligne de commande, consultez Accès à Amazon EC2.

Modification du comportement d'arrêt lancé de l'instance

Par défaut, lorsque vous initiez un arrêt à partir d'une instance basée sur Amazon EBS (à l'aide d'une commande telle que shutdown ou poweroff), l'instance s'arrête (notez que halt n'émet pas de commande poweroff et, le cas échéant, l'instance n'est pas résiliée ; au lieu de cela, l'UC bascule en mode HLT et l'instance poursuit son exécution). Vous pouvez modifier ce comportement à l'aide de l'attribut InstanceInitiatedShutdownBehavior afin de mettre l'instance hors service. Vous pouvez mettre à jour cet attribut tandis que l'instance est en cours d'exécution ou arrêtée.

Vous pouvez mettre à jour l'attribut InstanceInitiatedShutdownBehavior à l'aide de la console Amazon EC2 ou de la ligne de commande. L'attribut InstanceInitiatedShutdownBehavior s'applique uniquement lorsque vous arrêtez le système d'exploitation de l'instance elle-même. Il ne s'applique pas lorsque vous arrêtez une instance à l'aide de l'API StopInstances ou de la console Amazon EC2.

Pour modifier le comportement d'arrêt d'une instance à l'aide de la console

  1. Ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/.

  2. Dans le panneau de navigation, choisissez Instances.

  3. Sélectionnez l'instance, puis choisissez Actions, Instance Settings Paramètres de l’instance), Change Shutdown Behavior (Changer le comportement d’arrêt). Le comportement en cours a déjà été sélectionné.

  4. Pour modifier ce comportement, sélectionnez une option dans la liste Shutdown behavior (Comportement d’arrêt), puis cliquez sur Apply (Appliquer).

    
						Boîte de dialogue Changer le comportement d'arrêt

Pour modifier le comportement d'arrêt d'une instance à l'aide de la ligne de commande

Vous pouvez utiliser l'une des commandes suivantes. Pour obtenir plus d'informations sur l'interface ligne de commande, consultez Accès à Amazon EC2.

Conserver les volumes Amazon EBS lors de la résiliation d'une instance

Lorsqu'une instance est résiliée, Amazon EC2 utilise la valeur de l'attribut DeleteOnTermination pour chaque volume Amazon EBS attaché afin de déterminer si le volume doit être conservé ou supprimé.

La valeur par défaut de l' attribut DeleteOnTermination diffère selon que le volume est le volume racine de l'instance ou un volume non racine attaché à l'instance.

Volume racine

Par défaut, l'attribut DeleteOnTermination du volume racine d'une instance est défini sur true. Par conséquent, l'action par défaut consiste à supprimer le volume racine de l'instance lorsque celle-ci est résiliée. L'attribut DeleteOnTermination peut être défini par le créateur d'une AMI ou par la personne qui lance une instance. Lorsque l'attribut est modifié par le créateur d'une AMI ou par la personne qui lance une instance, le nouveau paramètre remplace le paramètre par défaut d'origine de l'AMI. Nous vous recommandons de vérifier le paramètre par défaut de l'attribut DeleteOnTermination après avoir lancé une instance avec une AMI.

Volume non racine

Par défaut, lorsque vous attachez un volume EBS à une instance, son attribut DeleteOnTermination est défini sur false. L'action par défaut consiste donc à conserver ces volumes. Une fois l'instance mise hors service, vous pouvez prendre un instantané du volume conservé ou attacher celui-ci à une autre instance. Vous devez supprimer un volume pour éviter de générer des frais supplémentaires. Pour de plus amples informations, veuillez consulter Suppression d'un volume Amazon EBS.

Pour vérifier la valeur de l'attribut DeleteOnTermination d'un volume EBS en cours d'utilisation, examinez le mappage de périphérique de stockage en mode bloc de l'instance. Pour plus d'informations, consultez Affichage des volumes EBS dans le mappage de périphérique de stockage en mode bloc d'une instance.

Vous pouvez modifier la valeur de l'attribut DeleteOnTermination d'un volume lorsque vous lancez l'instance ou pendant l'exécution de celle-ci.

Modification du volume racine afin qu'il soit conservé lors du lancement à l'aide de la console

À l'aide de la console, vous pouvez modifier l'attribut DeleteOnTermination lorsque vous lancez une instance. Pour modifier cet attribut lorsqu'il est associé à une instance en cours d'exécution, vous devez utiliser la ligne de commande.

Pour modifier le volume racine d'une instance afin de le conserver lors du lancement à l'aide de la console

  1. Ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/.

  2. Dans le tableau de bord de la console, sélectionnez Lancer une instance.

  3. Sur la page Sélection d'une Amazon Machine Image (AMI), choisissez une AMI, puis sélectionnez Sélectionner.

  4. Suivez l'Assistant pour compléter les pages Choisir un type d'instance et Configurer les détails de l'instance.

  5. Sur la page Ajouter le stockage, décochez la case Supprimer à la résiliation pour le volume racine.

  6. Complétez les pages restantes de l'Assistant, puis sélectionnez Lancer.

Vous pouvez vérifier le paramètre en consultant les détails du volume du périphérique racine dans le volet des détails de l'instance. En regard de Périphériques de stockage en mode bloc, choisissez l'entrée du volume du périphérique racine. Par défaut, Supprimer à la résiliation a la valeur True. Si vous modifiez le comportement par défaut, Supprimer à la résiliation a la valeur False.

Modification du volume racine afin qu'il soit conservé lors du lancement à l'aide de la ligne de commande

Lorsque vous lancez une instance basée sur EBS, vous pouvez utiliser l'une des commandes suivantes afin de modifier le volume du périphérique racine à conserver. Pour obtenir plus d'informations sur l'interface ligne de commande, consultez Accès à Amazon EC2.

Par exemple, ajoutez l'option suivante à votre commande run-instances :

--block-device-mappings file://mapping.json

Spécifiez les éléments suivants dans mapping.json :

[ { "DeviceName": "/dev/sda1", "Ebs": { "DeleteOnTermination": false, "SnapshotId": "snap-1234567890abcdef0", "VolumeType": "gp2" } } ]

Modification du volume racine d'une instance en cours d'exécution afin de le conserver à l'aide de la ligne de commande

Vous pouvez utiliser l'une des commandes suivantes pour modifier le volume du périphérique racine d'une instance basée sur EBS en cours d'exécution afin de le conserver. Pour obtenir plus d'informations sur l'interface ligne de commande, consultez Accès à Amazon EC2.

Par exemple, utilisez la commande suivante :

aws ec2 modify-instance-attribute --instance-id i-1234567890abcdef0 --block-device-mappings file://mapping.json

Spécifiez les éléments suivants dans mapping.json :

[ { "DeviceName": "/dev/sda1", "Ebs": { "DeleteOnTermination": false } } ]

Dépannage

Si votre instance garde l'état shutting-down pendant plus longtemps que d'habitude, elle finit par être nettoyée (mise hors service) par les processus automatisés du service Amazon EC2. Pour plus d'informations, consultez Résolution des problèmes de mise hors service (d'arrêt) de votre instance.