Utilisation de flottes d’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.

Utilisation de flottes d’instances Spot

Pour utiliser un parc d’instances Spot , vous devez créer une demande de parc d’instances Spot comprenant la capacité cible, une part à la demande facultative, une ou plusieurs spécifications de lancement pour les instances et le prix maximum que vous êtes prêt à payer. La demande de flotte d’instances doit inclure une spécification de lancement paramétrant les informations dont la flotte d’instances a besoin pour lancer une instance, par exemple une AMI, un type d’instance, un sous-réseau ou une zone de disponibilité, et un ou plusieurs groupes de sécurité.

Si votre flotte d’instances inclut des instances Spot, Amazon EC2 tente de maintenir la capacité cible de votre flotte d’instances au fur et à mesure de l’évolution des prix Spot.

Il n’est pas possible de modifier la capacité cible d’une demande unique une fois qu’elle a été soumise. Pour modifier la capacité cible, annulez la demande et soumettez-en une nouvelle.

Une demande de parc d’instances Spot reste active jusqu’à ce qu’elle arrive à expiration ou que vous l’annuliez. Lorsque vous annulez une demande de parc d’instances Spot , vous pouvez spécifier si l’annulation de votre demande de parc d’instances Spot résilie les instances Spot de votre flotte.

État des demandes de parc d’instances Spot

Une demande de parc d’instances Spot peut avoir l’un des états suivants :

  • submitted : la demande de parc d’instances Spot est en cours d’évaluation et Amazon EC2 se prépare à lancer le nombre cible d’instances. Si une requête dépasse les limites du parc d’instances Spot, elle est annulée immédiatement.

  • active : la demande de parc d’instances Spot a été validée et Amazon EC2 tente de conserver le nombre cible d’instances Spot en cours d’exécution. La demande conserve cet état jusqu’à ce qu’elle soit modifiée ou annulée.

  • modifying : la demande de parc d’instances Spot est en cours de modification. La demande conserve cet état jusqu’à ce que la modification soit totalement traitée ou que le parc d’instances Spot soit annulé. Il n’est pas possible de modifier une demande (request) unique, et cet état ne s’applique pas à ce type de demande d’instance Spot.

  • cancelled_running : le parc d’instances Spot est annulé et ne lance pas d’instances Spot supplémentaires. Ses instances Spot existantes continuent de s’exécuter jusqu’à ce qu’elles soient interrompues ou mises hors service. La demande conserve cet état jusqu’à ce que toutes les instances soient interrompues ou mises hors service.

  • cancelled_terminating : le parc d’instances Spot est annulé et ses instances Spot sont résiliées. La demande conserve cet état jusqu’à ce que toutes les instances soient mises hors service.

  • cancelled : le parc d’instances Spot est annulé et n’a aucune instance Spot en cours d’exécution. La demande de parc d’instances Spot est supprimée deux jours après la résiliation de ses instances.

Vérifications de l’état du parc d’instances Spot

Le parc d’instances Spot vérifie l’intégrité des instances Spot de la flotte toutes les deux minutes. Le statut de l’état d’une instance est healthy ou unhealthy.

Le parc d’instances Spot détermine l’intégrité d’une instance en utilisant les vérifications d’état fournies par Amazon EC2. Une instance est déterminée comme unhealthy lorsque le contrôle du statut de l’instance ou de celui du système est impaired pendant trois surveillances consécutives de l’état. Pour plus d’informations, consultez Contrôles de statut pour vos instances.

Vous pouvez configurer votre flotte pour qu’il remplace les instances Spot non saine. Après avoir activé le remplacement de la vérification de l’état, une instance Spot est remplacée lorsqu’elle est signalée comme unhealthy. Notez que la taille de la flotte peut être inférieure à sa capacité cible pendant quelques minutes pendant le remplacement d’une instance Spot non saine.

Prérequis
  • Le remplacement de la vérification de l’état est pris en charge uniquement pour les Parcs d’instances Spot qui maintiennent une capacité cible (parcs de type maintain), pas pour les Parcs d’instances Spot uniques (parcs de type request).

  • Le remplacement de la vérification de l’état n’est pris en charge que pour instances Spot. Cette fonctionnalité n’est pas prise en charge pour instances à la demande.

  • Vous pouvez configurer votre parc d’instances Spot pour qu’il remplace les instances non saines au moment de sa création uniquement.

  • Les utilisateurs peuvent utiliser le remplacement lié à la surveillance de l’état seulement s’ils sont autorisés à appeler l’action ec2:DescribeInstanceStatus.

Console
Pour configurer un parc d’instances Spot pour remplacer des instances Spot non saines en utilisant la console
  1. Suivez les étapes permettant de créer un parc d’instances Spot . Pour plus d’informations, consultez Création d’une demande de parc d’instances Spot à l’aide des paramètres définis (console).

  2. Pour configurer le parc de manière à remplacer les Instances Spot non saines, pour la vérification de l’état, choisissez Remplacer les instances non saines. Pour activer cette option, vous devez d’abord choisir Maintain target capacity (Maintenir la capacité cible).

AWS CLI
Pour configurer un parc d’instances Spot pour remplacer des instances Spot non saines en utilisant la AWS CLI
  1. Suivez les étapes permettant de créer un parc d’instances Spot . Pour plus d’informations, consultez Créez une flotte de spots à l'aide du AWS CLI.

  2. Pour configurer le parc de manière à remplacer les Instances Spot non saines, pour ReplaceUnhealthyInstances, entrez true.

Autorisations du parc d’instances Spot

Si vos utilisateurs sont appelés à créer ou à gérer un parc d’instances Spot, veillez à leur accorder les autorisations nécessaires.

Si vous utilisez la console Amazon EC2 pour créer un parc d’instances Spot , cela crée un rôle lié au service nommé AWSServiceRoleForEC2SpotFleet et AWSServiceRoleForEC2Spot, et un rôle nommé aws-ec2-spot-fleet-tagging-role qui octroie au parc d’instances Spot les autorisations de demander, de lancer, de résilier et d’étiqueter des ressources en votre nom. Si vous utilisez AWS CLI ou une API, vous devez vous assurer que ces rôles existent.

Suivez les instructions ci-dessous pour accorder les autorisations requises et créer les rôles.

Accorder des autorisations aux utilisateurs pour un parc instances Spot

Si vos utilisateurs sont appelés à créer ou à gérer un parc d’instances Spot, veillez à leur accorder les autorisations nécessaires.

