Amazon Elastic Compute Cloud
Guide de l'utilisateur pour les instances Linux

Gestion d'un Flotte EC2

Pour utiliser un Flotte EC2, vous créez une demande comprenant la capacité cible totale, une capacité à la demande, une capacité d'instances Spot, une ou plusieurs spécifications de lancement pour les instances et le prix maximum que vous êtes prêt à payer. La demande de parc d'instances doit inclure un modèle de lancement qui définit les informations dont le parc 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é. Vous pouvez spécifier des remplacements de spécification de lancement pour le type d'instance, le sous-réseau, la zone de disponibilité et le prix maximum que vous êtes prêt à payer, et vous pouvez affecter une capacité pondérée à chaque remplacement de spécification de lancement.

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

Une demande de Flotte EC2 reste active jusqu'à ce qu'elle arrive à expiration ou que vous la supprimiez. Lorsque vous supprimez un parc d'instances, vous pouvez spécifier si la suppression met hors service les instances dans le parc d'instances.

États d'une demande de Flotte EC2

Une demande de Flotte EC2 peut avoir l'un des états suivants :

  • submitted – La demande de Flotte EC2 est en cours d'évaluation et Amazon EC2 se prépare à lancer le nombre cible d'instances, qui peuvent inclure des Instances à la demande, des Instances Spot ou les deux.

  • active – La demande de Flotte EC2 a été validée et Amazon EC2 tente de conserver le nombre cible d'instances en cours d'exécution. La demande conserve cet état jusqu'à ce qu'elle soit modifiée ou supprimée.

  • modifying – La demande de Flotte EC2 est en cours de modification. La demande conserve cet état jusqu'à ce que la modification soit totalement traitée ou que la demande soit supprimée. Seule une demande de type maintain peut être modifiée. Cet état ne s'applique pas aux autres types de demandes.

  • deleted_running – La demande de Flotte EC2 est supprimée et ne lance pas d'instances supplémentaires. Ses instances 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.

  • deleted_terminating – La demande de Flotte EC2 est supprimée et ses instances sont résiliées. La demande conserve cet état jusqu'à ce que toutes les instances soient mises hors service.

  • deleted – Le Flotte EC2 est supprimé et n'a aucune instance en cours d'exécution. La demande est supprimée deux jours après la mise hors service de ses instances.

L'illustration suivante représente les transitions entre les états de la demande de Flotte EC2. Si vous dépassez les limites de votre parc d'instances, la demande est immédiatement supprimée.


					États d'une demande de Flotte EC2

Flotte EC2 Prérequis

Pour créer un Flotte EC2, les prérequis suivants doivent être en place.

Modèle de lancement

Un modèle de lancement inclut des informations sur les instances à lancer, telles que le type d'instance, la zone de disponibilité et le prix maximum que vous êtes disposé à payer. Pour plus d'informations, consultez Lancement d'une instance à partir d'un modèle de lancement.

Rôle lié à un service pour le Flotte EC2

Le rôle AWSServiceRoleForEC2Fleet accorde au Flotte EC2 l'autorisation de demander, lancer, résilier et baliser des instances en votre nom. Amazon EC2 utilise ce rôle lié à un service pour exécuter les actions suivantes :

  • ec2:RequestSpotInstances – Demander des Instances Spot.

  • ec2:TerminateInstances – Résilier des Instances Spot.

  • ec2:DescribeImages – Décrire des AMI (Amazon Machine Image) pour les Instances Spot.

  • ec2:DescribeInstanceStatus – Décrire le statut des Instances Spot.

  • ec2:DescribeSubnets – Décrire les sous-réseaux pour les Instances Spot.

  • ec2:CreateTags – Ajouter des balises système aux Instances Spot.

Assurez-vous que ce rôle existe avant d'utiliser l'AWS CLI ou une API pour créer un Flotte EC2. Pour créer le rôle, utilisez la console IAM comme suit.

