Utiliser instances 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.

Utiliser instances Spot

Pour utiliser des instances Spot, vous créez une demande d’instance Spot qui inclut le nombre d’instances souhaité, le type d’instance et la zone de disponibilité. Si la capacité est disponible, Amazon EC2 répond à votre demande immédiatement. Dans le cas contraire, Amazon EC2 attend jusqu’à ce que votre demande soit exécutée ou jusqu’à l’annulation de celle-ci.

L’illustration suivante présente le fonctionnement des demandes d’instances Spot. Notez que le type de demande (unique ou persistante) détermine si la demande est rouverte lorsqu’Amazon EC2 interrompt une instance Spot ou que vous arrêtez une instance Spot. Si la demande est persistante, elle est rouverte après que votre instance Spot soit interrompue. Si la demande est persistante et que vous arrêtez votre instance Spot, la demande s’ouvre seulement après que vous ayez démarré votre instance Spot.


				Fonctionnement des demandes d’instance Spot.

États des demandes d’instance Spot

Une demande d’instance Spot peut avoir l’un des états suivants :

  • open – La demande est en attente d’exécution.

  • active – La demande a été exécutée et est associée à une instance Spot.

  • failed – La demande a un ou plusieurs paramètres erronés.

  • closed – L’instance Spot a été interrompue ou résiliée.

  • disabled – Vous avez arrêté l’instance Spot.

  • cancelled – Vous avez annulé la demande ou elle est arrivée à expiration.

L’illustration suivante représente les transitions entre les états de la demande. Remarquez que les transitions dépendent du type de demande (unique ou persistante).


					États des demandes d’instance Spot.

Une demande d’instance Spot unique reste active jusqu’à ce qu’Amazon EC2 lance l’instance Spot, que la demande arrive à expiration ou que vous annuliez la demande. Si la capacité n’est pas disponible, votre instance Spot est résiliée et la demande d’instance Spot est close.

Une demande d’instance Spot persistante reste active jusqu’à ce qu’elle arrive à expiration ou que vous l’annuliez, même si la demande est satisfaite. Si la capacité n’est pas disponible, votre instance Spot est interrompue. Une fois que votre instance a été interrompue, lorsque la capacité redevient disponible, l’instance Spot est démarrée si elle a été arrêtée, ou reprise si elle a été mise en veille prolongée. Vous pouvez arrêter une instance Spot et la redémarrer si la capacité est disponible. Si l’instance Spot est résiliée (que l’instance Spot soit à l’état arrêté ou en cours d’exécution), la demande d’instance Spot est rouverte et Amazon EC2 lance une nouvelle instance Spot. Pour plus d’informations, consultez Arrêt d’une instance Spot, Démarrer une instance Spot et Résilier une instance Spot.

Vous pouvez effectuer le suivi du statut de vos demandes d’instance Spot, ainsi que celui des instances Spot lancées, via le statut. Pour plus d’informations, consultez Statut des demandes Spot.

Spécifier une location pour votre instances Spot

Vous pouvez exécuter une instance Spot sur du matériel à client unique. Les instances Spot dédiées sont physiquement isolées des instances appartenant à d'autres AWS comptes. Pour plus d’informations, consultez Dedicated instances et la page produit Instances dédiées Amazon EC2.

Pour exécuter une instance Spot dédiée, effectuez l’une des actions suivantes :

  • Spécifiez une location de dedicated au moment de créer la demande d’instance Spot. Pour plus d’informations, consultez Créer une demande d’instance Spot.

  • Demandez une instance Spot sur un VPC avec une location d’instance de dedicated. Pour plus d’informations, consultez Créer un VPC avec une location d’instance dédiée. Vous ne pouvez pas demander d’instance Spot avec une location de default si vous la demandez sur un VPC avec une location d’instance de dedicated.

Toutes les familles d’instances prennent en charge les instances Spot dédiées sauf les instances T. Pour chaque famille d’instances prise en charge, seule la plus grande taille d’instance ou taille de métal prend en charge les instances Spot dédiées.

Rôle lié à un service pour les demandes d’instance Spot

Amazon EC2 utilise des rôles liés à un service pour les autorisations requises pour appeler d’autres services AWS en votre nom. Un rôle lié à un service est un type unique de rôle IAM directement lié à un service. AWS Les rôles liés à un service constituent un moyen sécurisé de déléguer des autorisations aux AWS services, car seul le service lié peut assumer un rôle lié au service. Pour plus d’informations, consultez Utilisation des rôles liés à un service dans le IAM Guide de l’utilisateur.

Amazon EC2 utilise le rôle lié au service nommé AWSServiceRoleForEC2Spotpour lancer et gérer les instances Spot en votre nom.

Autorisations octroyées par AWSServiceRoleForEC2Spot

Amazon EC2 permet AWSServiceRoleForEC2Spotd'effectuer les actions suivantes :

  • ec2:DescribeInstances – Décrire les instances Spot

  • ec2:StopInstances – Arrêter les instances Spot

  • ec2:StartInstances – Démarrer les instances Spot

Création du rôle lié à un service

Dans la plupart des cas, vous n’avez pas besoin de créer manuellement un rôle lié à un service. Amazon EC2 crée le rôle AWSServiceRoleForEC2Spotlié au service la première fois que vous demandez une instance Spot à l'aide de la console.

Si vous avez reçu une demande d'instance Spot active avant octobre 2017, date à laquelle Amazon EC2 a commencé à prendre en charge ce rôle lié à un service, Amazon EC2 a créé le rôle dans votre compte. AWSServiceRoleForEC2Spot AWS Pour plus d’informations, consultez Un nouveau rôle est apparu dans mon compte dans le IAM Guide de l’utilisateur.

Si vous utilisez l'API AWS CLI ou une API pour demander une instance Spot, vous devez d'abord vous assurer que ce rôle existe.