Pour créer une politique pour un parc d’instances Spot
  1. Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation, choisissez Policies (Stratégies), puis Create policy (Créer une stratégie).

  3. Sur la page Créer une stratégie, choisissez JSON, puis remplacez le texte par ce qui suit.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:RunInstances", "ec2:CreateTags", "ec2:RequestSpotFleet", "ec2:ModifySpotFleetRequest", "ec2:CancelSpotFleetRequests", "ec2:DescribeSpotFleetRequests", "ec2:DescribeSpotFleetInstances", "ec2:DescribeSpotFleetRequestHistory" ], "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/aws-ec2-spot-fleet-tagging-role" }, { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole", "iam:ListRoles", "iam:ListInstanceProfiles" ], "Resource": "*" } ] }

    L’exemple de politique précédent accorde à un utilisateur les autorisations requises pour la plupart des cas d’utilisation de parc d’instances Spot. Pour limiter l’utilisateur à des actions d’API données, spécifiez celles qui sont autorisées.

    EC2 et API IAM requises

    Les API suivantes doivent être incluses dans la politique :

    • ec2:RunInstances : requis pour lancer des instances dans un parc d’instances Spot

    • ec2:CreateTags : requis pour étiqueter la demande de parc d’instances Spot, les instances ou les volumes

    • iam:PassRole : requis pour spécifier le rôle du parc d’instances Spot

    • iam:CreateServiceLinkedRole : requis pour créer le rôle lié au service

    • iam:ListRoles : requis pour énumérer les rôles IAM existants

    • iam:ListInstanceProfiles : requis pour énumérer les profils d’instance existants

    Important

    Si vous spécifiez un rôle pour le profil d’instance IAM dans la spécification ou le modèle de lancement, vous devez accorder à l’utilisateur l’autorisation de transmettre le rôle au service. Pour ce faire, dans la stratégie IAM, incluez "arn:aws:iam::*:role/IamInstanceProfile-role" comme ressource pour l’action iam:PassRole. Pour plus d'informations, consultez la section Octroi à un utilisateur des autorisations lui permettant de transmettre un rôle à un AWS service dans le Guide de l'utilisateur IAM.

    API de parc d’instances Spot

    Ajoutez les actions d’API de parc d’instances Spot suivantes à votre politique, selon vos besoins :

    • ec2:RequestSpotFleet

    • ec2:ModifySpotFleetRequest

    • ec2:CancelSpotFleetRequests

    • ec2:DescribeSpotFleetRequests

    • ec2:DescribeSpotFleetInstances

    • ec2:DescribeSpotFleetRequestHistory

    API IAM facultatives

    (Facultatif) Pour autoriser un utilisateur à créer des rôles ou des profils d’instances à l’aide de la console IAM, vous devez aussi ajouter les actions suivantes à la politique :

    • iam:AddRoleToInstanceProfile

    • iam:AttachRolePolicy

    • iam:CreateInstanceProfile

    • iam:CreateRole

    • iam:GetRole

    • iam:ListPolicies

  4. Choisissez Examiner une stratégie.

  5. Sur la page Review Policy (Vérifier la stratégie), saisissez un nom et une description pour la stratégie, puis choisissez Create policy (Créer une stratégie).

  6. Pour activer l’accès, ajoutez des autorisations à vos utilisateurs, groupes ou rôles :

Rôle lié à un service pour un parc d’instances 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 Guide de l’utilisateur IAM.

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

Important

Si vous spécifiez une AMI chiffrée ou un instantané Amazon EBS chiffré dans votre parc de spots, vous devez accorder au AWSServiceRoleForEC2SpotFleetrôle l'autorisation d'utiliser le CMK afin qu'Amazon EC2 puisse lancer des instances en votre nom. Pour plus d’informations, consultez Octroyer un accès aux CMK en vue de leur utilisation avec les AMI chiffrées et les instantanés EBS.

Autorisations accordées par AWSServiceRoleForEC2SpotFleet

Amazon EC2 permet AWSServiceRoleForEC2SpotFleetd'effectuer les actions suivantes :

  • ec2:RequestSpotInstances - Demander des Instances Spot

  • ec2:RunInstances - Lancer des instances

  • ec2:TerminateInstances - Résilier des instances

  • ec2:DescribeImages - Décrire des images Amazon Machine Images (AMI) pour les instances

  • ec2:DescribeInstanceStatus - Décrire le statut des instances.

  • ec2:DescribeSubnets - Décrire les sous-réseaux des instances

  • ec2:CreateTags : ajouter des identifications à la demande de parc d’instances Spot, aux instances et aux volumes

  • elasticloadbalancing:RegisterInstancesWithLoadBalancer - Ajouter les instances spécifiées à l’équilibreur de charge indiqué.

  • elasticloadbalancing:RegisterTargets - Enregistrer les cibles spécifiées auprès du groupe cible indiqué.

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 AWSServiceRoleForEC2SpotFleetlié au service la première fois que vous créez un parc de spots à l'aide de la console.

Si vous avez reçu une demande Spot Fleet 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. AWSServiceRoleForEC2SpotFleet AWS Pour plus d'informations, consultez la section Un nouveau rôle est apparu dans mon AWS compte dans le guide de l'utilisateur IAM.

Si vous utilisez l'API AWS CLI ou une API pour créer un parc de spots, vous devez d'abord vous assurer que ce rôle existe.

Pour créer à AWSServiceRoleForEC2SpotFleet 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 Create role (Créer un rôle).

  4. Sur la page Select trusted entity (Sélectionner une entité de confiance), procédez comme suit :

    1. Pour Type d’entité de confiance, choisissez Service AWS .

    2. Sous Cas d'utilisation, pour Service ou cas d'utilisation, choisissez EC2.

    3. Dans le cas d'utilisation, choisissez EC2 - Spot Fleet.

    4. Choisissez Suivant.

  5. Sur la page Ajouter des autorisations, sélectionnez Suivant.

  6. Sur la page Nommer, vérifier et créer, choisissez Créer un rôle.

Pour créer à AWSServiceRoleForEC2SpotFleet l'aide du AWS CLI

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

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

Si vous n'avez plus besoin d'utiliser Spot Fleet, nous vous recommandons de supprimer le AWSServiceRoleForEC2SpotFleetrôle. Après sa suppression de votre compte, Amazon EC2 créera de nouveau le rôle si vous effectuez une demande de parc d’instances Spot à l’aide de la console. Pour plus d’informations, consultez Suppression d’un rôle lié à un service dans le Guide de l’utilisateur IAM.

Octroyer un accès aux 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é dans votre demande Spot Fleet et que vous utilisez une clé gérée par le client pour le chiffrement, vous devez accorder au AWSServiceRoleForEC2SpotFleetrôle l'autorisation d'utiliser le CMK afin qu'Amazon EC2 puisse lancer des instances en votre nom. Pour cela, vous devez ajouter une autorisation à la CMK, comme indiqué dans la procédure suivante.

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

