Arrêtez et démarrez des instances Amazon EC2 - Amazon Elastic Compute Cloud

Arrêtez et démarrez des instances Amazon EC2

Vous pouvez arrêter et démarrer votre instance si elle comporte un volume Amazon EBS comme volume racine. Lorsque vous arrêtez une instance, elle se ferme. Lorsque vous démarrez une instance, elle est généralement migrée vers un nouvel ordinateur hôte sous-jacent et une nouvelle adresse IPv4 publique lui est attribuée.

Un arrêt d’instance peut être initié par l’utilisateur (lorsque vous arrêtez manuellement l’instance) ou par AWS (en réponse à un événement d’arrêt planifié lorsqu’AWS détecte une défaillance irréparable de l’hôte sous-jacent de votre instance).

Pour les arrêts initiés par l’utilisateur, nous vous recommandons d’utiliser la console, la CLI ou l’API Amazon EC2 au lieu d’exécuter la commande d’arrêt du système d’exploitation à partir de votre instance. Lorsque vous utilisez Amazon EC2, si l’instance ne s’arrête pas proprement au bout de quelques minutes, Amazon EC2 procède à un arrêt matériel. En outre, AWS CloudTrail crée un enregistrement d’API du moment où votre instance a été arrêtée.

Cette rubrique décrit comment effectuer un arrêt initié par l’utilisateur. Pour plus d’informations sur les arrêts effectués par AWS, consultez la section Gestion des instances Amazon EC2 dont l’arrêt ou la mise hors service est planifié

Lorsque vous arrêtez une instance, elle n’est pas supprimée. Si vous jugez que vous n’avez plus besoin d’une instance, vous pouvez y mettre fin. Pour de plus amples informations, consultez Terminez l'instance Amazon EC2. Si vous souhaitez mettre une instance en veille prolongée pour enregistrer le contenu de la mémoire de l’instance (RAM), consultez Mettez en veille prolongée votre instance Amazon EC2. Pour connaître les différences entre les actions du cycle de vie des instances, consultez Différences entre les états d'instance.

Arrêtez et démarrez manuellement vos instances

Vous pouvez arrêter et démarrer vos instances Amazon EBS (instances avec volumes racine EBS). Vous ne pouvez pas arrêter et démarrer les instances avec le volume racine de stockage d’instances.

Lorsque vous utilisez la méthode par défaut pour arrêter une instance, un arrêt progressif du système d’exploitation (OS) est tenté. Vous pouvez contourner l’arrêt progressif du système d’exploitation ; toutefois, cela peut mettre en danger l’intégrité des données.

Avertissement

Lorsque vous arrêtez une instance, les données contenues sur les volumes de stockage d’instance sont effacées. Avant d’arrêter une instance, vérifiez que vous avez copié toutes les données dont vous avez besoin à partir des volumes de stockage d’instance vers un stockage persistant, tel que Amazon EBS ou Amazon S3.

[Instances Linux] L’utilisation de la commande du système d’exploitation halt d’une instance ne déclenche pas un arrêt. Si vous utilisez la commande halt, l’instance n’est pas résiliée. Au lieu de cela, elle place le CPU à l’état HLT, ce qui suspend le fonctionnement du CPU. L’instance reste en cours d’exécution.

Vous pouvez déclencher un arrêt à l’aide des commandes shutdown ou poweroff du système d’exploitation. Lorsque vous utilisez une commande du système d’exploitation, l’instance s’arrête par défaut. Vous pouvez modifier ce comportement. Pour de plus amples informations, consultez Modifier le comportement de l’arrêt initié par l’instance.

Note

Si vous avez arrêté une instance basée sur Amazon EBS et que celle-ci semble « bloquée » à l’état stopping, vous pouvez forcer son arrêt. Pour de plus amples informations, consultez Résoudre les problèmes d’arrêt d’instance Amazon EC2.

Arrêt d’une instance avec un arrêt progressif du système d’exploitation

Vous pouvez arrêter une instance à l’aide de la méthode d’arrêt par défaut, qui inclut une tentative d’arrêt progressif du système d’exploitation. Pour de plus amples informations, consultez Arrêt par défaut.

Console
Pour arrêter une instance à l’aide de la méthode d’arrêt par défaut
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans le panneau de navigation de gauche, choisissez Instances, puis sélectionnez l’instance.

  3. Choisissez État de l’instance, Arrêter l’instance. Si cette option est désactivée, l’instance est déjà arrêtée ou son volume racine est un volume de stockage d’instances.

  4. Lorsque vous êtes invité à confirmer l’opération, choisissez Arrêter. L’arrêt de l’instance peut prendre quelques minutes.