Pour créer AWSServiceRoleForEC2Spot à l'aide de la console
  1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation, choisissez Rôles.

  3. Sélectionnez Créer un rôle.

  4. Sur la page Select type of trusted entity (Sélectionner le type d’entité de confiance), choisissez EC2, EC2 - Spot Instances (EC2 - Instances Spot), Suivant : Autorisations.

  5. Sur la page suivante, choisissez Suivant : Vérification.

  6. Sur la page Vérification, choisissez Create Role (Créer un rôle).

Pour créer à AWSServiceRoleForEC2Spotl'aide du AWS CLI

Utilisez la commande create-service-linked-role comme suit.

aws iam create-service-linked-role --aws-service-name spot.amazonaws.com

Si vous n'avez plus besoin d'utiliser des instances Spot, nous vous recommandons de supprimer le AWSServiceRoleForEC2Spotrôle. Une fois ce rôle supprimé de votre compte, Amazon EC2 crée de nouveau le rôle si vous effectuez une demande d’instances Spot.

Octroyer un accès aux clés gérées par le client (CMK) en vue de leur utilisation avec les AMI chiffrées et les instantanés EBS

Si vous spécifiez une AMI chiffrée ou un instantané Amazon EBS chiffré pour vos instances Spot et que vous utilisez une clé gérée par le client pour le chiffrement, vous devez accorder au AWSServiceRoleForEC2Spotrôle l'autorisation d'utiliser la clé gérée par le client afin qu'Amazon EC2 puisse lancer des instances Spot en votre nom. Pour cela, vous devez ajouter une autorisation à la clé gérée par le client, comme indiqué dans la procédure suivante.

Lorsque vous définissez les autorisations, les octrois constituent une alternative aux politiques de clé. Pour de plus amples informations, veuillez consulter Utilisation des octrois et Utilisation des stratégies de clé dans AWS KMS dans le Guide du développeur AWS Key Management Service .

Pour autoriser le rôle AWSServiceRoleForEC2Spot à utiliser la clé gérée par le client
  • Utilisez la commande create-grant pour ajouter une autorisation à la clé gérée par le client et pour spécifier le principal (le rôle AWSServiceRoleForEC2Spotlié au service) autorisé à effectuer les opérations autorisées par l'autorisation. La clé gérée par le client est spécifiée par le paramètre key-id et l’ARN de la clé gérée par le client. Le principal est spécifié par le grantee-principal paramètre et l'ARN du rôle AWSServiceRoleForEC2Spotlié au service.

    aws kms create-grant \ --region us-east-1 \ --key-id arn:aws:kms:us-east-1:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab \ --grantee-principal arn:aws:iam::111122223333:role/aws-service-role/spot.amazonaws.com/AWSServiceRoleForEC2Spot \ --operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"

Créer une demande d’instance Spot

Vous pouvez utiliser l'assistant de lancement d'instance de la console Amazon EC2 ou la AWS CLI commande run-instances pour demander une instance Spot de la même manière que vous pouvez lancer une instance à la demande. Cette méthode n’est recommandée que pour les raisons suivantes :

  • Vous utilisez déjà l’assistant de lancement d’instance ou la commande run-instances pour lancer des instances à la demande, et vous voulez simplement passer au lancement d’instances Spot en modifiant un seul paramètre.

  • Vous n’avez pas besoin de plusieurs instances avec des types d’instance différents.

Cette méthode n’est généralement pas recommandée pour le lancement d’instances Spot car vous ne pouvez pas spécifier plusieurs types d’instance et vous ne pouvez pas lancer d’instances Spot et d’instances à la demande dans la même requête. Pour connaître les méthodes préférées pour lancer des instances Spot, notamment le lancement d’une flotte qui inclut des instances Spot et des instances à la demande avec plusieurs types d’instance, veuillez consulter la rubrique Quelle est la meilleure méthode de demande Spot à utiliser ?

Si vous demandez plusieurs instances Spot à la fois, Amazon EC2 crée des demandes d’instance Spot distinctes pour vous permettre de suivre l’état de chaque demande séparément. Pour plus d’informations sur le suivi des demandes d’instance Spot, consultez Statut des demandes Spot.

New console
Pour créer une demande d’Instance Spot à l’aide de l’assistant de lancement d’instance