Pour accorder au AWSServiceRoleForEC2SpotFleet rôle l'autorisation d'utiliser le CMK
  • Utilisez la commande create-grant pour ajouter une autorisation au CMK et pour spécifier le principal (le rôle AWSServiceRoleForEC2SpotFleetlié au service) autorisé à effectuer les opérations autorisées par l'autorisation. La CMK est spécifiée par le paramètre key-id et l’ARN de la CMK. Le principal est spécifié par le grantee-principal paramètre et l'ARN du rôle AWSServiceRoleForEC2SpotFleetlié 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/AWSServiceRoleForEC2SpotFleet \ --operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"

Rôle lié à un service pour les instances Spot

Amazon EC2 utilise le rôle lié au service nommé AWSServiceRoleForEC2Spotpour lancer et gérer les instances Spot en votre nom. Pour plus d’informations, consultez Rôle lié à un service pour les demandes d’instance Spot.

Rôle IAM pour l’étiquetage d’un parc d’instances Spot

Le rôle IAM aws-ec2-spot-fleet-tagging-role accorde au parc d’instances Spot l’autorisation d’étiqueter la demande, les instances et les volumes. Pour plus d’informations, consultez Étiqueter un parc d’instances Spot.

Important

Si vous choisissez d’étiqueter des instances dans la flotte et que vous choisissez également de maintenir la capacité cible (la demande de parc d’instances Spot est de type maintain), les différences dans les autorisations qui sont définies pour l’utilisateur et le rôle IamFleetRole peuvent entraîner un comportement d’étiquetage incohérent pour les instances de la flotte. Si le rôle IamFleetRole n’inclut pas l’autorisation CreateTags, il se peut que certaines instances lancées par le parc ne soient pas balisées. En attendant que cette incohérence soit corrigée, pour vous assurer que toutes les instances lancées par le parc sont marquées, nous vous recommandons d’utiliser le rôle aws-ec2-spot-fleet-tagging-role pour IamFleetRole. Sinon, pour utiliser un rôle existant, associez la politique AmazonEC2SpotFleetTaggingRole AWS gérée au rôle existant. Sinon, vous devrez ajouter manuellement l’autorisation CreateTags à votre stratégie.

Pour créer le rôle IAM pour l’étiquetage d’un parc d’instances Spot
  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 Create role (Créer un rôle).

  4. Sur la page Select trusted entity (Sélectionner entité de confiance), sous Trusted entity type (Type d’entité de service) choisissez AWS service.

  5. Sous Cas d'utilisation, dans Cas d'utilisation pour d'autres AWS services, choisissez EC2, puis EC2 - Spot Fleet Tagging.

  6. Choisissez Suivant.

  7. Sur la page Add permissions (Ajouter des autorisations), sélectionnez Next (Suivant).

  8. Sur la page Name, review, and create (Nommer, réviser et créer) pour le Role name (nom de rôle), saisissez un nom de rôle (par exemple aws-ec2-spot-fleet-tagging-role).

  9. Vérifiez les informations sur la page, puis choisissez Create role(Créer un rôle).

Prévention du cas de figure de l’adjoint désorienté entre services

Le problème de l’adjoint confus est un problème de sécurité dans lequel une entité qui n’a pas l’autorisation d’effectuer une action peut contraindre une entité plus privilégiée à effectuer cette action. Nous vous recommandons d’utiliser les clés de contexte de condition globale aws:SourceArn et aws:SourceAccount dans la politique d’approbation aws-ec2-spot-fleet-tagging-role pour limiter les autorisations que le parc d’instances Spot octroie à un autre service pour la ressource.