Pour créer le rôle AWSServiceRoleForEC2Fleet pour Flotte EC2

  1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le volet de navigation, choisissez Rôles, puis Créer un rôle.

  3. Pour Select type of trusted entity (Sélectionner le type d'entité de confiance), choisissez Service AWS.

  4. Pour Choisir le service qui utilisera ce rôle, choisissez EC2 - Fleet (EC2 - Flotte), puis choisissez Suivant : Autorisations, Suivant : Balises et Suivant : Vérification.

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

Si vous n'avez plus besoin d'utiliser le Flotte EC2, nous vous recommandons de supprimer le rôle AWSServiceRoleForEC2Fleet. Après la suppression de ce rôle de votre compte, vous pouvez créer de nouveau le rôle si vous créez un autre parc d'instances.

Pour plus d'informations, consultez Utilisation des rôles liés à un service dans le IAM Guide de l'utilisateur.

Octroi d'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 Flotte EC2 et que vous utilisez la clé principale client gérée (CMK) pour le chiffrement, vous devez autoriser le rôle AWSServiceRoleForEC2Fleet à utiliser la CMK afin que Amazon EC2 puisse lancer les 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 stratégies de clé. Pour de plus amples informations, veuillez consulter Utilisation des autorisations et Utilisation des stratégies de clé dans AWS KMS dans le AWS Key Management Service Developer Guide.

Pour autoriser le rôle AWSServiceRoleForEC2Fleet à utiliser la CMK

  • Utilisez la commande create-grant pour ajouter un octroi à la CMK et spécifier le mandataire (le rôle lié à un service AWSServiceRoleForEC2Fleet) qui reçoit l'autorisation d'effectuer les opérations autorisées par l'octroi. La CMK est spécifiée par le paramètre key-id et l'ARN de la CMK. Le mandataire est spécifié par le paramètre grantee-principal et l'ARN du rôle lié à un service AWSServiceRoleForEC2Fleet.

    L'exemple suivant est mis en forme afin d'en faciliter la lecture.

    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/AWSServiceRoleForEC2Fleet --operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"

Utilisateurs de Flotte EC2 et d'IAM

Si vos utilisateurs IAM sont appelés à créer ou à gérer un Flotte EC2, veillez à leur accorder les autorisations nécessaires comme suit.

Pour accorder à un utilisateur IAM des autorisations pour un Flotte EC2

  1. Ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le panneau de navigation, choisissez Policies.

  3. Choisissez Créer une stratégie.

  4. Sur la page Créer une stratégie, choisissez l'onglet JSON, remplacez le texte par le suivant, puis choisissez Examiner une stratégie.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:ListRoles", "iam:PassRole", "iam:ListInstanceProfiles" ], "Resource": "*" } ] }

    La fonction ec2:* accorde à un utilisateur IAM l'autorisation d'appeler toutes les actions d'API Amazon EC2. Pour limiter les actions API Amazon EC2 susceptibles d'être effectuées par l'utilisateur, spécifiez celles qui sont autorisées.

    Un utilisateur IAM doit être autorisé à appeler l'action iam:ListRoles pour énumérer les rôles IAM existants, l'action iam:PassRole pour spécifier le rôle de Flotte EC2 et l'action iam:ListInstanceProfiles pour énumérer les profils d'instance existants.

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

    • iam:AddRoleToInstanceProfile

    • iam:AttachRolePolicy

    • iam:CreateInstanceProfile

    • iam:CreateRole

    • iam:GetRole

    • iam:ListPolicies

  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. Dans le panneau de navigation, choisissez Utilisateurs et sélectionnez l'utilisateur.

  7. Sous l'onglet Autorisations, choisissez Ajouter des autorisations.

  8. Choisissez Attacher directement les stratégies existantes. Sélectionnez la stratégie que vous avez créée précédemment, puis choisissez Suivant : Vérification.

  9. Choisissez Add permissions.

Vérifications de l'état Flotte EC2

Le Flotte EC2 vérifie l'état de santé des instances du parc d'instances toutes les deux minutes. Le statut de l'état d'une instance est healthy ou unhealthy. Le parc d'instances détermine l'état de santé d'une instance à l'aide des contrôles d'état fournis par Amazon EC2. Si le contrôle du statut de l'instance ou de celui du système est impaired pendant trois vérifications de l'état consécutives, le statut de l'état de l'instance est unhealthy. Sinon, le statut d'état est healthy. Pour plus d'informations, consultez Contrôles de statut pour vos instances.

Vous pouvez configurer votre Flotte EC2 pour qu'il remplace les instances non saines. Après activation du remplacement lié à la vérification de l'état, une instance est remplacée lorsque son statut d'état est unhealthy. Notez que la taille du parc d'instances peut être inférieure à sa capacité cible pendant quelques minutes pendant le remplacement d'une instance non saine.

Prérequis

  • Le remplacement lié à la vérification de l'état de santé est pris en charge uniquement avec les Flottes EC2 qui maintiennent une capacité cible, pas avec les parcs d'instances uniques.

  • Vous pouvez configurer votre Flotte EC2 pour qu'il remplace les instances non saines au moment de sa création uniquement.

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

Génération d'un fichier de configuration JSON de Flotte EC2

Pour créer une Flotte EC2, il vous suffit de spécifier le modèle de lancement, la capacité cible totale et si l'option d'achat par défaut est à la demande ou Spot. Si vous ne spécifiez pas un paramètre, le parc d'instances utilise la valeur par défaut. Pour afficher la liste complète des paramètres de configuration du parc d'instances, vous pouvez générer un fichier JSON comme suit.

Pour générer un fichier JSON avec tous les paramètres de Flotte EC2 possibles à l'aide de la ligne de commande

  • Utilisez la commande create-fleet (AWS CLI) et le paramètre --generate-cli-skeleton pour générer un fichier JSON de Flotte EC2 :

    aws ec2 create-fleet --generate-cli-skeleton

    Les paramètres de Flotte EC2 suivants sont disponibles :

    { "DryRun": true, "ClientToken": "", "SpotOptions": { "AllocationStrategy": "lowestPrice", "InstanceInterruptionBehavior": "hibernate", "InstancePoolsToUseCount": 0 "SingleInstanceType": true, "SingleAvailabilityZone": true, "MaxTotalPrice": 0 "MinTargetCapacity": 0 }, "OnDemandOptions": { "AllocationStrategy": "prioritized" "SingleInstanceType": true, "SingleAvailabilityZone": true, "MaxTotalPrice": 0 "MinTargetCapacity": 0 }, "ExcessCapacityTerminationPolicy": "termination", "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateId": "", "LaunchTemplateName": "", "Version": "" }, "Overrides": [ { "InstanceType": "t2.micro", "MaxPrice": "", "SubnetId": "", "AvailabilityZone": "", "WeightedCapacity": null, "Priority": null "Placement": { "AvailabilityZone": "", "Affinity": "", "GroupName": "", "PartitionNumber": 0, "HostId": "", "Tenancy": "dedicated", "SpreadDomain": "" } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 0, "OnDemandTargetCapacity": 0, "SpotTargetCapacity": 0, "DefaultTargetCapacityType": "spot" }, "TerminateInstancesWithExpiration": true, "Type": "maintain", "ValidFrom": "1970-01-01T00:00:00", "ValidUntil": "1970-01-01T00:00:00", "ReplaceUnhealthyInstances": true, "TagSpecifications": [ { "ResourceType": "fleet", "Tags": [ { "Key": "", "Value": "" } ] } ] }

Référence du fichier de configuration JSON de Flotte EC2

Note

Utilisez des minuscules pour toutes les valeurs de paramètres. Sinon, vous obtenez une erreur quand Amazon EC2 utilise le fichier JSON pour lancer le Flotte EC2.

AllocationStrategy (pour SpotOptions)

(Facultatif) Indique comment allouer la capacité cible des instance Spot sur l'ensemble des groupes d'instance Spot spécifiés par le Flotte EC2. Les valeurs valides sont lowestPrice et diversified. La valeur par défaut est lowestPrice. Spécifiez la stratégie d'allocation qui répond à vos besoins. Pour plus d'informations, consultez Stratégies d'allocation pour les Instances Spot.

InstanceInterruptionBehavior

(Facultatif) Comportement lorsqu'une instance Spot est interrompue. Les valeurs valides sont hibernate, stop et terminate. Par défaut, le service Spot met hors service les Instances Spot lorsqu'elles sont interrompues. Si le type de parc est maintain, vous pouvez demander que le service Spot mette en veille prolongée ou arrête les Instances Spot lorsqu'elles sont interrompues.

InstancePoolsToUseCount

Nombre de groupes d'instances Spot auxquels allouer votre capacité Spot cible. Valide uniquement lorsque le paramètre Spot AllocationStrategy a pour valeur lowestPrice. Le Flotte EC2 sélectionne les groupes d'instances Spot les moins chers et alloue votre capacité Spot cible en la répartissant équitablement entre le nombre de groupes d'instances Spot que vous spécifiez.

SingleInstanceType

Indique que le parc utilise un type d'instance unique pour lancer toutes les Instances Spot dans le parc.

SingleAvailabilityZone

Indique que le parc lance toutes les Instances Spot dans une seule zone de disponibilité.

MaxTotalPrice

Montant maximum par heure pour Instances Spot que vous êtes prêt à payer.

MinTargetCapacity

Capacité cible minimum pour Instances Spot dans le parc. Si la capacité cible minimum n'est pas atteinte, le parc ne lance aucune instance.

AllocationStrategy (pour OnDemandOptions)

Ordre des remplacements du modèle de lancement à utiliser lors du traitement de l'affectation de capacité à la demande. Si vous spécifiez lowestPrice, le Flotte EC2 utilise le prix pour déterminer l'ordre, en lançant le prix le plus bas en premier. Si vous spécifiez la valeur prioritized, le Flotte EC2 utilise la priorité que vous avez affectée à chaque remplacement du modèle de lancement, en lançant la priorité la plus élevée en premier. Si vous ne spécifiez aucune valeur, le Flotte EC2 utilise la valeur lowestPrice par défaut.

SingleInstanceType

Indique que le parc utilise un type d'instance unique pour lancer toutes les instances à la demande dans le parc.

SingleAvailabilityZone

Indique que le parc lance toutes les instances à la demande dans une seule zone de disponibilité.

MaxTotalPrice

Montant maximum par heure pour les instances à la demande que vous êtes prêt à payer.

MinTargetCapacity

Capacité cible minimum pour les instances à la demande dans le parc. Si la capacité cible minimum n'est pas atteinte, le parc ne lance aucune instance.

ExcessCapacityTerminationPolicy

(Facultatif) Indique si les instances en cours d'exécution doivent être résiliées si la capacité cible totale du Flotte EC2 est définie sous la taille actuelle du Flotte EC2. Les valeurs valides sont no-termination et termination.

LaunchTemplateId

ID du modèle de lancement à utiliser. Vous devez spécifier l'ID ou le nom du modèle de lancement. Le modèle de lancement doit spécifier une Amazon Machine Image (AMI). Pour plus d'informations sur la création de modèles de lancement, consultez Lancement d'une instance à partir d'un modèle de lancement.

LaunchTemplateName

Nom du modèle de lancement à utiliser. Vous devez spécifier l'ID ou le nom du modèle de lancement. Le modèle de lancement doit spécifier une Amazon Machine Image (AMI). Pour plus d'informations, consultez Lancement d'une instance à partir d'un modèle de lancement.

Version

Numéro de version du modèle de lancement.

InstanceType

(Facultatif) Type d'instance. Cette valeur, si elle est entrée, remplace le modèle de lancement. Les types d'instance doivent avoir les spécifications matérielles minimum dont vous avez besoin (vCPU, mémoire ou stockage).

MaxPrice

(Facultatif) Prix maximum par unité-heure que vous êtes disposé à payer pour une instance Spot. Cette valeur, si elle est entrée, remplace le modèle de lancement. Vous pouvez utiliser le prix maximum par défaut (prix à la demande) ou indiquer le prix maximum que vous êtes disposé à payer. Vos Instances Spot ne sont pas lancées si votre prix maximum est inférieur au prix spot pour les types d'instance que vous avez spécifiés.

SubnetId

(Facultatif) ID du sous-réseau dans lequel lancer les instances. Cette valeur, si elle est entrée, remplace le modèle de lancement.

Pour créer un nouveau VPC, accédez à la console Amazon VPC. Lorsque vous avez terminé, revenez dans le fichier JSON et entrez le nouvel ID de sous-réseau.

AvailabilityZone

(Facultatif) Zone de disponibilité dans laquelle lancer les instances. Le réglage par défaut consiste à laisser AWS choisir les zones pour vos instances. Si vous préférez, vous pouvez spécifier des zones spécifiques. Cette valeur, si elle est entrée, remplace le modèle de lancement.

Spécifiez une ou plusieurs zones de disponibilité. Si vous avez plusieurs sous-réseaux dans une zone, spécifiez le sous-réseau approprié. Pour ajouter des sous-réseaux, accédez à la console Amazon VPC. Lorsque vous avez terminé, revenez dans le fichier JSON et entrez le nouvel ID de sous-réseau.

WeightedCapacity

(Facultatif) Nombre d'unités fournies par le type d'instance spécifié. Cette valeur, si elle est entrée, remplace le modèle de lancement.

Priority

Priorité du remplacement du modèle de lancement. Si AllocationStrategy a pour valeur prioritized, le Flotte EC2 utilise la priorité pour déterminer quel remplacement du modèle de lancement utiliser en premier afin de traiter l'affectation de capacité à la demande. La priorité la plus élevée est lancée en premier. Les valeurs valides sont les nombres entiers à partir de 0. Plus le nombre est bas, plus la priorité est élevée. Si aucun nombre n'est défini, le remplacement a la priorité la plus faible.

TotalTargetCapacity

Nombre d'instances à lancer. Vous pouvez choisir des instances ou des caractéristiques de performances importantes pour la charge de travail de votre application, par exemple les vCPU, la mémoire ou le stockage. Si le type de demande est maintain, vous pouvez spécifier une capacité cible de 0 et ajouter une capacité ultérieurement.

OnDemandTargetCapacity

(Facultatif) Nombre d'Instances à la demande à lancer. Ce nombre doit être inférieur à TotalTargetCapacity.

SpotTargetCapacity

(Facultatif) Nombre d'Instances Spot à lancer. Ce nombre doit être inférieur à TotalTargetCapacity.

DefaultTargetCapacityType

Si la valeur de TotalTargetCapacity est supérieure aux valeurs combinées pour OnDemandTargetCapacity et SpotTargetCapacity, la différence est lancée sous forme d'option d'achat d'instance spécifié ici. Les valeurs valides sont on-demand ou spot.

TerminateInstancesWithExpiration

(Facultatif) Par défaut, Amazon EC2 résilie vos instances à l'expiration de la demande de Flotte EC2. La valeur par défaut est true. Pour les maintenir actives après l'expiration de votre demande, n'entrez pas de valeur pour ce paramètre.

Type

(Facultatif) Indique si le Flotte EC2 envoie une demande unique synchrone pour la capacité souhaitée (instant) ou une demande unique asynchrone pour la capacité souhaitée, mais sans tenter de maintenir la capacité ni d'envoyer des demandes dans d'autres groupes de capacité si la capacité n'est pas disponible (request), ou envoie une demande asynchrone pour la capacité souhaitée et continue de maintenir la capacité souhaitée en réapprovisionnant les Instances Spot interrompues (maintain). Les valeurs valides sont instant, request et maintain. La valeur par défaut est maintain. Pour plus d'informations, consultez Types de demande de Flotte EC2.

ValidFrom

(Facultatif) Pour créer une demande valide uniquement au cours d'une période spécifique, entrez une date de début.

ValidUntil

(Facultatif) Pour créer une demande valide uniquement au cours d'une période spécifique, entrez une date de fin.

ReplaceUnhealthyInstances

(Facultatif) Pour remplacer les instances non saines dans un Flotte EC2 configuré sur maintain, le parc d'instances, entrez true. Sinon, laissez ce paramètre vide.

TagSpecifications

(Facultatif) Paire clé-valeur pour le balisage de la demande Flotte EC2 à sa création. La valeur pour ResourceType doit être fleet ; sinon, la demande de parc d'instances échoue. Pour baliser les instances au moment du lancement, spécifiez les balises dans le modèle de lancement. Pour obtenir des informations sur le balisage après lancement, consultez Balisage de vos ressources.

Création d'un Flotte EC2

Lorsque vous créez un Flotte EC2, vous devez spécifier un modèle de lancement qui inclut des informations sur les instances à lancer, telles que le type d'instance, la zone de disponibilité et le prix maximum que vous êtes disposé à payer.

Vous pouvez créer un Flotte EC2 incluant plusieurs spécifications de lancement qui remplacent le modèle de lancement. Les spécifications de lancement peuvent varier en terme de type d'instance, zone de disponibilité, sous-réseau ou prix maximum, et elles peuvent inclure une capacité pondérée différente.

Lorsque vous créez un Flotte EC2, utilisez un fichier JSON pour spécifier des informations sur les instances à lancer. Pour plus d'informations, consultez Référence du fichier de configuration JSON de Flotte EC2.

Flottes EC2 peut uniquement être créé à l'aide de l'AWS CLI.

Pour créer un Flotte EC2 (AWS CLI)

  • Utilisez la commande create-fleet (AWS CLI) suivante pour créer un Flotte EC2.

aws ec2 create-fleet --cli-input-json file://file_name.json

Pour accéder à des exemples de fichiers de configuration, consultez Exemples de configuration de Flotte EC2.

Voici un exemple de sortie d'un parc d'instances du type request ou maintain.

{ "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE" }

Voici un exemple de sortie d'un parc d'instances du type instant qui a lancé la capacité cible.

{ "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE", "Errors": [], "Instances": [ { "LaunchTemplateAndOverrides": { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE", "Version": "1" }, "Overrides": { "InstanceType": "c5.large", "AvailabilityZone": "us-east-1a" } }, "Lifecycle": "on-demand", "InstanceIds": [ "i-1234567890abcdef0", "i-9876543210abcdef9" ], "InstanceType": "c5.large", "Platform": null }, { "LaunchTemplateAndOverrides": { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE", "Version": "1" }, "Overrides": { "InstanceType": "c4.large", "AvailabilityZone": "us-east-1a" } }, "Lifecycle": "on-demand", "InstanceIds": [ "i-5678901234abcdef0", "i-5432109876abcdef9" ], "InstanceType": "c4.large", "Platform": null }, ] }

