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'une instance Spot est un avertissement émis deux minutes avant qu'Amazon n'EC2arrête ou ne mette fin à 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 Warning event

Lorsqu'Amazon EC2 va interrompre votre instance Spot, elle émet un événement deux minutes avant l'interruption effective (sauf pour l'hibernation, qui reçoit l'avis d'interruption, mais pas deux minutes à l'avance, car l'hibernation 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 un exemple détaillé expliquant comment créer et utiliser des règles relatives aux événements, consultez Taking Advantage of Amazon EC2 Spot Instance Interruption Notices.

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 ARN format de l'événement d'interruption de l'instance Spot estarn:aws:ec2:availability-zone:instance/instance-id. Ce format est différent du ARNformat de EC2 ressource.

instance-action

L'instance-actionélément indique l'action et l'heure approximative à UTC laquelle l'action aura lieu.

Si votre instance Spot est marquée comme devant être arrêtée ou résiliée par AmazonEC2, l'instance-actioné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 instance-action à l'aide du service de métadonnées d'instance version 2 (IMDSv2) comme suit.

cURL
[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
PowerShell
PS C:\> [string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/meta-data/spot/instance-action

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 ne s'EC2apprête pas à arrêter ou à mettre fin à l'instance, ou si vous l'avez résiliée vous-même, instance-action cela ne figure pas dans les métadonnées de l'instance et vous recevez une erreur HTTP 404 lorsque vous essayez de la récupérer.

termination-time

L'termination-timeélément indique l'heure approximative à UTC laquelle l'instance recevra le signal d'arrêt.

Note

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 récupérer l'termination-timeutilisation IMDSv2 comme suit.

cURL
[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
PowerShell
PS C:\> [string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/meta-data/spot/termination-time

Voici un exemple de sortie.

2015-01-05T18:02:00Z

Si Amazon ne EC2 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 fin à l'instance, le statut de la demande est défini surfulfilled. 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é.