Pour ajouter les clés de SourceAccount condition aws : SourceArn et aws : à la politique de aws-ec2-spot-fleet-tagging-role confiance
  1. Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation, sélectionnez Rôles.

  3. Recherchez la valeuraws-ec2-spot-fleet-tagging-roleque vous avez créé précédemment et sélectionnez le lien (et non la case à cocher).

  4. Sous Summary Summary (Résumé), sélectionnez l’onglet Trust relationships (Relations d’approbation), puis Edit trust policy (Modifier la politique d’approbation).

  5. Dans l’instruction JSON, ajoutez unConditionélément contenant votreaws:SourceAccountetaws:SourceArnClés de contexte de condition globales pour empêcher leproblème de l’adjoint confus, comme suit :

    "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:ec2:us-east-1:account_id:spot-fleet-request/sfr-*" }, "StringEquals": { "aws:SourceAccount": "account_id" }
    Note

    Si vous utilisez les deux clés de contexte de condition globale et que la valeur de aws:SourceArn contient l’ID de compte, la valeur de aws:SourceAccount et le compte indiqué dans la valeur de aws:SourceArn doivent utiliser le même ID de compte lorsqu’il est utilisé dans la même déclaration de politique.

    La stratégie d’approbation finale sera la suivante :

    { "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "spotfleet.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:ec2:us-east-1:account_id:spot-fleet-request/sfr-*" }, "StringEquals": { "aws:SourceAccount": "account_id" } } } }
  6. Choisissez Mettre à jour une politique.

Le tableau suivant fournit les valeurs potentielles pouraws:SourceArnpour limiter la portée de votreaws-ec2-spot-fleet-tagging-roleà divers degrés de spécificité.

Opération API Service appelé Portée aws:SourceArn
RequestSpotFleet AWS STS (AssumeRole) Limitez la AssumeRole aws-ec2-spot-fleet-tagging-role capacité spot-fleet-requests au compte spécifié. arn:aws:ec2:*:123456789012:spot-fleet-request/sfr-*
RequestSpotFleet AWS STS (AssumeRole) Limitez la AssumeRole capacité aws-ec2-spot-fleet-tagging-role spot-fleet-requests au compte et à la région spécifiés. Notez que ce rôle ne sera pas utilisable dans d’autres régions. arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-*
RequestSpotFleet AWS STS (AssumeRole) Limitez laAssumeRolecapacité suraws-ec2-spot-fleet-tagging-roleuniquement aux actions affectant la flotte sfr-11111111-1111-1111-1111-111111111111. Notez que ce rôle peut ne pas être utilisable pour d’autres f Spot Fleets. De plus, ce rôle ne peut pas être utilisé pour lancer de nouvelles flottes ponctuelles. request-spot-fleet arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-11111111-1111-1111-1111-111111111111

Créer une Spot Fleet request

À l'aide du AWS Management Console, créez rapidement une demande Spot Fleet en choisissant uniquement les besoins de votre application ou de votre tâche et les spécifications de calcul minimales. Amazon EC2 configure une flotte qui répond le mieux à vos besoins et qui est conforme aux bonnes pratiques en matière d’instances Spot. Pour plus d’informations, consultez Création rapide d’une demande de parc d’instances Spot (console). Sinon, vous pouvez modifier l’un des paramètres par défaut. Pour plus d’informations, consultez Création d’une demande de parc d’instances Spot à l’aide des paramètres définis (console) et Créez une flotte de spots à l'aide du AWS CLI.

Création rapide d’une demande de parc d’instances Spot (console)

Pour créer rapidement une demande de parc d’instances Spot , procédez comme suit.

Pour créer une demande de parc d’instances Spot à l’aide des paramètres recommandés (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.

  3. Si vous utilisez les instances Spot pour la première fois, sélectionnez Mise en route. Sinon, sélectionnez Demander des Instances Spot.

  4. Sous Launch parameters (Paramètres de lancement), choisissez Manually configure launch parameters (Configuration manuelle des paramètres de lancement).

  5. Pour AMI, choisissez une AMI.

  6. Sous Target capacity (Capacité cible), pour Total target capacity (Capacité cible totale), indiquez le nombre d’unités à demander. Pour le type d’unité, vous pouvez choisir Instances, vCPU ou Memory (MiB) (Mémoire (MiB)).

  7. Pour Your fleet request at a glance (Votre demande de flotte en un coup d’œil), passez en revue la configuration de votre flotte et choisissez Launch (Lancer).

Création d’une demande de parc d’instances Spot à l’aide des paramètres définis (console)

Vous pouvez créer un parc d’instances Spot à l’aide des paramètres que vous définissez.

Pour créer une demande de parc d’instances Spot à l’aide des paramètres définis (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.

  3. Si vous utilisez les instances Spot pour la première fois, sélectionnez Mise en route. Sinon, sélectionnez Demander des Instances Spot.

  4. Pour Launch parameters (Paramètres de lancement), procédez comme suit :

    1. Pour définir les paramètres de lancement dans la console Spot, choisissez Manually configure launch parameters (Configuration manuelle des paramètres de lancement).

    2. Pour l'AMI, choisissez l'une des AMI de base fournies par AWS, ou choisissez Rechercher une AMI pour utiliser une AMI de notre communauté d'utilisateurs AWS Marketplace, ou l'une des vôtres.

      Note

      Si une AMI spécifiée dans les paramètres de lancement est désenregistrée ou désactivée, aucune nouvelle instance ne peut être lancée depuis l'AMI. Pour les flottes conçues pour maintenir la capacité cible, la capacité cible ne sera pas maintenue.

    3. (Facultatif) Pour Nom de la paire de clés, choisissez une paire de clés existante ou créez-en une.

      [Paire de clés existante] Choisissez la paire de clés.

      [Nouvelle paire de clés] Choisissez Create new key pair (Créer une nouvelle paire de clés) pour accéder à la page Key Pairs (Paires de clés). Lorsque vous avez terminé, revenez à la page Spot Requests (Demandes Spot) puis actualisez la liste.

    4. (Facultatif) Développez Additional launch parameters (Paramètres de lancement supplémentaires) et procédez comme suit.

      1. (Facultatif) Pour activer l’optimisation Amazon EBS, choisissez Launch EBS-optimized instances (Lancer les instances optimisées pour EBS) pour EBS-optimized (Optimisé pour EBS).

      2. (Facultatif) Pour ajouter de l’espace de stockage temporaire de niveau bloc pour vos instances, choisissez Attach at launch (Attacher au lancement) pour Stockage d’instance.

      3. (Facultatif) Pour ajouter de l’espace de stockage supplémentaire, sélectionnez Add new volume (Ajouter un nouveau volume), puis spécifiez des volumes de stockage d’instances ou des volumes Amazon EBS supplémentaires, selon le type d’instance.

      4. (Facultatif) Par défaut, la surveillance basique est activée pour vos instances. Pour activer la surveillance détaillée, pour Surveillance, sélectionnez Activer la surveillance CloudWatch détaillée.

      5. (Facultatif) Pour exécuter une instance Spot dédiée, pour Location, choisissez Dédié : exécuter une instance dédiée.

      6. (Facultatif) Pour Groupes de sécurité, choisissez un ou plusieurs groupes de sécurité ou créez-en un.

        [Groupe de sécurité existant] Choisissez un ou plusieurs groupes de sécurité.

        [Nouveau groupe de sécurité] Choisissez Create new security group (Créer un nouveau groupe de sécurité) pour accéder à la page Security Groups (Groupes de sécurité). Lorsque vous avez terminé, revenez à Spot Requests (Demandes Spot), puis actualisez la liste.

      7. (Facultatif) Pour rendre vos instances accessibles depuis Internet, choisissez Activer pour Auto-assign IPv4 Public IP (Attribuer automatiquement une adresse IP publique IPv4).

      8. (Facultatif) Pour lancer vos Instances Spot avec un rôle IAM, pour IAM instance profile (Profil d’instance IAM), choisissez le rôle.

      9. (Facultatif) Pour exécuter un script de démarrage, copiez-le dans Données utilisateur.

      10. (Facultatif) Pour ajouter une identification, choisissez Create tag (Créer une identification) et saisissez la clé et la valeur de l’identification, puis sélectionnez Create (Créer). Répétez l’opération pour chaque étiquette.

        Pour chaque identification, pour étiqueter les instances et la demande de parc d’instances Spot avec la même identification, assurez-vous que Instances et Fleet (Flotte) sont sélectionnées. Pour étiqueter uniquement les instances lancées par la flotte, supprimer Fleet (Flotte). Pour étiqueter uniquement la demande de parc d’instances Spot, supprimez Instances.

  5. Pour Additional request details (Détails de la demande supplémentaire), procédez comme suit :

    1. Vérifiez les détails de la demande supplémentaire. Pour effectuer des modifications, décochez la case Apply defaults (Appliquer les valeurs par défaut).

    2. (Facultatif) Pour IAM fleet role (Rôle de parc IAM), vous pouvez utiliser le rôle par défaut ou choisir un autre rôle. Choisissez Use default role (Utiliser le rôle par défaut) pour utiliser le rôle par défaut après avoir changé de rôle.

    3. (Facultatif) Pour Prix maximum, vous pouvez utiliser le prix maximum par défaut (prix à la demande) ou indiquer le prix maximum que vous êtes prêt à payer. Vos instances Spot ne sont pas lancées si votre prix maximal est inférieur au prix spot pour les types d’instance que vous avez sélectionnés.

    4. (Facultatif) Pour créer une demande valide uniquement pendant une période spécifique, modifiez les valeurs des champs Demande valide du et Demande valide jusqu’au.

    5. (Facultatif) Par défaut, nous résilions vos instances Spot à l’expiration de la demande de parc d’instances Spot. Si vous souhaitez qu’elles continuent de s’exécuter après l’expiration de votre demande, décochez la case Terminate the instances when the request expires (Résilier les instances lorsque la demande expire).

    6. (Facultatif) Pour enregistrer vos Instances Spot auprès d’un équilibreur de charge, choisissez Receive traffic from one or more load balancers (Recevoir le trafic d’un ou plusieurs équilibreurs de charge) et choisissez un ou plusieurs Equilibreurs de charge classiques ou groupes cibles.

  6. Pour Minimum compute unit (Unité de calcul minimale), choisissez les spécifications matérielles minimales (vCPU, mémoire et stockage) dont vous avez besoin pour votre application ou votre tâche, as specs (en tant que spécifications) ou as an instance type (en tant que type d’instance).

    • Pour as specs (en tant que spécifications), indiquez le nombre de vCPU requis et la quantité de mémoire requise.

    • Pour as an instance type (en tant que type d’instance), acceptez le type d’instance par défaut ou choisissez Changer le type d’instance pour choisir un autre type d’instance.

  7. Dans Target capacity (Capacité cible), effectuez les opérations suivantes :

    1. Pour Total target capacity (Capacité cible totale), indiquez le nombre d’unités à demander. Pour le type d’unité, vous pouvez choisir Instances, vCPU ou Memory (MiB) (Mémoire (MiB)). Pour spécifier une capacité cible de 0 afin d’ajouter une capacité ultérieurement, choisissez Maintain target capacity (Maintenir la capacité cible).

    2. (Facultatif) Pour Include On-Demand base capacity (Inclure la capacité de base à la demande), indiquez le nombre d’unités à la demande à demander. Ce nombre doit être inférieur à la valeur du champ Capacité cible totale. Amazon EC2 calcule la différence et l’alloue aux unités Spot à demander.

      Important

      Pour spécifier une capacité à la demande facultative, vous devez commencer par choisir un modèle de lancement.

    3. (Facultatif) Par défaut, Amazon EC2 met fin aux instances Spot lorsqu'elles sont interrompues. Pour maintenir la capacité cible, sélectionnez Maintain target capacity (Maintenir la capacité cible). Vous pouvez ensuite spécifier qu'Amazon EC2 met fin, arrête ou met en veille prolongée les instances Spot lorsqu'elles sont interrompues. Pour ce faire, choisissez l’option correspondante à partir de Interruption behavior (Comportement d’interruption).

      Note

      Si une AMI spécifiée dans les paramètres de lancement est désenregistrée ou désactivée, aucune nouvelle instance ne peut être lancée depuis l'AMI. Pour les flottes conçues pour maintenir la capacité cible, la capacité cible ne sera pas maintenue.

    4. (Facultatif) Pour autoriser le parc d’instances Spot à lancer une instance Spot de remplacement lorsqu’une notification de rééquilibrage d’instance est émise pour une instance Spot existante dans la flotte, sélectionnez Capacity rebalance (Rééquilibrage de capacité), puis sélectionnez une stratégie de remplacement d’instance. Si vous choisissez Launch before terminate (Lancer avant la résiliation), spécifiez le délai (en secondes) avant que le parc d’instances Spot ne résilie les anciennes instances. Pour plus d’informations, consultez Rééquilibrage de la capacité.

    5. (Facultatif) Pour contrôler le montant que vous payez par heure pour l’ensemble des instances Spot de votre flotte, sélectionnez Set maximum cost for Spot instances (Définir le coût maximum pour les instances Spot), puis saisissez le montant total maximal que vous êtes prêt à payer par heure. Une fois le prix total maximum atteint, le parc d’instances Spot arrête de lancer des instances Spot même si la capacité cible n’a pas été atteinte. Pour plus d’informations, consultez Contrôle des dépenses.

  8. Pour Network (Réseau), procédez comme suit :

    1. Pour Réseau, choisissez un VPC existant ou créez-en un.

      [VPC existant] Choisissez le VPC.

      [Nouveau VPC] Choisissez Créer un nouveau VPC pour accéder à la console Amazon VPC. Lorsque vous avez terminé, revenez dans l’assistant et actualisez la liste.

    2. (Facultatif) Pour Zone de disponibilité, laissez AWS choisir les zones de disponibilité de vos Instances Spot ou indiquez une ou plusieurs zones de disponibilité.

      Si vous avez plusieurs sous-réseaux dans une zone de disponibilité, choisissez le sous-réseau approprié dans Sous-réseau. Pour ajouter des sous-réseaux, choisissez Créer un nouveau sous-réseau pour accéder à la console Amazon VPC. Lorsque vous avez terminé, revenez dans l’assistant et actualisez la liste.

  9. Pour Instance type requirements (Exigences de type d’instance), vous pouvez soit spécifier les attributs d’instance et laisser Amazon EC2 identifier les types d’instance optimaux avec ces attributs, soit spécifier une liste des instances. Pour plus d’informations, consultez Sélection de type d’instance basée sur des attributs pour un parc d’instances Spot.

    1. Si vous choisissez Specify instance attributes that match your compute requirements (Spécifier les attributs d’instance qui correspondent à vos exigences de calcul), spécifiez les attributs de votre instance comme suit :

      1. Pour vCPU, saisissez les nombres minimum et maximum de vCPU souhaités. Pour ne spécifier aucune limite, sélectionnez No minimum (Pas de minimum), No maximum (Pas de maximum), ou les deux.

      2. Pour Memory (GiB) (Mémoire (Gio)), saisissez la quantité minimale et maximale de mémoire souhaitée. Pour ne spécifier aucune limite, sélectionnez No minimum (Pas de minimum), No maximum (Pas de maximum), ou les deux.

      3. (Facultatif) Pour Additional instance attributes (Attributs d’instance supplémentaires), vous pouvez éventuellement spécifier un ou plusieurs attributs pour exprimer vos exigences de calcul plus en détail. Chaque attribut supplémentaire ajoute une contrainte supplémentaire à votre demande. Vous pouvez omettre les attributs supplémentaires. Lorsque ces attributs sont omis, les valeurs par défaut sont utilisées. Pour une description de chaque attribut et de leurs valeurs par défaut, consultez le get-spot-placement-scoresmanuel Amazon EC2 Command Line Reference.

      4. (Facultatif) Pour afficher les types d’instance avec vos attributs spécifiés, développez Preview matching instance types (Aperçu des types d’instance correspondants). Pour empêcher des types d’instances d’être utilisés dans votre demande, sélectionnez les instances, puis choisissez Exclude selected instance types (Exclure les types d’instances sélectionnés).

    2. Si vous choisissez Manually select instance types (Sélection manuelle des types d’instances), le parc d’instances Spot fournit une liste par défaut des types d’instances. Pour sélectionner d’autres types d’instances, choisissez Add instance types (Ajouter des types d’instances), sélectionnez les types d’instances à utiliser dans votre demande, puis choisissez Select (Sélectionner). Pour supprimer des types d’instance, sélectionnez les types d’instance et choisissez Delete (Supprimer).

  10. Pour Allocation strategy (Stratégie d’allocation), choisissez la stratégie qui répond à vos besoins. Pour plus d’informations, consultez Stratégies d’allocation pour instances Spot.

  11. Pour Your fleet request at a glance (Votre demande de flotte en un coup d’œil), passez en revue la configuration de votre flotte et effectuez les ajustements nécessaires.

  12. (Facultatif) Pour télécharger une copie de la configuration de lancement à utiliser avec le AWS CLI, choisissez JSON config.

  13. Choisissez Launch.

    Le type de demande de parc d’instances Spot est fleet. Une fois la demande exécutée, les demandes de type instance sont ajoutées, avec l’état active et le statut fulfilled.

Créez une flotte de spots à l'aide du AWS CLI

Pour créer une demande Spot Fleet à l'aide du AWS CLI
aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json

Pour accéder à des exemples de fichiers de configuration, consultez Exemples de configuration d’un parc d’instances Spot.

Voici un exemple de sortie :

{ "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" }

Étiqueter un parc d’instances Spot

Pour vous aider à classer et à gérer vos demandes de parc d’instances Spot , vous pouvez les étiqueter avec des métadonnées personnalisées. Vous pouvez affecter une étiquette à une demande de parc d’instances 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 étiquetez une demande de parc d’instances Spot , les instances et les volumes lancés par le parc d’instances Spot ne sont pas étiquetés automatiquement. Vous devez étiqueter explicitement les instances et les volumes lancés par le parc d’instances Spot . Vous pouvez choisir d’affecter des étiquettes uniquement à la demande de parc d’instances Spot , ou uniquement aux instances lancées par la flotte, ou uniquement aux volumes attachés aux instances lancées par la flotte, ou aux trois.

Note

Les balises de volume ne sont prises en charge que pour les volumes attachés à instances à la demande. Vous ne pouvez pas baliser les volumes attachés à instances Spot.

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, consultez Exemple : Baliser des ressources.

Pour accorder à un utilisateur l’autorisation de baliser les ressources

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

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

  • L’action ec2:RequestSpotFleet. Celle-ci accorde à l’utilisateur l’autorisation de créer une demande de parc d’instances Spot.

  • Pour Resource, vous devez spécifier "*". Cela permet aux utilisateurs de baliser tous les types de ressources.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "TagSpotFleetRequest", "Effect": "Allow", "Action": [ "ec2:CreateTags", "ec2:RequestSpotFleet" ], "Resource": "*" } ] }