AWS CLI
Pour arrêter une instance à l’aide de la méthode d’arrêt par défaut

Utilisez la commande stop-instances.

aws ec2 stop-instances --instance-ids i-1234567890abcdef0
PowerShell
Pour arrêter une instance à l’aide de la méthode d’arrêt par défaut

Utilisez l’applet de commande Stop-EC2Instance.

Stop-EC2Instance -InstanceId i-1234567890abcdef0

Arrêt d’une instance et contournement de l’arrêt progressif du système d’exploitation

Vous pouvez contourner l’arrêt progressif du système d’exploitation lors de l’arrêt d’une instance. Pour de plus amples informations, consultez Arrêt en ignorant l’arrêt du système d’exploitation.

Avertissement

Le contournement de l’arrêt progressif du système d’exploitation peut entraîner une perte ou une corruption de données (par exemple, le contenu de la mémoire n’est pas transféré sur le disque ou la perte d’E/S en cours) ou l’omission de scripts d’arrêt.

Console
Pour arrêter une instance et contourner l’arrêt progressif du système d’exploitation
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans le panneau de navigation, sélectionnez Instances, puis choisissez l’instance.

  3. Choisissez État de l'instance, Arrêter l'instance.

  4. Sous Ignorer l’arrêt du système d’exploitation, cochez la case Ignorer l’arrêt du système d’exploitation. Si vous ne voyez pas cette option dans la console, c’est qu’elle n’est pas encore disponible dans la console dans la région actuelle. Vous pouvez toutefois accéder à cette fonctionnalité à l’aide du kit SDK AWS CLI ou essayer une autre région dans la console.

  5. Choisissez Arrêter.

AWS CLI
Pour arrêter une instance et contourner l’arrêt progressif du système d’exploitation

Utilisez la commande stop-instances avec --skip-os-shutdown.

aws ec2 stop-instances \ --instance-ids i-1234567890abcdef0 \ --skip-os-shutdown
PowerShell
Pour arrêter une instance et contourner l’arrêt progressif du système d’exploitation

Utilisez l’applet de commande Stop-EC2Instance avec -SkipOsShutdown $true.

Stop-EC2Instance ` -InstanceId i-1234567890abcdef0 ` -SkipOsShutdown $true

Démarrer une instance

Vous pouvez démarrer une instance arrêtée.

Console
Pour démarrer une instance
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans le panneau de navigation de gauche, sélectionnez instances.

  3. Sélectionnez l’instance et choisissez État de l’instance, Démarrer l’instance.

    Il peut s’écouler quelques minutes avant que l’instance ne passe à l’état running.

AWS CLI
Pour démarrer une instance

Utilisez la commande start-instances.

aws ec2 start-instances --instance-ids i-1234567890abcdef0
PowerShell
Pour démarrer une instance

Utilisez l’applet de commande Start-EC2Instance.

Start-EC2Instance -InstanceId i-1234567890abcdef0

Arrêter et démarrer automatiquement vos instances

Vous pouvez automatiser l’arrêt et le démarrage de vos instances à l’aide des services suivants :

Instance Scheduler sur AWS

Vous pouvez utiliser Instance Scheduler sur AWS pour automatiser le démarrage et l’arrêt des instances EC2. Pour plus d’informations, consultez Comment utiliser Instance Scheduler avec CloudFormation pour planifier des instances EC2 ? Notez que des frais supplémentaires sont facturés.

AWS Lambda et une règle Amazon EventBridge

Vous pouvez utiliser Lambda et une règle EventBridge pour arrêter et démarrer vos instances selon un calendrier. Pour plus d’informations, consultez Comment utiliser Lambda pour arrêter et démarrer des instances Amazon EC2 à intervalles réguliers ?

Amazon EC2 Auto Scaling

Pour vous assurer que vous disposez du bon nombre d’instances Amazon EC2 disponibles pour gérer la charge d’une application, créez des groupes Auto Scaling. Amazon EC2 Auto Scaling garantit que votre application dispose toujours de la bonne capacité pour gérer la demande de trafic et permet de réduire les coûts en lançant des instances uniquement lorsqu’elles sont nécessaires. Veuillez noter que Amazon EC2 Auto Scaling résilie les instances inutiles plutôt que de les arrêter. Pour configurer des groupes Auto Scaling, consultez Commencer avec Amazon EC2 Auto Scaling (français non garanti).

Trouver toutes les instances en cours d’exécution et arrêtées