Les étapes 1 à 9 sont les mêmes que celles que vous utiliseriez pour lancer une instance à la demande. À l’étape 10, vous configurez la demande d’instance Spot.

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

  2. Dans la barre de navigation, en haut de l’écran, sélectionnez une région.

  3. Sur le tableau de bord de la console Amazon EC2, sélectionnez Launch instance (Lancer une instance).

  4. (Facultatif) Sous Name and tags (Noms et identifications), vous pouvez nommer votre instance et étiqueter la demande d’instance Spot, l’instance, les volumes et les Elastic Graphics. Pour plus d’informations sur les balises, consultez Baliser vos ressources Amazon EC2.

    1. Pour Name (Nom), saisissez un nom descriptif pour votre instance.

      Le nom de l’instance est une identification, où la clé est Name (Nom), et la valeur est le nom que vous spécifiez. Si vous ne spécifiez pas de nom, l’instance peut être identifiée par son ID, qui est automatiquement généré lorsque vous lancez l’instance.

    2. Pour étiqueter la demande d’instance Spot, l’instance, les volumes et les Elastic Graphics, choisissez Add additional tags (Ajouter de identifications supplémentaires). Choisissez Add tag (Ajouter une identification), saisissez une clé et une valeur, puis sélectionnez le type de ressource à étiqueter. Choisissez Add tag (Ajouter une identification) pour chaque étiquette supplémentaire.

  5. Sous Application and OS Images (Amazon machine Image) (Images d’applications et de systèmes d’exploitation [Amazon machine Image]), choisissez le système d’exploitation de votre instance, puis sélectionnez une AMI. Pour plus d’informations, consultez Images d’applications et de systèmes d’exploitation (Amazon Machine Image).

  6. Sous Instance type (Type d’instance), sélectionnez le type d’instance qui répond à vos exigences en ce qui concerne la configuration matérielle et la taille de votre instance. Pour plus d’informations, consultez Type d’instance.

  7. Sous Key pair (login) (Paire de clés [connexion]), choisissez une paire de clés existante ou choisissez Create new key pair (Créer une paire de clés) pour en créer une. Pour plus d’informations, consultez Paires de clés Amazon EC2 et instances Amazon EC2.

    Important

    Si vous sélectionnez l’option Proceed without key pair (Not recommended) ((Continuer sans paire de clé) (Non recommandé)), vous ne pourrez pas vous connecter à l’instance à moins de choisir une AMI configurée de façon à autoriser les utilisateurs à se connecter d’une autre façon.

  8. Sous Network settings (Paramètres réseau), utilisez les paramètres par défaut ou choisissez Edit (Modifier) pour configurer les paramètres réseau selon les besoins.

    Les groupes de sécurité font partie des paramètres réseau et définissent les règles de pare-feu pour votre instance. Ces règles déterminent le trafic réseau entrant acheminé vers votre instance.

    Pour plus d’informations, consultez Paramètres réseau.

  9. L’AMI sélectionnée inclut un ou plusieurs volumes de stockage, notamment le volume du périphérique racine. Sous Configure storage (Configurer le stockage), vous pouvez spécifier des volumes supplémentaires à attacher à l’instance en choisissant Add new volume (Ajouter un nouveau volume). Pour plus d’informations, consultez Configurer le stockage.

  10. Sous Advanced details (Détails avancés), configurez la demande d’instance Spot comme suit :

    1. Sous Purchasing option (Option d’achat), cochez la case Request Spot Instances (Demander des instances Spot).

    2. Vous pouvez soit conserver la configuration par défaut de la demande d’instance Spot, soit choisir Customize (Personnaliser), à droite, pour spécifier des paramètres personnalisés pour votre demande d’instance Spot.

      Lorsque vous choisissez Customize (Personnaliser), les champs suivants s’affichent.

      1. Maximum price (Prix maximal) : vous pouvez demander des instances Spot au prix Spot, plafonné au prix À la demande, ou spécifier le montant maximum que vous êtes prêt à payer.

        Avertissement

        Si vous spécifiez un prix maximum, vos instances seront interrompues plus fréquemment que si vous choisissez No maximum price (Pas de prix maximal).

        • No maximum price (Pas de prix maximal) : votre instance Spot sera lancée au prix Spot en vigueur. Le prix ne dépassera jamais le prix À la demande. (Recommandé)

        • Set your maximum price (per instance/hour) (Définir votre prix maximal, par instance/heure) : vous pouvez spécifier le montant maximum que vous êtes prêt à payer.

          • Si vous spécifiez un prix maximum inférieur au prix Spot, votre instance Spot n’est pas lancée.

          • Si vous spécifiez un prix maximum supérieur au prix Spot actuel, votre Instance Spot sera lancée et facturée au prix Spot actuel. Une fois que votre instance Spot est en cours d’exécution, si le prix Spot dépasse votre prix maximum, Amazon EC2 interrompt votre instance Spot.

          • Quel que soit le prix maximum que vous spécifiez, vous serez toujours facturé au prix Spot actuel.

          Pour passer en revue les tendances de prix Spot, consultez Historique de tarification d’instances Spot.

      2. Request type (Type de demande) : le type de demande d’instance spot que vous choisissez détermine ce qui se passe si votre instance spot est interrompue.

        • One-time (Unique) : Amazon EC2 effectue une demande unique pour votre instance Spot. Si votre instance Spot est interrompue, la demande n’est pas soumise à nouveau.

        • Persistent request (Demande persistante) : Amazon EC2 place une demande persistante pour votre instance Spot. Si votre instance spot est interrompue, la demande est soumise à nouveau afin de réapprovisionner l’instance spot résiliée.

        Si vous ne spécifiez pas de valeur, la valeur par défaut est une demande unique.

      3. Valid to (Valide jusqu’au) : date d’expiration d’une demande persistante d’instance Spot.

        Ce champ n’est pas pris en charge pour les demandes uniques. Une demande d’unique reste active jusqu’à ce que toutes les instances de la demande soient lancées ou que vous annuliez la demande.

        • No request expiry date (Pas de date d’expiration de la demande) : la demande reste active jusqu’à ce que vous l’annuliez.

        • Set your request expiry date (Définir la date d’expiration de votre demande) : la demande persistante reste active jusqu’à la date spécifiée ou jusqu’à ce que vous l’annuliez.

      4. Interruption behavior (Comportement d’interruption) : le comportement que vous choisissez détermine ce qui se passe lorsqu’une instance spot est interrompue.

        • Pour les demandes persistantes, les valeurs valides sont Stop (Arrêter) et Hibernate (Mettre en veille prolongée). Lorsqu’une instance est arrêtée, des frais pour le stockage de volume EBS s’appliquent.

          Note

          Les instances Spot utilisent désormais la même fonctionnalité de mise en veille prolongée que les instances à la demande. Pour activer la mise en veille prolongée, vous pouvez soit choisir Mise en veille prolongée ici, soit sélectionner Activer dans le champ Comportement d’arrêt – mise en veille prolongée, qui apparaît plus bas dans l’assistant de lancement d’instance. Pour les prérequis de mise en veille prolongée, consultez Conditions préalables à l'hibernation des instances Amazon EC2.

        • Pour les demandes uniques, seule la valeur Terminate (Résilier) est valide.

        Si vous ne spécifiez pas de valeur, la valeur par défaut est Terminate (Résilier), laquelle n’est pas valide pour une demande d’instance Spot persistante. Si vous conservez la valeur par défaut et tentez de lancer une demande d’instance Spot persistante, une erreur s’affiche.

        Pour plus d’informations, consultez Comportement d’interruption.

  11. Sur le panneau Summary (Récapitulatif), pour Number of instances (Nombre d’instances), saisissez le nombre d’instances à lancer.

    Note

    Amazon EC2 crée une demande distincte pour chaque instance Spot.

  12. Sur le panneau Summary (Récapitulatif), vérifiez les détails de votre instance et effectuez toute modification nécessaire. Après avoir soumis votre demande d’instance Spot, vous ne pouvez plus modifier les paramètres de la demande. Vous pouvez accéder directement à une section dans l’assistant de lancement d’instance en sélectionnant son lien dans le panneau Summary (Récapitulatif). Pour plus d’informations, consultez Récapitulatif.

  13. Lorsque vous êtes prêt à lancer votre instance , choisissez Launch instance (Lancer l’instance).

    Si l’instance ne peut pas être lancée ou que l’état passe immédiatement à terminated au lieu de running, consultez Résoudre les problèmes de lancement d'instance.