Important

Actuellement, nous ne prenons pas en charge les autorisations de niveau ressource pour la ressource spot-fleet-request. Si vous spécifiez spot-fleet-request en tant que ressource, vous recevrez une exception de non-autorisation lorsque vous tenterez de baliser le parc. L’exemple suivant illustre comment ne pas définir la stratégie.

{ "Effect": "Allow", "Action": [ "ec2:CreateTags", "ec2:RequestSpotFleet" ], "Resource": "arn:aws:ec2:us-east-1:111122223333:spot-fleet-request/*" }

Pour activer l’accès, ajoutez des autorisations à vos utilisateurs, groupes ou rôles :

Étiqueter un nouveau parc d’instances Spot

Pour étiqueter une nouvelle demande de parc d’instances Spot à l’aide de la console
  1. Suivez la procédure Création d’une demande de parc d’instances Spot à l’aide des paramètres définis (console).

  2. Pour ajouter une balise, développez Additional configurations (Configurations supplémentaires), choisissez Add new tag (Ajouter une nouvelle balise), puis entrez la clé et la valeur de la balise. Répétez l’opération pour chaque balise.

    Pour chaque étiquette, vous pouvez étiqueter la demande de parc d’instances Spot et les instances avec la même étiquette. Pour baliser les deux, assurez-vous que les balises d’instance et les balises de parc sont sélectionnées. Pour étiqueter uniquement la demande de parc d’instances Spot, désactivez les étiquettes d’instance. Pour balisées uniquement les instances lancées par le parc, désactivez les balises de parc.

  3. Remplissez les champs requis pour créer une demande de parc d’instances Spot, puis choisissez Lancer. Pour plus d’informations, consultez Création d’une demande de parc d’instances Spot à l’aide des paramètres définis (console).

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

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

  • Spécifiez les étiquettes pour la demande de parc d’instances Spot dans SpotFleetRequestConfig.

  • Pour ResourceType, spécifiez spot-fleet-request. Si vous indiquez une autre valeur, la demande de flotte échouera.

  • Pour Tags, spécifiez la paire clé-valeur. Vous pouvez définir plusieurs paires clé-valeur.