Voici un exemple de sortie d'un parc d'instances du type instant qui a lancé une partie de la capacité cible avec les erreurs liées aux instances qui n'ont pas été lancées.

{ "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE", "Errors": [ { "LaunchTemplateAndOverrides": { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE", "Version": "1" }, "Overrides": { "InstanceType": "c4.xlarge", "AvailabilityZone": "us-east-1a", } }, "Lifecycle": "on-demand", "ErrorCode": "InsufficientInstanceCapacity", "ErrorMessage": "", "InstanceType": "c4.xlarge", "Platform": null }, ], "Instances": [ { "LaunchTemplateAndOverrides": { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE", "Version": "1" }, "Overrides": { "InstanceType": "c5.large", "AvailabilityZone": "us-east-1a" } }, "Lifecycle": "on-demand", "InstanceIds": [ "i-1234567890abcdef0", "i-9876543210abcdef9" ], "InstanceType": "c5.large", "Platform": null }, ] }

Voici un exemple de sortie d'un parc d'instances du type instant qui n'a lancé aucune instance.

{ "FleetId": "fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE", "Errors": [ { "LaunchTemplateAndOverrides": { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE", "Version": "1" }, "Overrides": { "InstanceType": "c4.xlarge", "AvailabilityZone": "us-east-1a", } }, "Lifecycle": "on-demand", "ErrorCode": "InsufficientCapacity", "ErrorMessage": "", "InstanceType": "c4.xlarge", "Platform": null }, { "LaunchTemplateAndOverrides": { "LaunchTemplateSpecification": { "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE", "Version": "1" }, "Overrides": { "InstanceType": "c5.large", "AvailabilityZone": "us-east-1a", } }, "Lifecycle": "on-demand", "ErrorCode": "InsufficientCapacity", "ErrorMessage": "", "InstanceType": "c5.large", "Platform": null }, ], "Instances": [] }

Balisage d'un Flotte EC2

Pour vous aider à classer et à gérer vos demandes de Flotte EC2, vous pouvez les baliser avec des métadonnées personnalisées. Pour plus d'informations, consultez Balisage de vos ressources Amazon EC2.

Vous pouvez affecter une balise à une demande de Flotte EC2 lorsque vous la créez, ou après. Les balises affectées à la demande de parc d'instances ne sont pas affectées aux instances lancées par le parc d'instances.

Pour baliser une nouvelle demande de parc d'instances EC2

Pour baliser une demande de Flotte EC2 lorsque vous la créez, spécifiez la paire clé-valeur dans le fichier JSON utilisé pour créer le parc d'instances. La valeur pour ResourceType doit être fleet. Si vous spécifiez une autre valeur, la demande de parc d'instances échoue.

Pour baliser les instances lancées par un Flotte EC2

Pour baliser des instances lorsqu'elles sont lancées par le parc d'instances, spécifiez les balises dans le modèle de lancement référencé dans la demande de Flotte EC2.

Pour baliser une instance et une demande de Flotte EC2 existantes (AWS CLI)

Utilisez la commande create-tags suivante pour baliser les ressources existantes.

aws ec2 create-tags --resources fleet-12a34b55-67cd-8ef9-ba9b-9208dEXAMPLE i-1234567890abcdef0 --tags Key=purpose,Value=test

Surveillance de votre Flotte EC2

Le Flotte EC2 lance des Instances à la demande lorsque la capacité requise est disponible, et il lance des Instances Spot lorsque votre prix maximum dépasse le prix spot et que la capacité est disponible. Les Instances à la demande s'exécutent jusqu'à ce que vous les résiliiez, et les Instances Spot s'exécutent jusqu'à ce qu'elles soient interrompues ou que vous les résiliiez.

La liste renvoyée des instances en cours d'exécution est actualisée périodiquement et peut ne pas être à jour.

Pour surveiller votre Flotte EC2 (AWS CLI)

Utilisez la commande describe-fleets suivante pour décrire vos Flottes EC2 :

aws ec2 describe-fleets

Voici un exemple de sortie.

{ "Fleets": [ { "Type": "maintain", "FulfilledCapacity": 2.0, "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "Version": "2", "LaunchTemplateId": "lt-07b3bc7625cdab851" } } ], "TerminateInstancesWithExpiration": false, "TargetCapacitySpecification": { "OnDemandTargetCapacity": 0, "SpotTargetCapacity": 2, "TotalTargetCapacity": 2, "DefaultTargetCapacityType": "spot" }, "FulfilledOnDemandCapacity": 0.0, "ActivityStatus": "fulfilled", "FleetId": "fleet-76e13e99-01ef-4bd6-ba9b-9208de883e7f", "ReplaceUnhealthyInstances": false, "SpotOptions": { "InstanceInterruptionBehavior": "terminate", "InstancePoolsToUseCount": 1, "AllocationStrategy": "lowestPrice" }, "FleetState": "active", "ExcessCapacityTerminationPolicy": "termination", "CreateTime": "2018-04-10T16:46:03.000Z" } ] }

Utilisez la commande describe-fleet-instances suivante afin de décrire les instances pour le Flotte EC2 spécifié :

aws ec2 describe-fleet-instances --fleet-id fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
{ "ActiveInstances": [ { "InstanceId": "i-09cd595998cb3765e", "InstanceHealth": "healthy", "InstanceType": "m4.large", "SpotInstanceRequestId": "sir-86k84j6p" }, { "InstanceId": "i-09cf95167ca219f17", "InstanceHealth": "healthy", "InstanceType": "m4.large", "SpotInstanceRequestId": "sir-dvxi7fsm" } ], "FleetId": "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" }

Utilisez la commande describe-fleet-history suivante afin de décrire l'historique du Flotte EC2 spécifié pour la période spécifiée :

aws ec2 describe-fleet-history --fleet-request-id fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --start-time 2018-04-10T00:00:00Z
{ "HistoryRecords": [], "FleetId": "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", "LastEvaluatedTime": "1970-01-01T00:00:00.000Z", "StartTime": "2018-04-09T23:53:20.000Z" }

Modification d'un Flotte EC2

Vous pouvez modifier un Flotte EC2 qui présente l'état submitted ou active. Lorsque vous modifiez un parc d'instances, il prend l'état modifying.

Vous pouvez modifier les paramètres suivants d'un Flotte EC2 :

  • target-capacity-specification – Augmentez ou diminuez la capacité cible pour TotalTargetCapacity, OnDemandTargetCapacity et SpotTargetCapacity.

  • excess-capacity-termination-policy – Indiquez si les instances en cours d'exécution doivent être résiliées si la capacité cible totale du Flotte EC2 est définie sous la taille actuelle du parc d'instances. Les valeurs valides sont no-termination et termination.

Note

Vous pouvez modifier uniquement un Flotte EC2 pour lequel Type=maintain.

Lorsque vous augmentez la capacité cible, la Flotte EC2 lance les instances supplémentaires en fonction de l'option d'achat d'instance spécifiée pour DefaultTargetCapacityType, qui correspond à des Instances à la demande ou à des Instances Spot.

Si le paramètre DefaultTargetCapacityType a pour valeur spot, le Flotte EC2 lance les Instances Spot supplémentaires en fonction de sa stratégie d'allocation. Si la stratégie d'allocation lowestPrice est sélectionnée, le parc d'instances lance les instances du groupe d'instance Spot offrant le tarif le moins élevé de la demande. Si la stratégie d'allocation diversified est sélectionnée, le parc d'instances répartit les instances entre les groupes de la demande.

Lorsque vous diminuez la capacité cible, le Flotte EC2 supprime toutes les demandes ouvertes qui dépassent la nouvelle capacité cible. Vous pouvez demander à ce que le parc d'instances mette hors service les instances jusqu'à ce que la taille du parc atteigne la nouvelle capacité cible. Si la stratégie d'allocation est lowestPrice, le parc d'instances met hors service les instances ayant le prix par unité le plus élevé. En revanche, si la stratégie d'allocation est diversified, le parc d'instances met hors service les instances des divers pools. Vous pouvez aussi demander à ce que le Flotte EC2 conserve sa taille actuelle, mais sans remplacer les Instances Spot interrompues ni les instances que vous résiliez manuellement.

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

Pour modifier un Flotte EC2 (AWS CLI)

Utilisez la commande modify-fleet suivante pour mettre à jour la capacité cible du Flotte EC2 spécifié :

aws ec2 modify-fleet --fleet-id fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --target-capacity-specification TotalTargetCapacity=20

Si vous diminuez la capacité cible, mais que vous souhaitez conserver la taille actuelle du parc d'instances, vous pouvez modifier la commande précédente comme suit :

aws ec2 modify-fleet --fleet-id fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --target-capacity-specification TotalTargetCapacity=10 --excess-capacity-termination-policy no-termination

Suppression d'un Flotte EC2

Si vous n'avez plus besoin d'un Flotte EC2, vous pouvez le supprimer. Après avoir supprimé un parc d'instances, il ne lance pas de nouvelles instances.

Vous devez indiquer si le Flotte EC2 doit mettre hors service ses instances. Si vous spécifiez que les instances doivent être mises hors service lors de la suppression du parc d'instances, ce dernier prend l'état deleted_terminating. Sinon, il passe à l'état deleted_running et les instances continuent à s'exécuter jusqu'à ce qu'elles soient interrompues ou jusqu'à ce que vous les mettiez hors service manuellement.

Pour supprimer un Flotte EC2 (AWS CLI)

Utilisez la commande delete-fleets et le paramètre --terminate-instances pour supprimer le Flotte EC2 spécifié et résilier les instances :

aws ec2 delete-fleets --fleet-ids fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --terminate-instances

Voici un exemple de sortie.

{ "UnsuccessfulFleetDeletions": [], "SuccessfulFleetDeletions": [ { "CurrentFleetState": "deleted_terminating", "PreviousFleetState": "active", "FleetId": "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" } ] }

Vous pouvez modifier la commande précédente avec le paramètre --no-terminate-instances pour supprimer le Flotte EC2 spécifié sans résilier les instances :

aws ec2 delete-fleets --fleet-ids fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE --no-terminate-instances

Voici un exemple de sortie.

{ "UnsuccessfulFleetDeletions": [], "SuccessfulFleetDeletions": [ { "CurrentFleetState": "deleted_running", "PreviousFleetState": "active", "FleetId": "fleet-4b8aaae8-dfb5-436d-a4c6-3dafa4c6b7dcEXAMPLE" } ] }