Old console
Pour créer une demande d’Instance Spot à l’aide de l’assistant de lancement d’instance
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans la barre de navigation, en haut de l’écran, sélectionnez une région.

  3. Sur le tableau de bord de la console Amazon EC2, sélectionnez Lancer une instance.

  4. Sur la page Sélection d’une Amazon Machine Image (AMI), choisissez une AMI de la façon suivante : Pour plus d’informations, consultez Étape 1 : Sélectionner d’une Amazon Machine Image (AMI).

  5. Sur la page Choose an Instance Type (Choisir un type d’instance), sélectionnez la configuration matérielle et la taille de l’instance à lancer, puis choisissez Next: Configure Instance Details (Suivant : Configurer les détails de l’instance). Pour plus d’informations, consultez Étape 2 : Choisir un type d’instance.

  6. Sur la page Configurer les détails de l’instance, configurez la demande d’instance Spot comme suit :

    • Nombre d’instances : entrez le nombre d’instances à lancer.

      Note

      Amazon EC2 crée une demande distincte pour chaque instance Spot.

    • (Facultatif) Afin d’avoir un nombre suffisant d’instances pour gérer la demande sur votre application, vous pouvez choisir Lancer dans un groupe Auto Scaling pour créer une configuration de lancement et un groupe Auto Scaling. La fonctionnalité Auto Scaling fait évoluer le nombre d’instances du groupe en fonction de vos spécifications. Pour plus d’informations, consultez le Guide de l’utilisateur Amazon EC2 Auto Scaling.

    • Option d’achat : sélectionnez Demander des instances Spot pour lancer une instance Spot. Lorsque vous choisissez cette option, les champs suivants s’affichent.

    • Prix actuel : le prix Spot actuel dans chaque zone de disponibilité s’affiche pour le type d’instance sélectionné.

    • (Facultatif) Prix maximum : vous pouvez laisser le champ vide ou spécifier le montant maximum que vous êtes prêt à payer.

      Avertissement

      Si vous spécifiez un prix maximum, vos instances seront interrompues plus fréquemment que si vous laissez le champ vide.

      • Si vous spécifiez un prix maximum inférieur au prix Spot, votre Instance Spot ne sera pas lancée.

      • Si vous spécifiez un prix maximum supérieur au prix Spot actuel, votre Instance Spot sera lancée et facturée au prix Spot actuel. Une fois que votre instance Spot est en cours d’exécution, si le prix Spot dépasse votre prix maximum, Amazon EC2 interrompt votre instance Spot.

      • Quel que soit le prix maximum que vous spécifiez, vous serez toujours facturé au prix Spot actuel.

      • Si vous laissez le champ vide, vous paierez le prix Spot actuel.

    • Demande persistante : choisissez Demande persistante pour soumettre à nouveau la demande d’instance Spot si votre instance Spot est interrompue.

    • Comportement d’interruption : par défaut, le service Spot résilie une instance Spot lorsqu’elle est interrompue. Si vous choisissez Demande persistante, vous pouvez alors spécifier que le service Spot arrête votre instance Spot ou la mette en veille prolongée lorsqu’elles est interrompue. Pour plus d’informations, consultez Comportement d’interruption.

    • (Facultatif) Demande valide pour : choisissez Modifier pour spécifier l’expiration de la demande d’instance Spot.

    Pour plus d’informations sur la configuration de votre instance Spot, consultez Étape 3 : Configurer les détails de l’instance.

  7. L’AMI sélectionnée inclut un ou plusieurs volumes de stockage, notamment le volume du périphérique racine. Sur la page Ajouter le stockage, vous pouvez spécifier des volumes supplémentaires à attacher à l’instance en choisissant Ajouter un nouveau volume. Pour plus d’informations, consultez Étape 4 : Ajouter du stockage.

  8. Sur la page Ajouter des balises, spécifiez les balises en fournissant les combinaisons clé et valeur. Pour plus d’informations, consultez Étape 5 : Ajouter des balises.

  9. Sur la page Configurer le groupe de sécurité, utilisez un groupe de sécurité afin de définir les règles de pare-feu de votre instance. Ces règles déterminent le trafic réseau entrant acheminé vers votre instance. Le reste du trafic est ignoré. (Pour plus d’informations sur les groupes de sécurité, consultez Groupes de sécurité Amazon EC2 pour les instances Linux.) Sélectionnez ou créez un groupe de sécurité de la façon suivante, puis choisissez Vérifier et lancer. Pour plus d’informations, consultez Étape 6 : Configurer un groupe de sécurité.

  10. Sur la page Examiner le lancement de l’instance, vérifiez les détails de votre instance, puis effectuez les modifications nécessaires en sélectionnant le lien Modifier approprié. Une fois que vous êtes prêt, choisissez Lancer. Pour plus d’informations, consultez Étape 7 : Vérifier le lancement de l’instance et sélectionner une paire de clés.

  11. Dans la boîte de dialogue Select an existing key pair or create a new key pair (Sélectionner une paire de clés existante ou créer une nouvelle paire de clés), vous pouvez choisir une paire de clés existante ou en créer une nouvelle. Par exemple, sélectionnez Choisir une paire de clés existante, puis choisissez la paire de clés que vous avez créée lors de la configuration. Pour plus d’informations, consultez Paires de clés Amazon EC2 et instances Amazon EC2.

    Important

    Si vous sélectionnez l’option Proceed without key pair (Continuer sans paire de clé), vous ne pourrez pas vous connecter à l’instance à moins de choisir une AMI configurée de façon à autoriser les utilisateurs à se connecter d’une autre façon.

  12. Pour lancer votre instance, activez la case à cocher de confirmation, puis choisissez Lancer des instances.

    Si l'instance ne peut pas être lancée ou que l'état passe immédiatement à terminated au lieu de running, consultez Résoudre les problèmes de lancement d'instance.