Dans l’exemple suivant, la demande de parc d’instances Spot est étiquetée par deux étiquettes : Key=Environment et Value=Production, ainsi que Key=Cost-Center et Value=123.

{ "SpotFleetRequestConfig": { "AllocationStrategy": "priceCapacityOptimized", "ExcessCapacityTerminationPolicy": "default", "IamFleetRole": "arn:aws:iam::111122223333:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-0123456789EXAMPLE", "InstanceType": "c4.large" } ], "SpotPrice": "5", "TargetCapacity": 2, "TerminateInstancesWithExpiration": true, "Type": "maintain", "ReplaceUnhealthyInstances": true, "InstanceInterruptionBehavior": "terminate", "InstancePoolsToUseCount": 1, "TagSpecifications": [ { "ResourceType": "spot-fleet-request", "Tags": [ { "Key": "Environment", "Value":"Production" }, { "Key": "Cost-Center", "Value":"123" } ] } ] } }

Étiqueter un nouveau parc d’instances Spot et les instances et volumes qu’il lance

Pour étiqueter une nouvelle demande Spot Fleet ainsi que les instances et volumes qu'elle lance à l'aide du AWS CLI

Pour étiqueter une demande de parc d’instances Spot lors de sa création et pour étiqueter les instances et les volumes lorsqu’ils sont lancés par la flotte, configurez la demande de parc d’instances Spot comme suit :

Étiquettes de demande de parc d’instances Spot
  • Spécifiez les étiquettes pour la demande de parc d’instances Spot dans SpotFleetRequestConfig.

  • Pour ResourceType, spécifiez spot-fleet-request. Si vous indiquez une autre valeur, la demande de flotte échouera.

  • Pour Tags, spécifiez la paire clé-valeur. Vous pouvez définir plusieurs paires clé-valeur.