Vous pouvez trouver toutes vos instances en cours d’exécution et arrêtées dans toutes les Régions AWS sur une seule page grâce à Amazon EC2 Global View. Cette capacité est particulièrement utile pour faire l’inventaire et rechercher les instances oubliées. Pour plus d’informations sur l’utilisation de Global View, consultez Affichage des ressources dans toutes les régions à l’aide de AWS Global View.

Vous pouvez également exécuter une commande ou un applet de commande dans chaque région où vous avez des instances.

AWS CLI
Pour obtenir le nombre d’instances EC2 dans une région

Utilisez la commande describe-instances suivante pour compter les instances dans la région actuelle. Vous devez exécuter cette commande dans chaque région où vous avez des instances.

aws ec2 describe-instances \ --region us-east-2 \ --query "length(Reservations[].Instances[])"

Voici un exemple de sortie.

27
Pour obtenir des informations récapitulatives sur vos instances EC2 dans une région

Utilisez la commande describe-instances suivante. Vous devez exécuter cette commande dans chaque région où vous avez des instances.

aws ec2 describe-instances \ --region us-east-2 \ --query "Reservations[].Instances[].[InstanceId,InstanceType,PrivateIpAddress]" \ --output table

Voici un exemple de sortie.

--------------------------------------------------------- | DescribeInstances | +---------------------+---------------+-----------------+ | i-0e3e777f4362f1bf7| t2.micro | 10.0.12.9 | | i-09453945dcf1529e9| t2.micro | 10.0.143.213 | | i-08fd74f3f1595fdbd| m7i.4xlarge | 10.0.1.103 | +---------------------+---------------+-----------------+
PowerShell
Pour obtenir le nombre d’instances EC2 dans une région

Utilisez l’applet de commande Get-EC2Instance.

(Get-EC2Instance -Region us-east-2).Instances.Length

Voici un exemple de sortie.

27
Pour obtenir des informations récapitulatives sur vos instances EC2 dans une région

Utilisez l’applet de commande Get-EC2Instance. Vous devez exécuter cette commande dans chaque région où vous avez des instances.

(Get-EC2Instance).Instances | Select InstanceId, InstanceType, PrivateIpAddress

Voici un exemple de sortie.

InstanceId InstanceType PrivateIpAddress ---------- ------------ ---------------- i-0e3e777f4362f1bf7 t2.micro 10.0.12.9 i-09453945dcf1529e9 t2.micro 10.0.143.213 i-08fd74f3f1595fdbd m7i.4xlarge 10.0.1.103

Identifiez les heures de lancement initiales et les plus récentes

Lorsque vous décrivez une instance, l'heure de lancement de l'instance est son heure de lancement la plus récente. Après avoir arrêté et démarré une instance, l'heure de lancement reflète l'heure de démarrage de la nouvelle instance. Pour connaître l'heure de lancement initial d'une instance, même après l'avoir arrêtée et démarrée, affichez l'heure à laquelle l'interface réseau principale a été attachée à l'instance.

Console
Pour recherche l’heure de lancement la plus récente

Sélectionnez l’instance et recherchez Heure de lancement sous Détails de l’instance dans l’onglet Détails.

Pour rechercher l’heure de lancement initiale

Sélectionnez l’instance et recherchez l’interface réseau principale (l’index du périphérique est 0) sous Interfaces réseau dans l’onglet Mise en réseau.

AWS CLI
Pour rechercher l’heure de lancement initiale et l’heure de lancement la plus récente

Utilisez la commande describe-instances suivante pour afficher l’heure de lancement initiale et l’heure de lancement la plus récente de l’instance spécifiée.

aws ec2 describe-instances \ --instance-id i-1234567890abcdef0 \ --query 'Reservations[].Instances[].{InstanceID:InstanceId,InitialLaunch:NetworkInterfaces[0].Attachment.AttachTime,LastLaunch:LaunchTime}'

Voici un exemple de sortie.

[ { "InstanceID": "i-1234567890abcdef0", "InitialLaunch": "2024-04-19T00:47:08+00:00", "LastLaunch": "2024-05-27T06:24:06+00:00" } ]
PowerShell
Pour recherche l’heure de lancement la plus récente

Utilisez l’applet de commande Get-EC2Instance.

(Get-EC2Instance -InstanceId i-1234567890abcdef0).Instances.LaunchTime

Voici un exemple de sortie.

Monday, May 27, 2024 6:24:06 AM
Pour rechercher l’heure de lancement initiale

Utilisez l’applet de commande Get-EC2Instance.

(Get-EC2Instance -InstanceId i-1234567890abcdef0).Instances.NetworkInterfaces.Attachment.AttachTime

Voici un exemple de sortie.

Friday, April 19, 2024 12:47:08 AM