AWS CLI
Pour créer une demande d’instance Spot à l’aide de run-instances

Utilisez la commande run-instances et spécifiez les options de l’instance Spot dans le paramètre --instance-market-options.

aws ec2 run-instances \ --image-id ami-0abcdef1234567890 \ --instance-type t2.micro \ --count 5 \ --subnet-id subnet-08fc749671b2d077c \ --key-name MyKeyPair \ --security-group-ids sg-0b0384b66d7d692f9 \ --instance-market-options file://spot-options.json

Voici la structure de données à spécifier dans le fichier JSON pour --instance-market-options. Vous pouvez également spécifier ValidUntil et InstanceInterruptionBehavior. Si vous ne spécifiez pas de champ dans la structure de données, la valeur par défaut est utilisée.

L’exemple suivant crée une demande persistent.

{ "MarketType": "spot", "SpotOptions": { "SpotInstanceType": "persistent" } }

 

Pour créer une demande d'instance Spot à l'aide de request-spot-instances

Note

Nous vous déconseillons vivement d'utiliser cette request-spot-instancescommande pour demander une instance Spot, car il s'agit d'une ancienne API sans investissement prévu. Pour plus d’informations, consultez Quelle est la meilleure méthode de demande Spot à utiliser ?.

Utilisez la request-spot-instancescommande pour créer une demande unique.

aws ec2 request-spot-instances \ --instance-count 5 \ --type "one-time" \ --launch-specification file://specification.json

Utilisez la request-spot-instancescommande pour créer une demande persistante.

aws ec2 request-spot-instances \ --instance-count 5 \ --type "persistent" \ --launch-specification file://specification.json