Balises d’instance :
  • Spécifiez les balises des instances dans LaunchSpecifications.

  • Pour ResourceType, spécifiez instance. Si vous indiquez une autre valeur, la demande de flotte échouera.

  • Pour Tags, spécifiez la paire clé-valeur. Vous pouvez définir plusieurs paires clé-valeur.

    Vous pouvez également spécifier les étiquettes de l’instance dans le modèle de lancement référencé dans la demande de parc d’instances Spot.

Balises de volume :
  • Spécifiez les étiquettes des volumes dans le modèle de lancement référencé dans la demande de parc d’instances Spot. Le balisage de volume dans LaunchSpecifications n’est pas pris en charge.

Dans l’exemple suivant, la demande de parc d’instances Spot est étiquetée par deux étiquettes : Key=Environment et Value=Production, ainsi que Key=Cost-Center et Value=123. Les instances qui sont lancées par la flotte sont identifiées avec une étiquette (qui est la même que l’une des étiquettes de la demande de parc d’instances Spot ) : Key=Cost-Center et Value=123.

{ "SpotFleetRequestConfig": { "AllocationStrategy": "priceCapacityOptimized", "ExcessCapacityTerminationPolicy": "default", "IamFleetRole": "arn:aws:iam::111122223333:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-0123456789EXAMPLE", "InstanceType": "c4.large", "TagSpecifications": [ { "ResourceType": "instance", "Tags": [ { "Key": "Cost-Center", "Value": "123" } ] } ] } ], "SpotPrice": "5", "TargetCapacity": 2, "TerminateInstancesWithExpiration": true, "Type": "maintain", "ReplaceUnhealthyInstances": true, "InstanceInterruptionBehavior": "terminate", "InstancePoolsToUseCount": 1, "TagSpecifications": [ { "ResourceType": "spot-fleet-request", "Tags": [ { "Key": "Environment", "Value":"Production" }, { "Key": "Cost-Center", "Value":"123" } ] } ] } }
Pour étiqueter les instances lancées par un parc de spots à l'aide du AWS CLI

Pour étiqueter les instances lorsqu’elles sont lancées par la flotte, vous pouvez spécifier les étiquettes dans le modèle de lancement référencé dans la demande de parc d’instances Spot ou dans la configuration de la demande de parc d’instances Spot comme suit :

  • Spécifiez les balises des instances dans LaunchSpecifications.

  • Pour ResourceType, spécifiez instance. Si vous indiquez une autre valeur, la demande de flotte échouera.

  • Pour Tags, spécifiez la paire clé-valeur. Vous pouvez définir plusieurs paires clé-valeur.

Dans l’exemple suivant, les instances lancées par la flotte sont marquées avec une balise : Key=Cost-Center et Value=123.

{ "SpotFleetRequestConfig": { "AllocationStrategy": "priceCapacityOptimized", "ExcessCapacityTerminationPolicy": "default", "IamFleetRole": "arn:aws:iam::111122223333:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-0123456789EXAMPLE", "InstanceType": "c4.large", "TagSpecifications": [ { "ResourceType": "instance", "Tags": [ { "Key": "Cost-Center", "Value": "123" } ] } ] } ], "SpotPrice": "5", "TargetCapacity": 2, "TerminateInstancesWithExpiration": true, "Type": "maintain", "ReplaceUnhealthyInstances": true, "InstanceInterruptionBehavior": "terminate", "InstancePoolsToUseCount": 1 } }
Pour étiqueter les volumes attachés à des instances à la demande lancées par un parc d’instances Spot en utilisant la AWS CLI

Pour étiqueter des volumes lorsqu’ils sont créés par la flotte, spécifiez les étiquettes dans le modèle de lancement référencé dans la demande de parc d’instances Spot.

Note

Les balises de volume ne sont prises en charge que pour les volumes attachés à instances à la demande. Vous ne pouvez pas baliser les volumes attachés à instances Spot.

Le balisage de volume dans LaunchSpecifications n’est pas pris en charge.

Étiqueter un parc d’instances Spot existant

Pour étiqueter une demande de parc d’instances Spot existante à l’aide de la console

Après avoir créé une demande de parc d’instances Spot , vous pouvez ajouter des étiquettes à la demande de flotte à 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, sélectionnez Demandes Spot.

  3. Sélectionnez votre demande de parc d’instances Spot.

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

Pour étiqueter une demande Spot Fleet existante à l'aide du AWS CLI

Utilisez la commande create-tags pour baliser les ressources existantes. Dans l’exemple suivant, la demande de parc d’instances Spot existante est étiquetée avec Key=purpose et Value=test.

aws ec2 create-tags \ --resources sfr-11112222-3333-4444-5555-66666EXAMPLE \ --tags Key=purpose,Value=test

Affichez les étiquettes de demande de parc d’instances Spot

Pour afficher les étiquettes d’une demande de parc d’instances Spot à 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, sélectionnez Demandes Spot.

  3. Sélectionnez votre demande de parc d’instances Spot et sélectionnez l’onglet Étiquette.

Pour décrire les étiquettes de demande de parc d’instances Spot

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

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

Vous pouvez également afficher les étiquettes d’une demande de parc d’instances Spot en décrivant la demande de parc d’instances Spot .

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

aws ec2 describe-spot-fleet-requests \ --spot-fleet-request-ids sfr-11112222-3333-4444-5555-66666EXAMPLE
{ "SpotFleetRequestConfigs": [ { "ActivityStatus": "fulfilled", "CreateTime": "2020-02-13T02:49:19.709Z", "SpotFleetRequestConfig": { "AllocationStrategy": "capacityOptimized", "OnDemandAllocationStrategy": "lowestPrice", "ExcessCapacityTerminationPolicy": "Default", "FulfilledCapacity": 2.0, "OnDemandFulfilledCapacity": 0.0, "IamFleetRole": "arn:aws:iam::111122223333:role/aws-ec2-spot-fleet-tagging-role", "LaunchSpecifications": [ { "ImageId": "ami-0123456789EXAMPLE", "InstanceType": "c4.large" } ], "TargetCapacity": 2, "OnDemandTargetCapacity": 0, "Type": "maintain", "ReplaceUnhealthyInstances": false, "InstanceInterruptionBehavior": "terminate" }, "SpotFleetRequestId": "sfr-11112222-3333-4444-5555-66666EXAMPLE", "SpotFleetRequestState": "active", "Tags": [ { "Key": "Environment", "Value": "Production" }, { "Key": "Another key", "Value": "Another value" } ] } ] }

Décrire votre parc d’instances Spot

Le parc d’instances Spot lance des instances Spot lorsque votre prix maximum dépasse le prix Spot et que la capacité est disponible. Les instances Spot s’exécutent jusqu’à ce qu’elles soient interrompues ou que vous les résiliiez.

