Avis d’interruption d’instance Spot. - Amazon Elastic Compute Cloud

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.

Avis d’interruption d’instance Spot.

Un avis d’interruption d’instance Spot est un avertissement émis deux minutes avant qu’Amazon EC2 arrête ou résilie votre instance Spot. Lorsque vous spécifiez la mise en veille comme comportement d’interruption, vous recevez un avis d’interruption, mais vous ne recevez pas d’avertissement de deux minutes car le processus de mise en veille commence immédiatement.

La meilleure façon pour vous de gérer fluidement les interruptions d’instance Spot consiste à concevoir votre application pour qu’elle soit tolérante aux pannes. Pour ce faire, vous pouvez vous servir des avis d’interruption d’instance Spot. Nous vous recommandons de vérifier ces avis d’interruption toutes les 5 secondes.

Les avis d'interruption sont mis à disposition en tant qu' EventBridge événement et en tant qu'éléments dans les métadonnées de l'instance Spot. Les avis d’interruption sont créés sur la base du meilleur effort.

EC2 Spot Instance interruption notice

Quand Amazon EC2 va interrompre votre instance Spot, il génère un évènement deux minutes avant l’interruption effective (sauf pour la veille prolongée, qui reçoit l’avis d’interruption, mais pas deux minutes à l’avance, car la mise en veille prolongée commence immédiatement). Cet événement peut être détecté par Amazon EventBridge. Pour plus d'informations sur EventBridge les événements, consultez le guide de EventBridge l'utilisateur Amazon. Pour obtenir un exemple détaillé qui vous explique comment créer et utiliser des règles d’événement, consultez Tirer parti des avis d’interruption d’instance Spot Amazon EC2.

Vous trouverez ci-dessous un exemple d’événement pour une interruption d’instance Spot. Les valeurs possibles pour instance-action sont hibernate, stop ou terminate.

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Spot Instance Interruption Warning", "source": "aws.ec2", "account": "123456789012", "time": "yyyy-mm-ddThh:mm:ssZ", "region": "us-east-2", "resources": ["arn:aws:ec2:us-east-2a:instance/i-1234567890abcdef0"], "detail": { "instance-id": "i-1234567890abcdef0", "instance-action": "action" } }
Note

Le format ARN de l'événement d'interruption de l'instance Spot estarn:aws:ec2:availability-zone:instance/instance-id. Ce format est différent du format ARN des ressources EC2.

instance-action

Si votre instance Spot est marquée comme devant être arrêtée ou résiliée par Amazon EC2, l’élément instance-action est présent dans les métadonnées de l’instance. Sinon, il n’est pas présent. Vous pouvez les récupérer instance-action à l'aide du service de métadonnées d'instance version 2 (IMDSv2) comme suit.

[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/spot/instance-action

L’élément instance-action spécifie l’action et l’heure approximative (UTC) à laquelle l’action aura lieu.

L’exemple de sortie suivant indique la date et l’heure auxquelles cette instance sera arrêtée.

{"action": "stop", "time": "2017-09-18T08:22:00Z"}

L’exemple de sortie suivant indique la date et l’heure auxquelles cette instance sera résiliée.

{"action": "terminate", "time": "2017-09-18T08:22:00Z"}

Si Amazon EC2 ne s’apprête pas à supprimer ou à arrêter l’instance, ou si vous avez suspendu vous-même l’instance, instance-action n’est pas présent dans les métadonnées de l’instance et vous recevez une erreur HTTP 404 lorsque vous tentez de la récupérer.

termination-time

Cet élément est conservé à des fins de compatibilité descendante ; nous vous invitons à utiliser instance-action à la place.

Si votre instance Spot est marquée comme devant être résiliée par Amazon EC2 (soit en raison d'une interruption d'instance ponctuelle pour laquelle le comportement d'interruption est défini surterminate, soit en raison de l'annulation d'une demande d'instance ponctuelle persistante), l'termination-timeélément est présent dans les métadonnées de votre instance. Sinon, il n’est pas présent. Vous pouvez les récupérer à l'termination-timeaide d'IMDSv2 comme suit.

[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` [ec2-user ~]$ if curl -H "X-aws-ec2-metadata-token: $TOKEN" -s http://169.254.169.254/latest/meta-data/spot/termination-time | grep -q .*T.*Z; then echo termination_scheduled; fi

L'termination-timeélément indique l'heure approximative en UTC à laquelle l'instance recevra le signal d'arrêt. Voici un exemple de sortie.

2015-01-05T18:02:00Z

Si Amazon EC2 ne se prépare pas à mettre fin à l'instance (soit parce qu'il n'y a pas d'interruption de l'instance Spot, soit parce que votre comportement d'interruption est défini sur stop ouhibernate), soit si vous avez résilié l'instance Spot vous-même, l'termination-timeélément n'est pas présent dans les métadonnées de l'instance (vous recevez donc une erreur HTTP 404) ou contient une valeur qui n'est pas une valeur temporelle.

Si Amazon EC2 ne parvient pas à mettre hors service l’instance, le statut de la demande est défini sur fulfilled. La valeur termination-time reste dans les métadonnées de l’instance avec l’heure approximative initiale, qui se trouve maintenant dans le passé.