Pour accéder à des exemples de fichiers de spécification à utiliser avec ces commandes, consultez Exemple de spécifications de lancement d’une demande d’instance Spot. Si vous téléchargez un fichier de spécification de lancement depuis la console Spot Requests, vous devez utiliser la request-spot-fleetcommande à la place (la console Spot Requests spécifie une demande d'instance Spot à l'aide d'un parc Spot).

Rechercher des instances Spot en cours d’exécution

Amazon EC2 lance une instance Spot lorsque la capacité est disponible. Une instance Spot s’exécute jusqu’à ce qu’elle soit interrompue ou que vous la résiliiez.

Pour rechercher des instances Spot en cours d’exécution (console)
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans le panneau de navigation, sélectionnez Demandes Spot. Vous pouvez voir à la fois les demandes d’instance Spot et les demandes de parc d’instances Spot . Si une demande d’instance Spot a été satisfaite, Capacité est l’ID de l’instance Spot. Pour un parc d’instances Spot, le champ Capacité indique la part de la capacité demandée qui a été satisfaite. Pour afficher les ID des instances d’un parc d’instances Spot, choisissez la flèche de développement, ou sélectionnez le parc et choisissez Instances.

    Note

    Pour les demandes d’instance Spot créées par un parc d’instances Spot , les demandes ne sont pas étiquetées instantanément avec la balise système qui indique le parc d’instances Spot auquel elles appartiennent, et pendant un certain temps peuvent apparaître séparément de la demande de parc d’instances Spot .

    Vous pouvez également, dans le panneau de navigation, sélectionnez Instances. Dans le coin supérieur droit, choisissez l’icône des paramètres ( ), puis sous Colonnes attributaires, sélectionnez Cycle de vie de l’instance. Pour chaque instance, la valeur de Cycle de vie est normal, spot ou scheduled.

Pour trouver les instances Spot en cours d’exécution (AWS CLI)

Pour énumérer vos instances Spot, utilisez la describe-spot-instance-requestscommande avec l'--queryoption.

aws ec2 describe-spot-instance-requests \ --query "SpotInstanceRequests[*].{ID:InstanceId}"

Voici un exemple de sortie :

[ { "ID": "i-1234567890abcdef0" }, { "ID": "i-0598c7d356eba48d7" } ]

Vous pouvez aussi énumérer vos Instances Spot en utilisant la commande describe-instances avec l’option --filters.

aws ec2 describe-instances \ --filters "Name=instance-lifecycle,Values=spot"

Pour décrire une instance Spot unique, utilisez la describe-spot-instance-requestscommande associée à l'--spot-instance-request-idsoption.

aws ec2 describe-spot-instance-requests \ --spot-instance-request-ids sir-08b93456

Marquer les demandes d’instance Spot

Pour vous aider à classer et à gérer vos demandes d’instance Spot, vous pouvez les marquer avec des métadonnées personnalisées. Vous pouvez affecter une balise à une demande d’instance Spot lorsque vous la créez, ou après. Vous pouvez attribuer des balises à l’aide de la console Amazon EC2 ou d’un outil de ligne de commande.

Lorsque vous balisez une demande d’instance Spot, les instances et les volumes lancés par la demande d’instance Spot ne sont pas automatiquement balisés. Vous devez baliser explicitement les instances et les volumes lancés par la demande d’instance Spot. Vous pouvez affecter une balise à une instance Spot et à des volumes pendant le lancement, ou après.

Pour plus d’informations sur le fonctionnement des balises, consultez Baliser vos ressources Amazon EC2.

Prérequis

Octroyez à l’utilisateur l’autorisation de baliser les ressources. Pour plus d’informations sur les stratégies IAM et les exemples de stratégies, consultez Exemple : Baliser des ressources.

La politique IAM que vous créez est déterminée par la méthode que vous utilisez pour créer une demande d’instance Spot.

Pour accorder à un utilisateur l’autorisation de baliser des ressources lors de l’utilisation de l’assistant de lancement d’instance ou de run-instances

Créez une politique IAM qui inclut les éléments suivants :

  • L’action ec2:RunInstances. Cela accorde à l’utilisateur l’autorisation de lancer une instance.

  • Pour Resource, spécifiez spot-instances-request. Cela permet aux utilisateurs de créer des demandes d’instance Spot, qui demandent des instances Spot.

  • L’action ec2:CreateTags. Celle-ci accorde à l’utilisateur l’autorisation de créer des balises.

  • Pour Resource, spécifiez *. Cela permet aux utilisateurs de baliser toutes les ressources créées lors du lancement de l’instance.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowLaunchInstances", "Effect": "Allow", "Action": [ "ec2:RunInstances" ], "Resource": [ "arn:aws:ec2:us-east-1::image/*", "arn:aws:ec2:us-east-1:*:subnet/*", "arn:aws:ec2:us-east-1:*:network-interface/*", "arn:aws:ec2:us-east-1:*:security-group/*", "arn:aws:ec2:us-east-1:*:key-pair/*", "arn:aws:ec2:us-east-1:*:volume/*", "arn:aws:ec2:us-east-1:*:instance/*", "arn:aws:ec2:us-east-1:*:spot-instances-request/*" ] }, { "Sid": "TagSpotInstanceRequests", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "*" } ] }
Note

Lorsque vous utilisez cette RunInstances action pour créer des demandes d'instance ponctuelle et que vous balisez les demandes d'instance ponctuelle lors de la création, vous devez savoir comment Amazon EC2 évalue la spot-instances-request ressource dans la déclaration. RunInstances

La ressource spot-instances-request est évaluée dans la stratégie IAM comme suit :

  • Si vous ne balisez pas une demande d'instance Spot lors de la création, Amazon EC2 n'évalue pas la spot-instances-request ressource dans la RunInstances déclaration.

  • Si vous balisez une demande d'instance Spot lors de la création, Amazon EC2 évalue la spot-instances-request ressource dans le relevé. RunInstances

Par conséquent, pour la ressource spot-instances-request, les règles suivantes s’appliquent à la stratégie IAM :

  • Si vous avez l' RunInstances habitude de créer une demande d'instance ponctuelle et que vous n'avez pas l'intention de baliser la demande d'instance ponctuelle lors de la création, vous n'avez pas besoin d'autoriser explicitement la spot-instances-request ressource ; l'appel aboutira.

  • Si vous avez l' RunInstances habitude de créer une demande d'instance Spot et que vous avez l'intention de baliser la demande d'instance Spot lors de sa création, vous devez inclure la spot-instances-request ressource RunInstances dans l'instruction d'autorisation, sinon l'appel échouera.

  • Si vous avez l' RunInstances habitude de créer une demande d'instance Spot et que vous avez l'intention de baliser la demande d'instance Spot lors de sa création, vous devez spécifier la spot-instances-request ressource ou inclure un * caractère générique dans CreateTags l'instruction d'autorisation, sinon l'appel échouera.

Par exemple, pour les politiques IAM, y compris les politiques qui ne sont pas prises en charge pour les demandes d’instance Spot, consultez Utiliser instances Spot.

Pour accorder à un utilisateur l'autorisation de baliser des ressources lorsqu'il utilise request-spot-instances

Créez une politique IAM qui inclut les éléments suivants :

  • L’action ec2:RequestSpotInstances. Cela accorde à l’utilisateur l’autorisation de créer une demande d’instance Spot.

  • L’action ec2:CreateTags. Celle-ci accorde à l’utilisateur l’autorisation de créer des balises.

  • Pour Resource, spécifiez spot-instances-request. Cela permet aux utilisateurs de baliser uniquement la demande d’instance Spot.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "TagSpotInstanceRequest", "Effect": "Allow", "Action": [ "ec2:RequestSpotInstances", "ec2:CreateTags" ], "Resource": "arn:aws:ec2:us-east-1:111122223333:spot-instances-request/*" }

Baliser une nouvelle demande d’instance Spot

Pour baliser une nouvelle demande d’instance Spot à l’aide de la console
  1. Suivez la procédure Créer une demande d’instance Spot.

  2. Pour ajouter une balise, sur la page Ajouter des balises , choisissez Ajouter une balise, puis entrez la clé et la valeur de la balise. Choisissez Ajouter une autre balise pour chaque balise supplémentaire.

    Pour chaque balise, vous pouvez baliser la demande d’instance Spot, les instances Spot et les volumes avec la même balise. Pour baliser les trois, assurez-vous que instances, Volumes, et Demandes d’instance Spot sont sélectionnés. Pour n’en baliser qu’une ou deux, assurez-vous que les ressources que vous souhaitez baliser sont sélectionnées et que les autres ressources sont effacées.

  3. Remplissez les champs obligatoires pour créer une demande d’instance Spot, puis choisissez Lancer. Pour plus d’informations, consultez Créer une demande d’instance Spot.

Pour étiqueter une nouvelle demande d'instance Spot à l'aide du AWS CLI

Pour étiqueter une demande d’instance Spot lors de sa création, configurez la demande d’instance Spot comme suit :

  • Spécifiez les balises de la demande d’instance Spot à l’aide du paramètre --tag-specification.

  • Pour ResourceType, spécifiez spot-instances-request. Si vous indiquez une autre valeur, la demande d’instance Spot échouera.

  • Pour Tags, spécifiez la paire clé-valeur. Vous pouvez définir plus d‘une paire clé-valeur.

Dans l’exemple suivant, la demande d’instance Spot est marquée par deux balises : Key=Environment et Value=Production, ainsi que Key=Cost-Center et Value=123.

aws ec2 request-spot-instances \ --instance-count 5 \ --type "one-time" \ --launch-specification file://specification.json \ --tag-specification 'ResourceType=spot-instances-request,Tags=[{Key=Environment,Value=Production},{Key=Cost-Center,Value=123}]'

Baliser une demande d’instance Spot existante

Pour baliser une demande d’instance Spot existante à l’aide de la console

Après avoir créé une demande d’instance Spot, vous pouvez ajouter des balises à la demande d’instance Spot à l’aide de la console.

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

  1. Dans le panneau de navigation, sélectionnez Demandes Spot.

  2. Sélectionnez votre demande d’instance Spot.

  3. Choisissez l’onglet Tags (Balises), puis Create Tag (Créer une balise).

Pour baliser une instance Spot existante à l’aide de la console

Une fois que votre demande d’instance Spot a lancé votre instance Spot, vous pouvez ajouter des balises à l’instance à l’aide de la console. Pour plus d’informations, consultez Ajouter et supprimer des balises pour une ressource individuelle.

Pour baliser une demande d'instance Spot ou une instance Spot existante à l'aide du AWS CLI

Utilisez la commande create-tags pour baliser les ressources existantes. Dans l’exemple suivant, la demande d’instance Spot existante et l’instance Spot sont balisées avec Key=purpose et Value=test.

aws ec2 create-tags \ --resources sir-08b93456 i-1234567890abcdef0 \ --tags Key=purpose,Value=test

Afficher les balises de demande d’instance Spot

Pour afficher les balises d’une demande d’instance Spot à l’aide de la console

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

  1. Dans le panneau de navigation, sélectionnez Demandes Spot.

  2. Sélectionnez votre demande d’instance Spot et choisissez l’onglet Balises.

Pour décrire les balises de demande d’instance Spot

Utilisez la commande describe-tags pour afficher les balises de la ressource spécifiée. Dans l’exemple suivant, vous décrivez les balises de la demande spécifiée.

aws ec2 describe-tags \ --filters "Name=resource-id,Values=sir-11112222-3333-4444-5555-66666EXAMPLE"
{ "Tags": [ { "Key": "Environment", "ResourceId": "sir-11112222-3333-4444-5555-66666EXAMPLE", "ResourceType": "spot-instances-request", "Value": "Production" }, { "Key": "Another key", "ResourceId": "sir-11112222-3333-4444-5555-66666EXAMPLE", "ResourceType": "spot-instances-request", "Value": "Another value" } ] }

Vous pouvez également afficher les balises d’une demande d’instance Spot en décrivant la demande d’instance Spot.

Utilisez la describe-spot-instance-requestscommande pour afficher la configuration de la demande d'instance Spot spécifiée, qui inclut toutes les balises spécifiées pour la demande.

aws ec2 describe-spot-instance-requests \ --spot-instance-request-ids sir-11112222-3333-4444-5555-66666EXAMPLE
{ "SpotInstanceRequests": [ { "CreateTime": "2020-06-24T14:22:11+00:00", "InstanceId": "i-1234567890EXAMPLE", "LaunchSpecification": { "SecurityGroups": [ { "GroupName": "launch-wizard-6", "GroupId": "sg-1234567890EXAMPLE" } ], "BlockDeviceMappings": [ { "DeviceName": "/dev/xvda", "Ebs": { "DeleteOnTermination": true, "VolumeSize": 8, "VolumeType": "gp2" } } ], "ImageId": "ami-1234567890EXAMPLE", "InstanceType": "t2.micro", "KeyName": "my-key-pair", "NetworkInterfaces": [ { "DeleteOnTermination": true, "DeviceIndex": 0, "SubnetId": "subnet-11122233" } ], "Placement": { "AvailabilityZone": "eu-west-1c", "Tenancy": "default" }, "Monitoring": { "Enabled": false } }, "LaunchedAvailabilityZone": "eu-west-1c", "ProductDescription": "Linux/UNIX", "SpotInstanceRequestId": "sir-1234567890EXAMPLE", "SpotPrice": "0.012600", "State": "active", "Status": { "Code": "fulfilled", "Message": "Your spot request is fulfilled.", "UpdateTime": "2020-06-25T18:30:21+00:00" }, "Tags": [ { "Key": "Environment", "Value": "Production" }, { "Key": "Another key", "Value": "Another value" } ], "Type": "one-time", "InstanceInterruptionBehavior": "terminate" } ] }

Annuler une demande d’instance Spot

Si vous n’avez plus besoin de votre demande d’instance Spot, vous pouvez l’annuler. Vous pouvez ne pouvez annuler que les demandes d’instances Spot qui sont open, active, ou disabled.

  • Votre demande d’instance Spot est open lorsqu’elle n’a pas encore été exécutée et si aucune instance n’a été lancée.

  • Votre demande d’instance Spot est active lorsqu’elle a été satisfaite et que les instances Spot ont été lancées en conséquence.

  • Votre demande d’instance Spot est disabled lorsque vous arrêtez votre instance Spot.

Si votre demande d’instance Spot est active et qu’elle est associée à une instance Spot en cours d’exécution, l’annulation de la demande ne résilie pas l’instance. Pour plus d’informations sur la résiliation d’une instance Spot, consultez Résilier une instance Spot.

Pour annuler une demande d’instance Spot (console)
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/.

  2. Dans le panneau de navigation, choisissez Demandes Spot et sélectionnez la demande d’instance Spot.

  3. Choisissez Actions, Annuler la demande.

  4. (Facultatif) Si vous n’avez plus besoin d’utiliser les instances Spot associées, vous pouvez les résilier. Dans la boîte de dialogue Annuler la demande Spot sélectionnez Terminer les instances, puis choisissez Confirmer.

Pour annuler une demande d’instance Spot (AWS CLI)
  • Utilisez la cancel-spot-instance-requestscommande pour annuler la demande d'instance Spot spécifiée.

    aws ec2 cancel-spot-instance-requests --spot-instance-request-ids sir-08b93456

Arrêt d’une instance Spot

Si vous n’avez pas besoin de vos instances Spot actuellement, mais que vous souhaitez les redémarrer plus tard sans perdre les données persistantes du volume Amazon EBS, vous pouvez les arrêter. Les étapes d’arrêt d’une instance Spot sont similaires à celles de l’arrêt d’une instance à la demande.

Note

Pendant qu’une instance Spot est arrêtée, vous pouvez modifier certains de ses attributs, mais pas le type d’instance.

Nous ne vous facturons pas l’utilisation d’une instance Spot arrêtée, ni les frais de transfert de données, mais nous facturons le stockage des volumes Amazon EBS.

Limites
  • Vous ne pouvez arrêter une instance Spot que si elle a été lancée à partir d’une demande d’instance Spot persistent.

  • Vous ne pouvez pas arrêter une instance Spot si la demande d’instance Spot associée est annulée. Lorsque la demande d’instance Spot est annulée, vous ne pouvez que résilier l’instance Spot.

  • Vous ne pouvez pas arrêter une instance Spot si elle fait partie d’une flotte, d’un groupe de lancement ou d’un groupe de zone de disponibilité.

Console
Pour arrêter une instance Spot (console)
  1. Ouvrez la console Amazon EC2 sur https://console.aws.amazon.com/ec2/.

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

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

  4. Lorsque vous êtes invité à confirmer l’opération, choisissez Arrêter.

AWS CLI
Pour arrêter une instance Spot (AWS CLI)
  • Utilisez la commande stop-instances pour arrêter manuellement une ou plusieurs Instances Spot.

    aws ec2 stop-instances --instance-ids i-1234567890abcdef0

Démarrer une instance Spot

Vous pouvez démarrer une instance Spot que vous avez précédemment arrêtée. Les étapes du démarrage d’une instance Spot sont similaires à celles du démarrage d’une instance à la demande.

Prérequis

Vous pouvez démarrer une instance Spot uniquement si :

  • Vous avez manuellement arrêté l’instance Spot.

  • L’instance Spot est une instance basée sur EBS.

  • La capacité d’instance Spot est disponible.

  • Le prix Spot est inférieur à votre prix maximum.

Limites
  • Vous ne pouvez pas démarrer une instance Spot qui fait partie d’une flotte, d’un groupe de lancement ou d’un groupe de zone de disponibilité.

Console
Pour démarrer une instance Spot (console)
  1. Ouvrez la console Amazon EC2 sur https://console.aws.amazon.com/ec2/.

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

  3. Choisissez État de l’instance, Démarrer l’instance.

AWS CLI
Pour démarrer une instance Spot (AWS CLI)
  • Utilisez la commande start-instances pour démarrer manuellement une ou plusieurs Instances Spot.

    aws ec2 start-instances --instance-ids i-1234567890abcdef0

Résilier une instance Spot

Si vous résiliez une instance Spot en cours d’exécution ou arrêtée qui a été lancée par une demande d’instance Spot persistante, la demande d’instance Spot passe à l’état open pour qu’une nouvelle instance Spot puisse être lancée. Pour vous assurer qu’aucune nouvelle instance Spot ne soit lancée, vous devez d’abord annuler la demande d’instance Spot.

Si vous annulez une demande d’instance Spot active qui comporte une instance Spot en cours d’exécution, celle-ci n’est pas résiliée automatiquement. Vous devez la résilier manuellement.

Si vous annulez une demande d’instance Spot disabled qui a une instance Spot arrêtée, le service Spot Amazon EC2 résilie celle-ci automatiquement. Il peut y avoir un bref décalage entre le moment où vous annulez la demande d’instance Spot et celui où le service Spot résilie l’instance Spot.

Pour plus d’informations sur l’annulation d’une demande d’instance Spot, consultez Annuler une demande d’instance Spot.

Console
Pour résilier manuellement une instance Spot à l’aide de la console
  1. Avant de résilier une 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’instances vers un stockage persistant, par exemple Amazon EBS ou Amazon S3.

  2. Ouvrez la console Amazon EC2 sur https://console.aws.amazon.com/ec2/.

  3. Dans le panneau de navigation, choisissez Instances.

  4. Pour confirmer que l’instance est une instance Spot, vérifiez que spot s’affiche dans la colonne Instance lifecycle (Cycle de vie de l’instance).

  5. Sélectionnez l’instance, choisissez État de l’instance, Résilier l’instance.

  6. Choisissez Résilier lorsque vous êtes invité à confirmer.

AWS CLI
Pour mettre fin manuellement à une instance Spot à l'aide du AWS CLI
  • Utilisez la commande terminate-instances pour résilier manuellement des Instances Spot.

    aws ec2 terminate-instances --instance-ids i-1234567890abcdef0 i-0598c7d356eba48d7