Pour décrire votre parc d’instances Spot (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.

  3. Sélectionnez votre demande de parc d’instances Spot. Pour afficher les détails de la configuration, choisissez Description.

  4. Pour répertorier les instances Spot du parc d’instances Spot, choisissezInstances.

  5. Pour afficher l’historique du parc d’instances Spot, choisissez Historique.

Pour décrire votre parc d’instances Spot (AWS CLI)

Utilisez la describe-spot-fleet-requestscommande pour décrire vos demandes de parc Spot.

aws ec2 describe-spot-fleet-requests

Utilisez la describe-spot-fleet-instancescommande pour décrire les instances Spot pour le parc Spot spécifié.

aws ec2 describe-spot-fleet-instances \ --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE

Utilisez la commande describe-spot-fleet-request-history pour décrire l'historique de la demande Spot Fleet spécifiée.

aws ec2 describe-spot-fleet-request-history \ --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ --start-time 2015-05-18T00:00:00Z

Modifier une demande de parc d’instances Spot

Vous pouvez modifier une demande de parc d’instances Spot active pour effectuer les tâches suivantes :

  • Augmenter la capacité cible et la partie à la demande

  • Diminuer la capacité cible et la partie à la demande

Note

Vous ne pouvez pas modifier une demande unique de parc d’instances Spot . Vous pouvez uniquement modifier une demande de parc d’instances Spot si vous avez sélectionné Maintenir la capacité cible au moment de la création de la demande de parc d’instances Spot.

Lorsque vous augmentez la capacité cible, le parc d’instances Spot lance des instances Spot supplémentaires. Lorsque vous augmentez la part à la demande, le parc d’instances Spot lance des instances à la demande supplémentaires.

Lorsque vous augmentez la capacité cible, le parc d'instances ponctuelles lance les instances ponctuelles supplémentaires conformément à la stratégie d'allocation pour sa demande de parc d'instances ponctuelles.

Lorsque vous diminuez la capacité cible, le parc d’instances Spot annule les demandes ouvertes qui dépassent la nouvelle capacité cible. Vous pouvez demander à ce que le parc d’instances Spot résilie les instances Spot jusqu’à ce que la taille de la flotte atteigne la nouvelle capacité cible. Si la politique d’allocation sélectionnée est diversified, le parc d’instances Spot résilie les instances dans les groupes. Vous pouvez aussi demander à ce que le parc d’instances Spot conserve la taille actuelle de la flotte, mais sans remplacer les instances Spot interrompues ni les instances que vous résiliez manuellement.

Lorsqu’un parc d’instances Spot résilie une instance du fait de la diminution de la capacité cible, l’instance reçoit un avis d’interruption d’instance Spot.

Pour modifier une demande de parc d’instances Spot (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.

  3. Sélectionnez votre demande de parc d’instances Spot.

  4. Choisissez Actions, Modify target capacity (Modifier la capacité cible).

  5. Dans Modify target capacity (Modifier la capacité cible), effectuez les opérations suivantes :

    1. Entrez la nouvelle capacité cible et la partie à la demande.

    2. (Facultatif) Si vous diminuez la capacité cible, mais que vous souhaitez conserver la taille actuelle du parc, décochez la case Terminate instances (Résilier les instances).

    3. Choisissez Submit.

Pour modifier une demande de parc Spot à l'aide du AWS CLI

Utilisez la modify-spot-fleet-requestcommande pour mettre à jour la capacité cible de la demande Spot Fleet spécifiée.

aws ec2 modify-spot-fleet-request \ --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ --target-capacity 20

Vous pouvez modifier la commande précédente comme suit de façon à diminuer la capacité cible de la flotte Spot spécifié sans que cela n’ait pour effet de résilier les instances Spot.

aws ec2 modify-spot-fleet-request \ --spot-fleet-request-id sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ --target-capacity 10 \ --excess-capacity-termination-policy NoTermination

Annulation d’une demande de parc d’instances Spot

Si vous n’avez plus besoin d’instances Spot, vous pouvez annuler la demande de parc d’instances Spot. Après l’annulation d’une demande de flotte, toutes les demandes Spot associées à la flotte sont également annulées, de sorte qu’aucune nouvelle instance Spot n’est lancée.

Lorsque vous annulez une demande de parc d’instances Spot, vous devez également spécifier si vous voulez résilier toutes ses instances. Cette action inclut les instances à la demande et les instances Spot.

Si vous spécifiez que les instances doivent être résiliées lorsque la demande de flotte est annulée, celle-ci entre dans l’état cancelled_terminating. Sinon, la demande de flotte passe à l’état cancelled_running et les instances continuent à être exécutées jusqu’à ce qu’elles soient interrompues ou jusqu’à ce que vous les mettiez hors service manuellement.

Restrictions
  • Vous pouvez supprimer jusqu'à 100 flottes en une seule demande. Si vous dépassez le nombre spécifié, aucune flotte n'est supprimée.

Pour annuler une demande de parc d’instances Spot (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.

  3. Sélectionnez votre demande de parc d’instances Spot.

  4. Choisissez Actions, Annuler la demande.

  5. Dans la boîte de dialogue Annuler la demande de flotte, procédez comme suit :

    1. Pour résilier les instances associées en même temps que vous annulez la demande de parc d’instances Spot, ne décochez pas la case Résilier les instances. Pour annuler la demande de parc d’instances Spot sans résilier les instances associées, décochez la case Résilier les instances.

    2. Choisissez Confirmer.

Pour annuler une demande Spot Fleet et mettre fin à ses instances à l'aide du AWS CLI

Utilisez la cancel-spot-fleet-requestscommande pour annuler la demande de parc Spot spécifiée et mettre fin à ses instances à la demande et à ses instances ponctuelles.

aws ec2 cancel-spot-fleet-requests \ --spot-fleet-request-ids sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ --terminate-instances

Exemple de sortie

{ "SuccessfulFleetRequests": [ { "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", "CurrentSpotFleetRequestState": "cancelled_terminating", "PreviousSpotFleetRequestState": "active" } ], "UnsuccessfulFleetRequests": [] }
Pour annuler une demande de parc d’instances Spot sans résilier ses instances à l’aide de la commande AWS CLI

Vous pouvez modifier la commande précédente en utilisant le paramètre --no-terminate-instances pour annuler la demande de parc d’instances Spot spécifiée sans résilier ses instances à la demande et ses instances Spot.

aws ec2 cancel-spot-fleet-requests \ --spot-fleet-request-ids sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \ --no-terminate-instances

Exemple de sortie

{ "SuccessfulFleetRequests": [ { "SpotFleetRequestId": "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", "CurrentSpotFleetRequestState": "cancelled_running", "PreviousSpotFleetRequestState": "active" } ], "UnsuccessfulFleetRequests": [] }