

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.

# Flotte EC2 et parc d’instances Spot
<a name="Fleets"></a>

La flotte EC2 et le parc d’instances Spot sont conçus pour permettre de lancer une flotte de dizaines, de centaines ou de milliers d’instances Amazon EC2 en une seule opération. Chaque instance d’une flotte est configurée soit par un [modèle de lancement](ec2-launch-templates.md), soit par un ensemble de paramètres de lancement que vous configurez manuellement au moment du lancement.

**Topics**
+ [

## Fonctionnalités et avantages
](#ec2-fleet-features-and-benefits)
+ [

# Quelle est la meilleure méthode de flotte à utiliser ?
](which-fleet-method-to-use.md)
+ [

# Options de configuration pour votre Flotte EC2 ou parc d’instances Spot
](ec2-fleet-configuration-strategies.md)
+ [

# Travailler avec la flotte EC2
](manage-ec2-fleet.md)
+ [

# Travailler avec le parc d’instances Spot
](work-with-spot-fleets.md)
+ [

# Surveillez votre flotte EC2 ou votre parc d’instances Spot
](fleet-monitor.md)
+ [

# Didacticiels relatifs à la flotte EC2
](fleet-tutorials.md)
+ [

# Exemple de configurations CLI pour la flotte EC2
](ec2-fleet-examples.md)
+ [

# Exemples de configurations CLI : Spot Fleet
](spot-fleet-examples.md)
+ [

# Quotas pour les flottes d’instances EC2 et Spot
](fleet-quotas.md)

## Fonctionnalités et avantages
<a name="ec2-fleet-features-and-benefits"></a>

Les flottes offrent les fonctionnalités et avantages suivants, vous permettant de réaliser un maximum d’économies et d’optimiser la disponibilité et les performances lors de l’exécution d’applications sur plusieurs instances EC2.

**Plusieurs types d’instances**  
Une flotte peut lancer plusieurs types d’instances, ce qui lui permet de ne pas dépendre de la disponibilité d’un seul type d’instance. Cela permet d’augmenter la disponibilité globale des instances dans votre flotte.

**Répartition des instances dans les zones de disponibilité**  
Une flotte peut être déployée dans plusieurs zones de disponibilité, ce qui vous permet de réduire les coûts et d’améliorer la disponibilité. Si votre flotte inclut des instances Spot, elle sélectionne automatiquement les zones de disponibilité en fonction de vos préférences en matière de prix et d’interruptions.

**Options d’achat multiples**  
Une flotte peut lancer plusieurs options d’achat (instances Spot et à la demande), ce qui permet d’optimiser les coûts grâce à l’utilisation d’instances Spot. Vous pouvez également profiter des remises sur les instances réservées et les Savings Plans en les utilisant conjointement avec les instances à la demande au sein de la flotte. 

**Remplacement automatique des instances Spot**  
Si votre flotte comprend des instances Spot, elle peut automatiquement demander une capacité Spot de remplacement si vos instances Spot sont interrompues. Grâce au [rééquilibrage des capacités](ec2-fleet-capacity-rebalance.md), une flotte peut également surveiller et remplacer de manière proactive vos instances Spot qui présentent un risque élevé d’interruption.

**Capacité de réserve à la demande**  
Une flotte peut utiliser une réservation de [réserve de capacité à la demande](ec2-fleet-on-demand-capacity-reservations.md) pour réserver de la capacité à la demande. Une flotte peut également comprendre des [blocs de capacité pour ML](ec2-capacity-blocks.md), ce qui vous permet de réserver des instances GPU à une date ultérieure pour prendre en charge les charges de travail de machine learning (ML) de courte durée.

# Quelle est la meilleure méthode de flotte à utiliser ?
<a name="which-fleet-method-to-use"></a>

En tant que bonne pratique générale, nous vous recommandons de lancer des flottes d’instances Spot et à la demande avec Amazon EC2 Auto Scaling, car ce dernier fournit des fonctionnalités supplémentaires que vous pouvez utiliser pour gérer votre flotte. La liste des fonctionnalités supplémentaires inclut le remplacement automatique des surveillances de l’état pour les instances Spot et à la demande, les surveillances de l’état basées sur les applications et une intégration avec Elastic Load Balancing pour garantir une répartition uniforme du trafic applicatif vers vos instances saines. Vous pouvez également utiliser les groupes Auto Scaling lorsque vous utilisez AWS des services tels qu'Amazon ECS, Amazon EKS (groupes de nœuds autogérés) et Amazon VPC Lattice. Pour plus d’informations, consultez le [Guide de l’utilisateur Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/).

Si vous ne pouvez pas utiliser Amazon EC2 Auto Scaling, vous pouvez envisager d’utiliser la flotte EC2 ou le parc d’instances Spot. La flotte EC2 et le parc d’instances Spot offrent les mêmes fonctionnalités de base. Cependant, la flotte EC2 n’est disponible qu’en ligne de commande et n’est pas compatible avec les consoles. Le parc d’instances Spot Fleet offre un support pour la console, mais il est basé sur une API ancienne pour laquelle aucun investissement n’a été prévu.

Le tableau suivant permet de déterminer la méthode de flotte à utiliser.


****  

| Méthode de la flotte | Quand l’utiliser ? | Cas d’utilisation | 
| --- | --- | --- | 
|  [Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/what-is-amazon-ec2-auto-scaling.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/which-fleet-method-to-use.html)  |  Créez un groupe Auto Scaling qui gère le cycle de vie de vos instances tout en gardant le nombre d’instances souhaité. Prend en charge la mise à l’échelle horizontale (ajout d’instances supplémentaires) entre les limites minimale et maximale spécifiées.  | 
|  [EC2 Fleet](manage-ec2-fleet.md)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/which-fleet-method-to-use.html)  |  Créez une flotte `instant` à la fois d’instances à la demande et d’instances Spot en une seule opération, avec plusieurs spécifications de lancement qui varient en fonction du type d’instance, de l’AMI, de la zone de disponibilité ou du sous-réseau. La stratégie d’allocation de l’instance Spot est par défaut définie sur le prix unitaire `lowest-price` pmais nous recommandons de la modifier en fonction de `price-capacity-optimized`.  | 
|  [Parc d’instances Spot](work-with-spot-fleets.md)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/which-fleet-method-to-use.html)  |  N’utilisez le parc d’instances Spot que si vous avez besoin d’un support de console pour un cas d’utilisation où vous utiliseriez la flotte EC2.  | 

# Options de configuration pour votre Flotte EC2 ou parc d’instances Spot
<a name="ec2-fleet-configuration-strategies"></a>

Lors de la planification de votre flotte EC2 ou parc d’instances Spot, nous vous recommandons de prendre en compte les options suivantes pour décider de la manière de configurer votre flotte.


****  

| Option de configuration | Question | Documentation | 
| --- | --- | --- | 
| Type de demande de parc |  Voulez-vous une flotte qui soumette une demande unique pour la capacité cible souhaitée, ou une flotte qui maintienne la capacité cible au fil du temps ?  | [Type de demande de flotte EC2 et parc d’instances Spot](ec2-fleet-request-type.md) | 
| Instances Spot | Prévoyez-vous d’inclure des instances Spot dans votre flotte ? Appuyez-vous sur ces bonnes pratiques lorsque vous planifiez votre flotte afin de pouvoir mettre en service ces instances au prix le plus bas possible. | [Bonnes pratiques relatives à Amazon EC2 Spot](spot-best-practices.md) | 
| Limite de dépenses pour votre flotte | Voulez-vous limiter le montant que vous paierez pour votre flotte par heure ? | [Définissez une limite de dépenses pour votre Flotte EC2 ou parc d’instances Spot](ec2-fleet-control-spending.md) | 
| Type d’instance et sélection de type d’instance basée sur des attributs |  Voulez-vous spécifier les types d’instances de votre parc ou laisser Amazon EC2 sélectionner les types d’instances qui répondent aux exigences de votre application ?  | [Spécifiez des attributs pour la sélection de type d’instance pour la flotte EC2](ec2-fleet-attribute-based-instance-type-selection.md) | 
| Pondération d’instance | Voulez-vous attribuer des pondérations à chaque type d’instance pour représenter sa capacité de calcul et ses performances, afin qu’Amazon EC2 puisse sélectionner n’importe quelle combinaison de types d’instances disponibles pour atteindre la capacité cible souhaitée ? | [Utilisez la pondération des instances pour gérer les coûts et les performances de votre flotte EC2 ou parc d’instances Spot](ec2-fleet-instance-weighting.md) | 
| Stratégies d’allocation | Voulez-vous décider d’optimiser la capacité disponible, le prix ou les types d’instances à utiliser pour les instances ponctuelles et les instances à la demande de votre flotte ? | [Utilisez des stratégies d’allocation pour déterminer la manière dont les flottes d’instances EC2 ou Spot utilisent les capacités Spot et Spot](ec2-fleet-allocation-strategy.md) | 
| Rééquilibrage de la capacité | Voulez-vous que votre flotte remplace automatiquement les instances Spot à risque ? | [Utilisez le rééquilibrage des capacités dans la flotte EC2 et le parc Spot pour remplacer les instances ponctuelles à risque](ec2-fleet-capacity-rebalance.md) | 
| Réserve de capacité à la demande | Voulez-vous réserver de la capacité pour les instances à la demande de votre flotte ? | [Utilisez les réserves de capacité pour réserver de la capacité à la demande dans la flotte EC2](ec2-fleet-on-demand-capacity-reservations.md) | 

# Type de demande de flotte EC2 et parc d’instances Spot
<a name="ec2-fleet-request-type"></a>

Le type de demande pour un Flotte EC2 ou un parc d’instances Spot détermine si la demande est synchrone ou asynchrone et s’il s’agit d’une demande unique pour la capacité cible souhaitée ou d’un effort continu pour maintenir la capacité au fil du temps. Lors de la configuration de votre flotte, vous devez spécifier le type de demande.

La flotte EC2 et le parc d’instances Spot proposent deux types de demandes : `request` et `maintain`. En outre, le flotte EC2 propose un troisième type de demande appelé `instant`.Types de demandes de la flotte

`instant` (Flotte EC2 uniquement)  
Si vous configurez le type de demande comme `instant`, Flotte EC2 passe une demande unique synchrone de la capacité souhaitée. Dans la réponse de l’API, il renvoie les instances qui ont été lancées et fournit des erreurs liées aux instances qui n’ont pas pu être lancées. Pour de plus amples informations, veuillez consulter [Configurer une flotte EC2 de type instant](instant-fleet.md).

`request`  
Si vous configurez le type de demande comme `request`, le flotte passe une demande unique asynchrone de la capacité souhaitée. Si la capacité diminue en raison d’interruptions Spot, la flotte ne tente pas de reconstituer les instances Spot et ne soumet pas de demandes dans d’autres pools de capacité Spot si la capacité n’est pas disponible. Pour créer un parc d’instances Spot de type `request` à l’aide de la console, décochez la case **Maintain target capacity** (Maintenir la capacité cible).

`maintain` (par défaut)  
Si vous configurez le type de demande comme `maintain`, la flotte passe une demande asynchrone de la capacité souhaitée et maintient la capacité en réapprovisionnant automatiquement les instances Spot interrompues. Pour créer un parc d’instances Spot de type `maintain` à l’aide de la console, choisissez la case **Maintain target capacity** (Maintenir la capacité cible).

# Configurer une flotte EC2 de type instant
<a name="instant-fleet"></a>

La flotte EC2 de type *instantané* est une demande synchrone unique qui ne réalise qu’une seule tentative de lancement de la capacité souhaitée. La réponse de l’API liste les instances qui ont été lancées, ainsi que les erreurs liées aux instances qui n’ont pas pu être lancées. Il y a plusieurs bénéfices à utiliser une flotte EC2 de type *instantané*, qui sont décrits dans cet article. Des exemples de configurations sont fournis à la fin de l’article.

Pour les charges de travail qui nécessitent une API de lancement uniquement pour lancer des instances EC2, vous pouvez utiliser l'API. RunInstances Toutefois, avec RunInstances, vous ne pouvez lancer que des instances à la demande ou des instances ponctuelles, mais pas les deux dans la même demande. En outre, lorsque vous lancez RunInstances des instances Spot, votre demande d'instance Spot est limitée à un type d'instance et à une zone de disponibilité. Ceci cible un seul groupe de capacité Spot (ensemble d’instances inutilisées ayant le même type d’instance et la même zone de disponibilité). Si le pool de capacité Spot ne dispose pas d'une capacité d'instance Spot suffisante pour votre demande, l' RunInstances appel échoue.

Au lieu de l'utiliser RunInstances pour lancer des instances Spot, nous vous recommandons d'utiliser l' CreateFleet API avec le `type` paramètre défini sur `instant` pour bénéficier des avantages suivants : 
+ **Launch On-Demand instances and Spot instances in one request.** (Lancez des instances à la demande et des instances Spot en une seule demande.) Une flotte EC2 peut lancer des instances à la demande et/ou des instances Spot. La demande des instances Spot est satisfaite si la capacité disponible et le prix maximum par heure que vous avez spécifié pour la demande dépassent le prix spot actuel.
+ **Increase the availability of Spot instances.** (Augmentez la disponibilité des instances Spot.). En utilisant une flotte EC2 de type `instant`, vous pouvez lancer des instances Spot en suivant les [Spot best practices](spot-best-practices.md) (Bonnes pratiques en matière d’instances Spot) avec les avantages qui en résultent :
  + **Bonnes pratiques en matière d’instances Spot : Soyez flexible en ce qui concerne les types d’instance et les zones de disponibilité.**

    Bénéfices : en spécifiant plusieurs types d’instance et zones de disponibilité, vous augmentez le nombre de groupes de capacités Spot. Cela donne au service Spot une meilleure chance de trouver et d’allouer la capacité de calcul Spot souhaitée. Une bonne pratique consiste à être flexible et à choisir au moins 10 types d’instances pour chaque charge de travail et à s’assurer que toutes les zones de disponibilité sont configurées pour être utilisées dans votre VPC.
  + **Bonne pratique Spot : utilisez la stratégie d’allocation price-capacity-optimized.**

    Avantage : la stratégie d’allocation `price-capacity-optimized` identifie les instances dans les groupes de capacité Spot les plus disponibles, puis approvisionne automatiquement les instances dans les groupes dont le prix est le plus bas. Étant donné que votre capacité d’instance Spot provient de groupes avec une capacité optimale, cela réduit la possibilité que vos instances Spot soient arrêtées pour être récupérées par Amazon EC2.
+ **Get access to a wider set of capabilities.** (Accédez à un ensemble plus large de fonctionnalités). Pour les charges de travail qui nécessitent une API de lancement uniquement et pour lesquelles vous préférez gérer le cycle de vie de votre instance plutôt que de laisser EC2 Fleet le gérer à votre place, utilisez le type `instant` de flotte EC2 plutôt que l'API. [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) EC2 Fleet fournit un ensemble de fonctionnalités plus RunInstances large que ce que montrent les exemples suivants. Pour toutes les autres charges de travail, vous devez utiliser Amazon EC2 Auto Scaling, car il fournit un ensemble de ressources plus complet pour une plus grande variété de charges de travail, telles que les charges de travail basées sur ELB, les charges de travail conteneurisées et les tâches de traitement de file d’attente.

Vous pouvez utiliser la flotte d’EC2 de type *instantané* pour lancer des instances dans des blocs de capacité. Pour de plus amples informations, veuillez consulter [Didacticiel : Configurer votre flotte EC2 pour lancer des instances dans des blocs de capacité](ec2-fleet-launch-instances-capacity-blocks-walkthrough.md).

AWS des services tels qu'Amazon EC2 Auto Scaling et Amazon EMR utilisent EC2 Fleet de *type* instantané pour lancer des instances EC2.

## Conditions préalables pour les flottes EC2 de type instantané
<a name="instant-fleet-prerequisites"></a>

Pour connaître les conditions préalables à la création d’une flotte EC2, veuillez consulter [Conditions préalables requises flotte EC2](ec2-fleet-prerequisites.md).

## Comment fonctionne une flotte EC2 instantanée
<a name="how-instant-fleet-works"></a>

Lorsque vous travaillez avec une flotte EC2 de type `instant`, la séquence d’événements est la suivante :

1. **Configurer : configurez** le type de [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html)demande en tant que`instant`. Pour de plus amples informations, veuillez consulter [Créer une flotte EC2](create-ec2-fleet.md). Notez qu’après avoir effectué l’appel d’API, vous ne pouvez plus le modifier.

1. **Demande :** lorsque vous effectuez un appel d’API, Amazon EC2 place une demande unique synchrone pour la capacité souhaitée.

1. **Réponse :** la réponse de l’API liste les instances qui ont été lancées, ainsi que les erreurs liées aux instances qui n’ont pas pu être lancées.

1. **Description** : vous pouvez décrire votre flotte EC2, répertorier les instances associées à votre flotte EC2 et consulter l’historique de votre flotte EC2.

1. **Résiliation des instances** : vous pouvez résilier les instances à tout moment.

1. **Suppression de la demande de flotte :** la demande de flotte peut être supprimée manuellement ou automatiquement :
   + Manuel – vous pouvez [supprimer la demande de flotte](delete-fleet.md) après le lancement de vos instances.

     Notez qu’une flotte `instant` supprimée avec des instances en cours d’exécution n’est pas prise en charge. Lorsque vous supprimez une flotte `instant`, Amazon EC2 résilie automatiquement toutes ses instances. Pour les flottes de plus de 1 000 instances, la demande de suppression peut échouer. Si votre flotte compte plus de 1 000 instances, commencez par résilier manuellement la plupart d’entre elles, en n’en conservant que 1 000 au maximum. Supprimez ensuite la flotte, et les instances restantes seront automatiquement supprimées.
   + Automatique – Amazon EC2 supprime la demande de flotte quelque temps après que : 
     + soit toutes les instances sont résiliées ;
     + soit la flotte ne parvient pas à lancer d’instances.

## Exemples
<a name="instant-fleet-examples"></a>

Les exemples suivants montrent comment utiliser une flotte EC2 de type `instant` pour différents cas d’utilisation. Pour plus d'informations sur l'utilisation des paramètres de l' CreateFleet API EC2, consultez le [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html)manuel *Amazon EC2* API Reference.

**Topics**
+ [

### Exemple 1 : Lancer des instances Spot avec la stratégie d’allocation optimisée pour la capacité
](#instant-fleet-example-1)
+ [

### Exemple 2 : Lancer une unique instance Spot avec la stratégie d’allocation optimisée pour la capacité
](#instant-fleet-example-2)
+ [

### Exemple 3 : Lancer des instances Spot en utilisant la pondération d’instance
](#instant-fleet-example-3)
+ [

### Exemple 4 : lancez des instances Spot au sein d’une même zone de disponibilité
](#instant-fleet-example-4)
+ [

### Exemple 5 : Lancer des instances Spot de type d’instance unique dans une seule zone de disponibilité
](#instant-fleet-example-5)
+ [

### Exemple 6 : Lancer des instances Spot uniquement si une capacité cible minimale peut être lancée
](#instant-fleet-example-6)
+ [

### Exemple 7 : Lancer des instances Spot uniquement si une capacité cible minimale du même type d’instance et dans une seule zone de disponibilité peut être lancée
](#instant-fleet-example-7)
+ [

### Exemple 8 : Lancer des instances avec plusieurs modèles de lancement
](#instant-fleet-example-8)
+ [

### Exemple 9 : Lancer des instances Spot avec une base d’instances à la demande
](#instant-fleet-example-9)
+ [

### Exemple 10 : Lancer des instances Spot à l’aide d’une stratégie d’allocation optimisée pour la capacité avec une base d’instances à la demande en utilisant des réservations de capacité et la stratégie d’allocation prioritaire
](#instant-fleet-example-10)
+ [

### Exemple 11 : Lancer des instances ponctuelles à l'aide d' capacity-optimized-prioritizedune stratégie d'allocation
](#instant-fleet-example-11)
+ [

### Exemple 12 : indiquez un paramètre du gestionnaire de systèmes au lieu d’un ID de l’AMI
](#instant-fleet-example-12)

### Exemple 1 : Lancer des instances Spot avec la stratégie d’allocation optimisée pour la capacité
<a name="instant-fleet-example-1"></a>

L’exemple suivant spécifie les paramètres requis dans une flotte EC2 de type `instant` : un modèle de lancement, une capacité cible, une option d’achat par défaut et des remplacements du modèle de lancement.
+ Le modèle de lancement est identifié par son nom de modèle de lancement et son numéro de version.
+ Les 12 remplacements de modèle de lancement spécifient 4 types d’instance différents et 3 sous-réseaux différents, chacun dans une zone de disponibilité distincte. Chaque combinaison de type d’instance et de sous-réseau définit un groupe de capacités Spot, ce qui donne un total de 12 groupes de capacités Spot.
+ La capacité cible pour la flotte est de 20 instances.
+ L’option d’achat par défaut est `spot`, ce qui fait que la flotte tente de lancer 20 instances Spot dans le groupe de capacités Spot avec une capacité optimale pour le nombre d’instances qui sont lancées.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized"
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-49e41922"
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Exemple 2 : Lancer une unique instance Spot avec la stratégie d’allocation optimisée pour la capacité
<a name="instant-fleet-example-2"></a>

Vous pouvez lancer de manière optimale une instance Spot à la fois en effectuant plusieurs appels d'API EC2 `instant` Fleet de type 1. TotalTargetCapacity 

L’exemple suivant spécifie les paramètres requis dans une flotte EC2 de type instant : un modèle de lancement, une capacité cible, une option d’achat par défaut et des remplacements de modèle de lancement. Le modèle de lancement est identifié par son nom de modèle de lancement et son numéro de version. Les 12 remplacements de modèle de lancement ont 4 types d’instance différents et 3 sous-réseaux différents, chacun dans une zone de disponibilité distincte. La capacité cible de la flotte est de 1 instance, et l’option d’achat par défaut est Spot, ce qui fait que la flotte tente de lancer une instance Spot à partir de l’un des 12 groupes de capacités Spot en fonction de la stratégie d’allocation optimisée pour la capacité, pour lancer une instance Spot à partir du groupe de capacités le plus disponible.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized"
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-49e41922"
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 1,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Exemple 3 : Lancer des instances Spot en utilisant la pondération d’instance
<a name="instant-fleet-example-3"></a>

Les exemples suivants utilisent la pondération d’instance, ce qui signifie que le prix est déterminé par heure d’unité, et non par heure d’instance. Chaque configuration de lancement répertorie un type d'instance différent et un poids différent en fonction du nombre d'unités de charge de travail pouvant être exécutées sur l'instance, en supposant qu'une unité de charge de travail nécessite 15 Go de mémoire et 4 CPUs v. Par exemple, un m5.xlarge (4 v CPUs et 16 Go de mémoire) peut exécuter une unité et est pondéré 1, un m5.2xlarge (8 v CPUs et 32 Go de mémoire) peut exécuter 2 unités et est pondéré 2, etc. La capacité cible totale est définie sur 40 unités. L’option d’achat par défaut est Spot et la stratégie d’allocation est optimisée pour la capacité, ce qui se traduit par 40 m5.xlarge (40 divisé par 1), 20 m5.2xlarge (40 divisé par 2), 10 m5.4xlarge (40 divisé par 4), 5 m5.8xlarge (40 divisé par 8) ou un mélange de types d’instances avec des pondérations totalisant la capacité désirée, sur la base de la stratégie d’allocation optimisée pour les capacités.

Pour de plus amples informations, veuillez consulter [Utilisez la pondération des instances pour gérer les coûts et les performances de votre flotte EC2 ou parc d’instances Spot](ec2-fleet-instance-weighting.md).

```
{
   "SpotOptions":{
      "AllocationStrategy":"capacity-optimized"
   },
   "LaunchTemplateConfigs":[
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"m5.xlarge",
               "SubnetId":"subnet-fae8c380",
               "WeightedCapacity":1
            },
            {
               "InstanceType":"m5.xlarge",
               "SubnetId":"subnet-e7188bab",
               "WeightedCapacity":1
            },
            {
               "InstanceType":"m5.xlarge",
               "SubnetId":"subnet-49e41922",
               "WeightedCapacity":1
            },
            {
               "InstanceType":"m5.2xlarge",
               "SubnetId":"subnet-fae8c380",
               "WeightedCapacity":2
            },
            {
               "InstanceType":"m5.2xlarge",
               "SubnetId":"subnet-e7188bab",
               "WeightedCapacity":2
            },
            {
               "InstanceType":"m5.2xlarge",
               "SubnetId":"subnet-49e41922",
               "WeightedCapacity":2
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-fae8c380",
               "WeightedCapacity":4
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-e7188bab",
               "WeightedCapacity":4
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-49e41922",
               "WeightedCapacity":4
            },
            {
               "InstanceType":"m5.8xlarge",
               "SubnetId":"subnet-fae8c380",
               "WeightedCapacity":8
            },
            {
               "InstanceType":"m5.8xlarge",
               "SubnetId":"subnet-e7188bab",
               "WeightedCapacity":8
            },
            {
               "InstanceType":"m5.8xlarge",
               "SubnetId":"subnet-49e41922",
               "WeightedCapacity":8
            }
         ]
      }
   ],
   "TargetCapacitySpecification":{
      "TotalTargetCapacity":40,
      "DefaultTargetCapacityType":"spot"
   },
   "Type":"instant"
}
```

### Exemple 4 : lancez des instances Spot au sein d’une même zone de disponibilité
<a name="instant-fleet-example-4"></a>

Vous pouvez configurer un parc pour lancer toutes les instances dans une seule zone de disponibilité en définissant les options Spot SingleAvailabilityZone sur true.

Les 12 remplacements de modèle de lancement ont des types d’instance et des sous-réseaux différents (chacun dans une zone de disponibilité distincte), mais la même capacité pondérée. La capacité cible totale est de 20 instances, l’option d’achat par défaut est Spot et la stratégie d’allocation Spot est optimisée pour la capacité. La flotte EC2 lance 20 instances Spot, le toutes dans une seule AZ, à partir du ou des groupes de capacités Spot avec une capacité optimale en utilisant les spécifications de lancement.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized",
        "SingleAvailabilityZone": true
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Exemple 5 : Lancer des instances Spot de type d’instance unique dans une seule zone de disponibilité
<a name="instant-fleet-example-5"></a>

Vous pouvez configurer un parc pour lancer toutes les instances du même type et dans une seule zone de disponibilité en définissant SpotOptions SingleInstanceType les valeurs true et SingleAvailabilityZone true.

Les 12 remplacements de modèle de lancement ont des types d’instance et des sous-réseaux différents (chacun dans une zone de disponibilité distincte), mais la même capacité pondérée. La capacité cible totale est de 20 instances, l’option d’achat par défaut est Spot et la stratégie d’allocation Spot est optimisée pour la capacité. La flotte EC2 lance 20 instances Spot du même type d’instance, le tout dans une seule AZ à partir du groupe d’instances Spot avec une capacité optimale en utilisant les spécifications de lancement.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized",
        "SingleInstanceType": true,
        "SingleAvailabilityZone": true
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Exemple 6 : Lancer des instances Spot uniquement si une capacité cible minimale peut être lancée
<a name="instant-fleet-example-6"></a>

Vous pouvez configurer une flotte pour lancer des instances uniquement si la capacité cible minimale peut être lancée en définissant les options MinTargetCapacity Spot sur la capacité cible minimale que vous souhaitez lancer ensemble.

Lorsque vous spécifiez MinTargetCapacity, vous devez spécifier au moins l'un des paramètres suivants : SingleInstanceType ou SingleAvailabilityZone. Dans cet exemple, SingleInstanceType est spécifié, de sorte que les 20 instances doivent utiliser le même type d'instance.

Les 12 remplacements de modèle de lancement ont des types d’instance et des sous-réseaux différents (chacun dans une zone de disponibilité distincte), mais la même capacité pondérée. La capacité cible totale et la capacité cible minimum sont toutes deux de 20 instances, l’option d’achat par défaut est Spot et la stratégie d’allocation Spot est optimisée pour la capacité. La flotte EC2 lance 20 instances Spot à partir du groupe de capacités Spot avec une capacité optimale à l’aide des remplacements du modèle de lancement, uniquement si elle peut lancer les 20 instances en même temps.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized",
        "SingleInstanceType": true,
        "MinTargetCapacity": 20
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Exemple 7 : Lancer des instances Spot uniquement si une capacité cible minimale du même type d’instance et dans une seule zone de disponibilité peut être lancée
<a name="instant-fleet-example-7"></a>

Vous pouvez configurer un parc pour lancer des instances uniquement si la capacité cible minimale peut être lancée avec un seul type d'instance dans une seule zone de disponibilité en définissant les options MinTargetCapacity Spot sur la capacité cible minimale que vous souhaitez lancer en même temps que SingleInstanceType les SingleAvailabilityZone options.

Les 12 spécifications de lancement, qui remplacent le modèle de lancement, ont des types et des sous-réseaux d’instances différents (chacun dans une AZ différentes), mais la même capacité pondérée. La capacité cible totale et la capacité cible minimale sont toutes deux fixées à 20 instances, l'option d'achat par défaut est au comptant, la stratégie d'allocation au comptant est optimisée en termes de capacité, SingleInstanceType c'est vrai et SingleAvailabilityZone vrai. La flotte EC2 lance 20 instances Spot du même type d’instance, le tout dans une seule AZ à partir du groupe d’instances Spot avec une capacité optimale en utilisant les spécifications de lancement, mais uniquement si 20 instances peuvent être lancées en même temps.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized",
        "SingleInstanceType": true,
        "SingleAvailabilityZone": true,
        "MinTargetCapacity": 20
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5.4xlarge",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5d.4xlarge",
               "SubnetId":"subnet-49e41922"
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Exemple 8 : Lancer des instances avec plusieurs modèles de lancement
<a name="instant-fleet-example-8"></a>

Vous pouvez configurer une flotte pour lancer des instances avec des spécifications de lancement différentes pour différents types d’instance ou un groupe de types d’instance, en spécifiant plusieurs modèles de lancement. Dans cet exemple, nous voulons avoir différentes tailles de volume EBS pour différents types d’instance et nous les avons configurées dans les modèles de lancement ec2-fleet-lt-4xl, ec2-fleet-lt-9xl et ec2-fleet-lt-18xl.

Dans cet exemple, nous utilisons 3 modèles de lancement différents pour les 3 types d’instance en fonction de leur taille. Les remplacements de spécification de lancement sur tous les modèles de lancement utilisent des pondérations d’instance basées sur les vCPU du type d’instance. La capacité cible totale est de 144 unités, l’option d’achat par défaut est Spot et la stratégie d’allocation Spot est optimisée pour la capacité. La flotte EC2 peut soit lancer 9 c5n.4xlarge (144 divisé par 16) en utilisant le modèle de lancement ec2-fleet-4xl ou 4 c5n.9xlarge (144 divisé par 36) en utilisant le modèle de lancement ec2-fleet-9xl, ou 2 c5n.18xlarge (144 divisé par 72) en utilisant le modèle de lancement ec2-fleet-18xl, ou un mélange des types d’instances avec des pondérations totalisant la capacité souhaitée sur la base de la stratégie d’allocation optimisée pour la capacité.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized"
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt-18xl",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5n.18xlarge",
               "SubnetId":"subnet-fae8c380",
               "WeightedCapacity":72
            },
            {
               "InstanceType":"c5n.18xlarge",
               "SubnetId":"subnet-e7188bab",
               "WeightedCapacity":72
            },
            {
               "InstanceType":"c5n.18xlarge",
               "SubnetId":"subnet-49e41922",
               "WeightedCapacity":72
            }
         ]
      },
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt-9xl",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5n.9xlarge",
               "SubnetId":"subnet-fae8c380",
               "WeightedCapacity":36
            },
            {
               "InstanceType":"c5n.9xlarge",
               "SubnetId":"subnet-e7188bab",
               "WeightedCapacity":36
            },
            {
               "InstanceType":"c5n.9xlarge",
               "SubnetId":"subnet-49e41922",
               "WeightedCapacity":36
            }
         ]
      },
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt-4xl",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5n.4xlarge",
               "SubnetId":"subnet-fae8c380",
               "WeightedCapacity":16
            },
            {
               "InstanceType":"c5n.4xlarge",
               "SubnetId":"subnet-e7188bab",
               "WeightedCapacity":16
            },
            {
               "InstanceType":"c5n.4xlarge",
               "SubnetId":"subnet-49e41922",
               "WeightedCapacity":16
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 144,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Exemple 9 : Lancer des instances Spot avec une base d’instances à la demande
<a name="instant-fleet-example-9"></a>

L’exemple suivant spécifie la capacité cible totale de 20 instances pour la flotte et une capacité cible de 5 instances à la demande. L’option d’achat par défaut est Spot. La flotte d’instances lance 5 instances à la demande comme spécifié, mais a besoin de lancer 15 instances supplémentaires pour assurer la capacité cible totale. L'option d'achat correspondant à la différence est calculée sous la forme TotalTargetCapacity — OnDemandTargetCapacity = DefaultTargetCapacityType, ce qui permet à la flotte de lancer 15 instances ponctuelles qui constituent l'un des 12 pools de capacités ponctuelles sur la base de la stratégie d'allocation optimisée pour les capacités.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized"
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-49e41922"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-fae8c380"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-e7188bab"
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-49e41922"
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "OnDemandTargetCapacity": 5,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Exemple 10 : Lancer des instances Spot à l’aide d’une stratégie d’allocation optimisée pour la capacité avec une base d’instances à la demande en utilisant des réservations de capacité et la stratégie d’allocation prioritaire
<a name="instant-fleet-example-10"></a>

Vous pouvez configurer un parc pour qu'il utilise d'abord les réservations de capacité à la demande lorsque vous lancez une base d'instances à la demande avec le type de capacité cible par défaut comme emplacement en définissant la stratégie d'utilisation pour les réservations de capacité à use-capacity-reservations-first. Et si plusieurs groupes d’instances n’utilisent pas réservations de capacité, la stratégie d’allocation à la demande choisie est appliquée. Dans cet exemple, la stratégie d’allocation à la demande est prioritaire..

Dans cet exemple, il y a 6 réservations de capacité inutilisées disponibles. Cette capacité est inférieure à la capacité cible à la demande de la flotte de 10 instances à la demande.

Le compte dispose des 6 réservations de capacité suivantes inutilisées dans 2 groupes différents. Le nombre de Réservations de capacité dans chaque pool est indiqué par AvailableInstanceCount.

```
{
    "CapacityReservationId": "cr-111", 
    "InstanceType": "m5.large", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1a", 
    "AvailableInstanceCount": 3, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}
 
{
    "CapacityReservationId": "cr-222", 
    "InstanceType": "c5.large", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1a", 
    "AvailableInstanceCount": 3, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}
```

La configuration de flotte suivante affiche uniquement les configurations pertinentes pour cet exemple. La stratégie d'allocation à la demande est priorisée, et la stratégie d'utilisation des réservations de capacité l'est use-capacity-reservations-first. La stratégie d’allocation Spot utilisée est optimisé au niveau de la capacité La capacité cible totale est 20, la capacité cible à la demande est 10 et le type de capacité cible par défaut est spot.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized"
    },
    "OnDemandOptions":{
       "CapacityReservationOptions": {
         "UsageStrategy": "use-capacity-reservations-first"
       },
       "AllocationStrategy":"prioritized"
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 1.0
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 2.0
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 3.0
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 4.0
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 5.0
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 6.0
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 7.0
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 8.0
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 9.0
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 10.0
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 11.0
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 12.0
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "OnDemandTargetCapacity": 10,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

Après avoir créé la flotte instantanée à l’aide de la configuration précédente, les 20 instances suivantes sont lancées pour atteindre la capacité cible :
+ 7 instances à la demande c5.large dans us-east-1a ; c5.large dans us-east-1a est priorisé en premier et il y a 3 réservations de capacité c5.large inutilisées disponibles. Les réservations de capacité sont d’abord utilisées pour lancer 3 instances à la demande, puis 4 instances à la demande supplémentaires sont lancées selon la stratégie d’allocation à la demande, qui est prioritized dans cet exemple.
+ 3 instances à la demande m5.large dans us-east-1a — m5.large dans us-east-1a est priorisée en deuxième position, et il existe 3 réservations de capacité m5.large non utilisées disponibles.
+ 10 instances Spot issues de l’un des 12 groupes de capacités Spot ayant la capacité optimale selon la stratégie d’allocation optimisée pour cette capacité.

Une fois la flotte lancée, vous pouvez courir [describe-capacity-reservations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservations.html)pour voir combien de réservations de capacité inutilisées restent. Dans cet exemple, vous devriez obtenir la réponse suivante, qui montre que toutes les réservations de capacité c5.large et m5.large ont été utilisées.

```
{
    "CapacityReservationId": "cr-111",
    "InstanceType": "m5.large",  
    "AvailableInstanceCount": 0
}
 
{
    "CapacityReservationId": "cr-222",
    "InstanceType": "c5.large", 
    "AvailableInstanceCount": 0
}
```

### Exemple 11 : Lancer des instances ponctuelles à l'aide d' capacity-optimized-prioritizedune stratégie d'allocation
<a name="instant-fleet-example-11"></a>

L’exemple suivant spécifie les paramètres requis dans une flotte EC2 de type instant : un modèle de lancement, une capacité cible, une option d’achat par défaut et des remplacements de modèle de lancement. Le modèle de lancement est identifié par son nom de modèle de lancement et son numéro de version. Les 12 spécifications de lancement qui remplacent le modèle de lancement ont 4 types d’instance différents avec une priorité assigned, et 3 sous-réseaux différents, chacun dans une zone de disponibilité distincte. La capacité cible du parc est de 20 instances, et l'option d'achat par défaut est le spot, ce qui amène le parc à tenter de lancer 20 instances ponctuelles à partir de l'un des 12 pools de capacités ponctuelles sur la base de la stratégie d' capacity-optimized-prioritizedallocation, qui met en œuvre les priorités au mieux, mais optimise d'abord la capacité.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized-prioritized"
    },
    "LaunchTemplateConfigs": [
      {
         "LaunchTemplateSpecification":{
            "LaunchTemplateName":"ec2-fleet-lt1",
            "Version":"$Latest"
         },
         "Overrides":[
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 1.0
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 1.0
            },
            {
               "InstanceType":"c5.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 1.0
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 2.0
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 2.0
            },
            {
               "InstanceType":"c5d.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 2.0
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 3.0
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 3.0
            },
            {
               "InstanceType":"m5.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 3.0
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-fae8c380",
               "Priority": 4.0
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-e7188bab",
               "Priority": 4.0
            },
            {
               "InstanceType":"m5d.large",
               "SubnetId":"subnet-49e41922",
               "Priority": 4.0
            }
         ]
      }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

### Exemple 12 : indiquez un paramètre du gestionnaire de systèmes au lieu d’un ID de l’AMI
<a name="instant-fleet-example-12"></a>

L’exemple suivant utilise un modèle de lancement afin d’indiquer la configuration des instances de la flotte. Dans cet exemple, pour `ImageId`, au lieu d’indiquer un ID de l’AMI, l’AMI est référencée par un paramètre du gestionnaire de système. Au lancement de l’instance, le paramètre du gestionnaire de systèmes se résoudra en un ID de l’AMI.

Dans cet exemple, le paramètre du gestionnaire de systèmes est indiqué dans un format valide : `resolve:ssm:golden-ami`. Il existe d’autres formats valides pour le paramètre du gestionnaire de systèmes. Pour de plus amples informations, veuillez consulter [Utilisation d’un paramètre Systems Manager au lieu d’un ID d’AMI](create-launch-template.md#use-an-ssm-parameter-instead-of-an-ami-id).

**Note**  
Le type de flotte doit être `instant`. Les autres types de flottes ne permettent pas d’indiquer un paramètre du gestionnaire de système au lieu d’un ID de l’AMI.

```
{
    "LaunchTemplateData": {
        "ImageId": "resolve:ssm:golden-ami",
        "InstanceType": "m5.4xlarge",
        "TagSpecifications": [{
            "ResourceType": "instance",
            "Tags": [{
                "Key": "Name",
                "Value": "webserver"
            }]
        }]
    }
}
```

# Définissez une limite de dépenses pour votre Flotte EC2 ou parc d’instances Spot
<a name="ec2-fleet-control-spending"></a>

Vous pouvez fixer une limite au montant que vous êtes prêt à dépenser par heure pour votre flotte EC2 ou votre parc d’instances Spot. Une fois votre limite de dépenses atteinte, le parc arrête de lancer des instances, même si la capacité cible n’a pas été atteinte.

Il existe des limites de dépenses distinctes pour les instances à la demande et les instances Spot.

**Pour configurer une limite de dépenses pour les instances à la demande et les instances Spot dans votre flotte EC2**  
Utilisez la commande [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) et les paramètres suivants :
+ Pour les instances à la demande : dans la structure `OnDemandOptions`, spécifiez votre limite de dépenses dans le champ `MaxTotalPrice`.
+ Pour les instances ponctuelles : dans la structure `SpotOptions`, spécifiez votre limite de dépenses dans le champ `MaxTotalPrice`.

**Pour configurer une limite de dépenses pour les instances à la demande et les instances Spot de votre parc d’instances Spot**  
Vous pouvez utiliser la console Amazon EC2 ou le AWS CLI pour configurer votre limite de dépenses.

(Console) Lorsque vous créez le parc Spot, cochez la case **Définir le coût maximum pour les instances Spot**, puis entrez une valeur pour **Définir votre coût maximum (par heure)**. Pour plus d’informations, consultez l’étape 6.e dans [Création d’une demande de parc d’instances Spot à l’aide de paramètres définis](create-spot-fleet.md#create-spot-fleet-advanced).

(AWS CLI) Utilisez la [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html)commande et les paramètres suivants :
+ Pour les instances à la demande : spécifiez votre limite de dépenses dans le champ `OnDemandMaxTotalPrice`.
+ Pour les instances ponctuelles : spécifiez votre limite de dépenses dans le champ `SpotMaxTotalPrice`.

## Exemples
<a name="ec2-fleet-spending-limit-examples"></a>

Les exemples suivants montrent deux manières de le faire. Dans le premier exemple, le parc arrête de lancer des instances à la demande lorsqu’il a atteint la capacité cible définie pour les instances à la demande (`OnDemandTargetCapacity`). Dans le deuxième exemple, la flotte cesse de lancer des instances à la demande lorsqu’elle a atteint le montant maximum que vous êtes prêt à payer par heure pour les instances à la demande (`MaxTotalPrice`).

**Exemple : arrêtez le lancement des instances à la demande lorsque la capacité cible est atteinte**

Prenons l’exemple d’une demande pour `m4.large` Instances à la demande, avec :
+ Prix à la demande : 0,10 USD par heure
+ `OnDemandTargetCapacity` : 10
+ `MaxTotalPrice` : 1,50 USD

Flotte lance 10 instances à la demande car le total de 1 USD (10 instances x 0,10 USD) ne dépasse pas le `MaxTotalPrice` de 1,50 USD pour les instances à la demande.

**Exemple : arrêtez le lancement des instances à la demande lorsque le prix total maximum est atteint**

Prenons l’exemple d’une demande pour `m4.large` Instances à la demande, avec :
+ Prix à la demande : 0,10 USD par heure
+ `OnDemandTargetCapacity` : 10
+ `MaxTotalPrice` : 0,80 USD

Si la flotte lance la capacité cible à la demande (10 instances à la demande), le coût total par heure est de 1 USD. Ce montant est supérieur à celui (0,80 USD) spécifié pour `MaxTotalPrice` pour Instances à la demande. Afin d’éviter de dépenser plus que vous le souhaitez, la flotte lance uniquement 8 instances à la demande (ce qui est inférieur à la capacité cible à la demande) car le lancement d’instances supplémentaires dépasserait `MaxTotalPrice` pour Instances à la demande.

## Instances de performance à capacité extensible
<a name="ec2-fleet-burstable-spot-instances"></a>

Si vous lancez vos instances Spot à l’aide d’un [type d’instance de performance à capacité extensible](burstable-performance-instances.md), et si vous prévoyez d’utiliser vos instances Spot de performance à capacité extensible immédiatement et pour une courte durée, sans temps d’inactivité pour accumuler des crédits UC, nous vous recommandons de les lancer en [mode standard](burstable-performance-instances-standard-mode.md) pour éviter de payer des coûts plus élevés. Si vous lancez vos instances Spot de performance à capacité extensible en [mode Illimité](burstable-performance-instances-unlimited-mode.md) et que vous étendez immédiatement l’utilisation de l’UC, vous dépensez des crédits excédentaires pour cette extension d’utilisation. Si vous utilisez l’instance pour une courte durée, elle n’a pas le temps d’accumuler des crédits UC pour rembourser les crédits excédentaires, et ces derniers vous sont facturés lorsque vous résiliez l’instance.

Le mode Illimité convient aux instances Spot de performance à capacité extensible uniquement si l’instance s’exécute suffisamment longtemps pour accumuler des crédits UC pour l’extension d’utilisation. Sinon, payer des crédits excédentaires rend les instances Spot de performance à capacité extensible plus coûteuses que les autres instances. Pour plus d’informations, consultez [Quand utiliser le mode illimité/mode d’UC fixe ?](burstable-performance-instances-unlimited-mode-concepts.md#when-to-use-unlimited-mode).

Les crédits de lancement visent à optimiser la productivité du lancement initial des instances T2 en leur fournissant suffisamment de ressources de calcul pour pouvoir configurer l’instance. Il est interdit de procéder à des lancements répétés d’instances T2 pour bénéficier de nouveaux crédits de lancement. Si vous avez besoin de performances soutenues de l’UC, vous pouvez obtenir des crédits (en restant inactif pendant un certain temps) : utilisez le [mode Illimité](burstable-performance-instances-unlimited-mode.md) pour les Instances Spot T2 ou un type d’instance avec UC dédiée.

# Spécifiez des attributs pour la sélection de type d’instance pour la flotte EC2
<a name="ec2-fleet-attribute-based-instance-type-selection"></a>

Lorsque vous créez une flotte EC2 ou un parc d’instances Spot, vous devez spécifier un ou plusieurs types d’instances afin de configurer les instances à la demande et les instances Spot de la flotte. Au lieu de spécifier manuellement les types d’instance, vous pouvez spécifier les attributs qu’une instance doit posséder, et Amazon EC2 identifiera tous les types d’instance avec ces attributs. C’est ce qu’on appelle la *sélection de type d’instance basée sur des attributs*. Par exemple, vous pouvez spécifier le nombre minimum et maximum de v CPUs requis pour vos instances, et le parc lancera les instances en utilisant tous les types d'instances disponibles répondant à ces exigences en matière de vCPU. 

La sélection de type d’instance basée sur des attributs est idéale pour les charges de travail et les cadres qui peuvent être flexibles quant aux types d’instances qu’ils utilisent, par exemple lors de l’exécution de conteneurs ou de flottes web, du traitement de big data et de la mise en œuvre d’outils de CI/CD (intégration et déploiement continus).

**Avantages**

La sélection de type d’instance basée sur des attributs présente les avantages suivants :
+ **Utiliser facilement les bons types d’instances** – Avec autant de types d’instances disponibles, la recherche des types d’instances appropriés pour votre charge de travail peut prendre beaucoup de temps. Lorsque vous spécifiez des attributs d’instance, les types d’instance auront automatiquement les attributs requis pour votre charge de travail.
+ **Configuration simplifiée** – Pour spécifier manuellement plusieurs types d’instances pour une flotte, vous devez créer un modèle de lancement distinct pour chaque type d’instance. Toutefois, avec la sélection de type d’instance basée sur des attributs, pour fournir plusieurs types d’instance, il suffit de spécifier les attributs d’instance dans le modèle de lancement ou dans un remplacement de modèle de lancement.
+ **Utilisation automatique de nouveaux types d’instances** – Lorsque vous spécifiez des attributs d’instance plutôt que des types d’instance, votre flotte peut utiliser des types d’instance de nouvelle génération au fur et à mesure qu’ils sont publiés, « vérifiant ultérieurement » la configuration de la flotte. 
+ **Flexibilité du type d’instance** – Lorsque vous spécifiez des attributs d’instance plutôt que des types d’instance, la flotte peut choisir parmi un large éventail de types d’instance pour lancer des instances Spot, ce qui est conforme aux [bonnes pratiques Spot en matière de flexibilité des types d’instance](spot-best-practices.md#be-instance-type-flexible).

**Topics**
+ [

## Fonctionnement de la sélection de type d’instance basée sur des attributs
](#ec2fleet-abs-how-it-works)
+ [

## Protection des prix
](#ec2fleet-abs-price-protection)
+ [

## Protection des performances
](#ec2fleet-abis-performance-protection)
+ [

## Considérations
](#ec2fleet-abs-considerations)
+ [

## Créer une flotte EC2 avec une sélection de type d’instance basée sur des attributs
](#abs-create-ec2-fleet)
+ [

## Créer un parc d’instances Spot avec une sélection de type d’instance basée sur des attributs
](#abs-create-spot-fleet)
+ [

## Exemples de configurations de flottes EC2 valides et non valides
](#ec2fleet-abs-example-configs)
+ [

## Exemples de configurations du parc d’instances Spot valides et non valides
](#spotfleet-abs-example-configs)
+ [

## Aperçu des types d’instances avec des attributs spécifiés
](#ec2fleet-get-instance-types-from-instance-requirements)

## Fonctionnement de la sélection de type d’instance basée sur des attributs
<a name="ec2fleet-abs-how-it-works"></a>

Pour utiliser la sélection de type d’instance basée sur des attributs dans la configuration de votre flotte, vous remplacez la liste des types d’instance par une liste d’attributs d’instance dont vos instances ont besoin. La flotte EC2 ou le parc d’instances Spot lance des instances sur tous les types d’instance disponibles possédant les attributs d’instance spécifiés.

**Topics**
+ [

### Types d’attributs d’instance
](#ef-abs-instance-attribute-types)
+ [

### Où configurer la sélection de type d’instance basée sur des attributs
](#ef-abs-where-to-configure)
+ [

### Comment la flotte EC2 ou le parc d’instances Spot utilise la sélection du type d’instance basée sur les attributs lors de l’approvisionnement d’une flotte ?
](#how-ef-uses-abs)

### Types d’attributs d’instance
<a name="ef-abs-instance-attribute-types"></a>

Il existe plusieurs attributs d’instance que vous pouvez spécifier pour exprimer vos besoins en matière de calcul, tels que :
+ **Nombre de vCPU** : nombre minimum et maximum de v CPUs par instance.
+ **Mémoire : mémoire** minimale et maximale GiBs par instance.
+ **Stockage local** – S’il faut utiliser EBS ou des volumes de stockage d’instance pour le stockage local.
+ **Des performances de pointe** – S’il faut utiliser la famille d’instance T, y compris les types T4g, T3a, T3 et T2.

Pour une description de chaque attribut et des valeurs par défaut, consultez le [InstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceRequirements.html)manuel *Amazon EC2 API* Reference.

### Où configurer la sélection de type d’instance basée sur des attributs
<a name="ef-abs-where-to-configure"></a>

Selon que vous utilisez la console ou le AWS CLI, vous pouvez spécifier les attributs d'instance pour la sélection du type d'instance basée sur les attributs comme suit :

Dans la console, vous pouvez spécifier les attributs de l’instance dans les composants de configuration de la flotte suivants :
+ Dans un modèle de lancement, puis référencez le modèle de lancement dans la demande de flotte
+ (Parc d’instances Spot uniquement) Dans la demande de la flotte

Dans le AWS CLI, vous pouvez spécifier les attributs d'instance dans l'un ou l'ensemble des composants de configuration de flotte suivants :
+ Dans un modèle de lancement, puis référencez le modèle de lancement dans la demande de flotte
+ Dans un remplacement de modèle de lancement

  Si vous souhaitez une combinaison d'instances utilisant différentes options AMIs, vous pouvez spécifier des attributs d'instance dans le cadre de plusieurs remplacements de modèles de lancement. Par exemple, différents types d’instance peuvent utiliser des processeurs x86 et Arm.
+ (Parc d’instances Spot uniquement) Dans une spécification de lancement

### Comment la flotte EC2 ou le parc d’instances Spot utilise la sélection du type d’instance basée sur les attributs lors de l’approvisionnement d’une flotte ?
<a name="how-ef-uses-abs"></a>

La flotte EC2 ou le parc d’instances Spot approvisionne une flotte de la manière suivante :
+ Il identifie les types d’instances qui ont les attributs spécifiés.
+ Il utilise la protection des prix pour déterminer les types d’instance à exclure.
+ Il détermine les pools de capacité à partir desquels il envisagera de lancer les instances en fonction des AWS régions ou des zones de disponibilité ayant les types d'instances correspondants.
+ Il applique la stratégie d’allocation spécifiée pour déterminer les groupes de capacités à partir desquels les instances doivent être lancées.

  Notez que la sélection de type d’instance basée sur des attributs ne permet pas de sélectionner les groupes de capacités à partir desquels allouer la flotte ; c’est la tâche des [stratégies d’allocations](ec2-fleet-allocation-strategy.md).

  Si vous spécifiez une stratégie d’allocation, la flotte lancera des instances selon la stratégie d’allocation spécifiée.
  + Pour les instances Spot, la sélection de type d’instance basée sur des attributs prend en charge les **stratégies** d’allocation **price-capacity optimized**, optimized optimized, **lowest-price**. Notez que nous ne recommandons pas la stratégie d’allocation ponctuelle au **prix le plus bas**, car c’est elle qui présente le risque d’interruption le plus élevé pour vos instances ponctuelles.
  + Pour les instances à la demande, la sélection du type d’instance basée sur les attributs prend en charge la stratégie d’attribution du **prix le plus bas**.
+ S’il n’y a pas de capacité pour les types d’instance avec des attributs d’instance spécifiés, aucune instance ne peut être lancée et la flotte renvoie une erreur.

## Protection des prix
<a name="ec2fleet-abs-price-protection"></a>

La protection des prix est une fonction qui empêche votre flotte EC2 ou votre parc d’instances Spot d’utiliser des types d’instance que vous considéreriez trop chers même s’ils correspondent aux attributs que vous avez spécifiés. Pour utiliser la protection des prix, vous devez définir un seuil de prix. Ensuite, lorsque Amazon EC2 sélectionne des types d’instance avec vos attributs, il exclut les types d’instance dont le prix est supérieur à votre seuil.

Amazon EC2 calcule le seuil de prix de la manière suivante :
+ Amazon EC2 identifie d’abord le type d’instance le moins cher parmi ceux qui correspondent à vos attributs.
+ Amazon EC2 prend ensuite la valeur (exprimée en pourcentage) que vous avez spécifiée pour le paramètre de protection des prix et la multiplie par le prix du type d’instance identifié. Le résultat est le prix qui est utilisé comme seuil de prix.

Il existe des seuils de prix distincts pour les instances à la demande et pour les instances Spot.

Lorsque vous créez une flotte avec une sélection de type d’instance basée sur les attributs, la protection des prix est activée par défaut. Vous pouvez conserver les valeurs par défaut ou spécifier les vôtres.

Vous pouvez également désactiver la protection des prix. Pour indiquer qu’il n’y a aucun seuil de protection des prix, spécifiez une valeur de pourcentage élevée, telle que `999999`.

**Topics**
+ [

### Comment est identifié le type d’instance le moins cher
](#ec2fleet-abs-price-protection-lowest-priced)
+ [

### Protection du prix de l’instance à la demande
](#ec2fleet-abs-on-demand-price-protection)
+ [

### Protection du prix de l’instance Spot
](#ec2fleet-abs-spot-price-protection)
+ [

### Spécifier le seuil de protection des prix
](#ec2fleet-abs-specify-price-protection)

### Comment est identifié le type d’instance le moins cher
<a name="ec2fleet-abs-price-protection-lowest-priced"></a>

Amazon EC2 détermine le prix sur lequel baser le seuil de prix en identifiant le type d’instance dont le prix est le plus bas parmi celles qui correspondent aux attributs que vous avez spécifiés. Pour ce faire, il procède de la façon suivante :
+ Il examine d’abord les types d’instances C, M ou R de la génération actuelle qui correspondent à vos attributs. S’il trouve des correspondances, il identifie le type d’instance le moins cher.
+ S’il n’y a pas de correspondance, il examine ensuite tous les types d’instances de la génération actuelle qui correspondent à vos attributs. S’il trouve des correspondances, il identifie le type d’instance le moins cher.
+ S’il n’y a pas de correspondance, il examine ensuite tous les types d’instances de la génération précédente qui correspondent à vos attributs et identifie le type d’instance le moins cher.

### Protection du prix de l’instance à la demande
<a name="ec2fleet-abs-on-demand-price-protection"></a>

Le seuil de protection des prix pour les types d’instances à la demande est calculé *sous la forme d’un pourcentage supérieur* au type d’instance à la demande le moins cher identifié (`OnDemandMaxPricePercentageOverLowestPrice`). Vous spécifiez le pourcentage supérieur que vous êtes prêt à payer. Si vous ne spécifiez pas ce paramètre, la valeur par défaut de `20` est utilisée pour calculer un seuil de protection des prix supérieur de 20 % au prix identifié.

Par exemple, si le prix de l’instance à la demande identifié est `0.4271`, et que vous le spécifiez `25`, le seuil de prix est supérieur de 25 % à `0.4271`. Il est calculé comme suit : `0.4271 * 1.25 = 0.533875`. Le prix calculé est le montant maximum que vous êtes prêt à payer pour les instances à la demande et, dans cet exemple, Amazon EC2 exclura tous les types d’instances à la demande dont le coût est supérieur à `0.533875`.

### Protection du prix de l’instance Spot
<a name="ec2fleet-abs-spot-price-protection"></a>

Par défaut, Amazon EC2 appliquera automatiquement une protection des prix des instances Spot optimale pour sélectionner de manière cohérente parmi un large éventail de types d’instance. Vous pouvez également définir vous-même la protection des prix manuellement. Toutefois, laisser Amazon EC2 le faire à votre place peut améliorer les chances que votre capacité Spot soit atteinte.

Vous pouvez spécifier manuellement la protection des prix à l’aide de l’une des solutions suivantes. Si vous définissez manuellement la protection des prix, nous vous recommandons d’utiliser la première option.
+ ***Pourcentage du* type d’instance *à la demande* le moins cher identifié** [`MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`]

  Par exemple, si le prix du type d’instance à la demande identifié est `0.4271`, et que vous le spécifiez `60`, le seuil de prix est de 60 % `0.4271`. Il est calculé comme suit : `0.4271 * 0.60 = 0.25626`. Le prix calculé est le montant maximum que vous êtes prêt à payer pour les instances Spot et, dans cet exemple, Amazon EC2 exclura tous les types d’instances Spot dont le coût est supérieur à `0.25626`.
+ **Un *pourcentage supérieur* au type d’instance *Spot* le moins cher identifié** [`SpotMaxPricePercentageOverLowestPrice`]

  Par exemple, si le prix du type d’instance Spot identifié est `0.1808`, et que vous le spécifiez `25`, le seuil de prix est supérieur de 25 % à `0.1808`. Il est calculé comme suit : `0.1808 * 1.25 = 0.226`. Le prix calculé est le montant maximum que vous êtes prêt à payer pour les instances Spot et, dans cet exemple, Amazon EC2 exclura tous les types d’instances Spot dont le coût est supérieur à `0.266`. Il est déconseillé d’utiliser ce paramètre, car les prix Spot peuvent fluctuer, et par conséquent, votre seuil de protection des prix peut également fluctuer.

### Spécifier le seuil de protection des prix
<a name="ec2fleet-abs-specify-price-protection"></a>

**Pour définir le seuil de protection des prix à l'aide du AWS CLI**

Lors de la création d'un parc EC2 ou d'un parc de spots à l'aide de AWS CLI, configurez le parc pour la sélection du type d'instance basé sur les attributs, puis procédez comme suit :
+ Pour spécifier le seuil de protection des prix de l’instance à la demande, dans le fichier de configuration JSON, dans la structure `InstanceRequirements`, pour `OnDemandMaxPricePercentageOverLowestPrice`, saisissez le seuil de protection des prix sous forme de pourcentage.
+ Pour spécifier le seuil de protection des prix de l’instance Spot, dans le fichier de configuration JSON, dans la structure `InstanceRequirements`, spécifiez l’*un* des paramètres suivants :
  + Pour `MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`, saisissez le seuil de protection des prix sous forme de pourcentage.
  + Pour `SpotMaxPricePercentageOverLowestPrice`, saisissez le seuil de protection des prix sous forme de pourcentage.

Pour plus d’informations, consultez [Créer une flotte EC2 avec une sélection de type d’instance basée sur des attributs](#abs-create-ec2-fleet) ou [Créer un parc d’instances Spot avec une sélection de type d’instance basée sur des attributs](#abs-create-spot-fleet).

**(Spot uniquement) Pour spécifier le seuil de protection des prix à l’aide de la console**

Lors de la création d’un parc d’instances Spot dans la console, configurez la flotte pour une sélection de type d’instance basée sur les attributs, puis effectuez les opérations suivantes :
+ Pour spécifier le seuil de protection des prix des instances à la demande, sous **Additional instance attribute** (Attribut d’instance supplémentaire), choisissez **On-demand price protection** (Protection des prix à la demande), puis **Add attribute** (Ajouter un attribut), puis saisissez le seuil de protection des prix sous forme de pourcentage.
+ **Pour spécifier le seuil de protection des prix de **l’instance Spot, Attribut d’instance supplémentaire****, choisissez Protection des prix Spot**, choisissez une valeur de base sur laquelle baser votre prix, puis saisissez le seuil de protection des prix sous forme de pourcentage.**

**Note**  
Lors de la création de la flotte, si vous définissez `TargetCapacityUnitType` sur `vcpu` ou `memory-mib`, le seuil de protection des prix est appliqué en fonction du prix par vCPU ou par mémoire au lieu du prix par instance.

## Protection des performances
<a name="ec2fleet-abis-performance-protection"></a>

*La protection des performances* est une fonctionnalité qui garantit que votre flotte EC2 ou votre parc d’instances Spot utilise des types d’instances similaires ou supérieurs à une référence de performance spécifiée. Pour utiliser la protection des performances, vous devez spécifier une famille d’instances comme référence de référence. Les capacités de la famille d’instances spécifiée établissent le niveau de performance acceptable le plus bas. Lorsque Amazon EC2 sélectionne des types d’instance pour votre parc, il prend en compte les attributs que vous avez spécifiés et la référence de performance. Les types d’instances inférieurs à la référence de performance sont automatiquement exclus de la sélection, même s’ils correspondent aux autres attributs que vous avez spécifiés. Cela garantit que tous les types d’instances sélectionnés offrent des performances similaires ou supérieures à la base de référence établie par la famille d’instances spécifiée. Amazon EC2 utilise cette référence pour guider la sélection du type d’instance, mais rien ne garantit que les types d’instance sélectionnés dépasseront toujours la référence pour chaque application.

Actuellement, cette fonctionnalité prend uniquement en charge les performances du processeur en tant que facteur de performance de référence. Les performances du processeur du processeur de la famille d’instances spécifiée servent de référence en matière de performances, garantissant que les types d’instances sélectionnés sont similaires ou supérieurs à cette référence. Les familles d’instances dotées des mêmes processeurs produisent les mêmes résultats de filtrage, même si les performances de leur réseau ou de leur disque sont différentes. Par exemple, si vous spécifiez l’une `c6in` ou l’autre `c6i` comme référence de référence, vous obtiendrez des résultats de filtrage basés sur les performances identiques, car les deux familles d’instances utilisent le même processeur CPU.

**Familles d’instances non prises en charge**  
Les familles d'instances suivantes **ne sont pas** prises en charge pour la protection des performances :
+ **Usage général :** Mac1 \$1 Mac2 \$1 Mac2-M1Ultra \$1 Mac2-M2 \$1 Mac2-M2Pro \$1 M1 \$1 M2 \$1 T1
+ **Optimisé pour le calcul :** C1
+ **Mémoire optimisée :** U-3TB1 \$1 U-6TB1 \$1 U-9TB1 \$1 U-12TB1 \$1 U-18TB1 \$1 u-24tb1 \$1 U7i-12 To \$1 U7 en 16 To \$1 U7 en 24 To \$1 U7 en 32 To
+ **Calcul accéléré :** G3 \$1 G3s \$1 P3dn \$1 P4d \$1 P5
+ **Calcul à hautes performances : HPC7g**

Si vous activez la protection des performances en spécifiant une famille d’instances prise en charge, les types d’instances renvoyés excluront les familles d’instances non prises en charge ci-dessus.

Si vous spécifiez une famille d'instances non prise en charge comme valeur de performance de référence, l'API renvoie une réponse vide [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html)et une exception pour [CreateFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html), [RequestSpotFleet[ModifyFleet](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyFleet.html)](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotFleet.html), et [ModifySpotFleetRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifySpotFleetRequest.html).

**Exemple : définir une référence de performance du processeur**  
Dans l’exemple suivant, l’instance doit être lancée avec des types d’instance dotés de cœurs de processeur aussi performants que la famille d’instances `c6i`. Cela filtrera les types d'instances dotés de processeurs moins performants, même s'ils répondent aux autres exigences d'instance que vous avez spécifiées, telles que le nombre de CPUs v. Par exemple, si les attributs d'instance que vous avez spécifiés incluent 4 V CPUs et 16 Go de mémoire, un type d'instance possédant ces attributs mais présentant des performances du processeur inférieures à celles `c6i` qui sera exclu de la sélection.

```
"BaselinePerformanceFactors": {
        "Cpu": {
            "References": [
                {
                    "InstanceFamily": "c6i"
                }
            ]
        }
```

## Considérations
<a name="ec2fleet-abs-considerations"></a>
+ Vous pouvez spécifier des types d’instance ou des attributs d’instance dans un parc d’instances Spot, mais pas les deux en même temps.

  Lorsque vous utilisez la CLI, les remplacements du modèle de lancement remplacent le modèle de lancement. Par exemple, si le modèle de lancement contient un type d’instance et que le remplacement du modèle de lancement contient des attributs d’instance, les instances identifiées par les attributs d’instance remplaceront le type d’instance dans le modèle de lancement.
+ Lorsque vous utilisez la CLI, si vous spécifiez des attributs d’instance comme remplacements, vous ne pouvez pas non plus spécifier de pondérations ou de priorités.
+ Vous pouvez spécifier un maximum de quatre structures `InstanceRequirements` dans une configuration de demande.

## Créer une flotte EC2 avec une sélection de type d’instance basée sur des attributs
<a name="abs-create-ec2-fleet"></a>

Vous pouvez configurer une flotte EC2 pour qu’elle utilise la sélection de type d’instance basée sur les attributs. Il n’est pas possible de créer une flotte EC2 à l’aide de la console Amazon EC2.

Les attributs de sélection du type d’instance basé sur des attributs sont spécifiés dans la structure `InstanceRequirements`. Lorsque `InstanceRequirements` est inclus dans la configuration de la flotte, `InstanceType` et `WeightedCapacity` doivent être exclus. Ils ne peuvent pas déterminer la configuration de la flotte en même temps que les attributs d’instance.

Dans les PowerShell exemples AWS CLI et, les attributs suivants sont spécifiés :
+ `VCpuCount`— Un minimum de 2 V CPUs et un maximum de 4 CPUs V. Si vous n'avez pas besoin d'une limite maximale, vous pouvez omettre la valeur maximale.
+ `MemoryMiB` : au moins 8 Gio et au plus 16 Gio de mémoire. Si vous n’avez pas besoin d’une limite maximale, vous pouvez omettre la valeur maximale.

Cette configuration identifie tous les types d'instance dotés de 2 à 4 V CPUs et de 8 à 16 GiB de mémoire. Toutefois, la protection des prix et la stratégie d’allocation peuvent exclure certains types d’instances lorsque [la flotte EC2 alloue la flotte](#how-ef-uses-abs).

------
#### [ AWS CLI ]

**Pour créer une flotte EC2 avec la sélection de type d’instance basée sur les attributs**  
Utilisez la commande [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) pour créer une flotte EC2. Spécifiez la configuration de flotte dans un fichier JSON.

```
aws ec2 create-fleet \
    --region us-east-1 \
    --cli-input-json file://file_name.json
```

Le fichier exemple `file_name.json` suivant contient les paramètres permettant de configurer une flotte EC2 pour utiliser la sélection de type d’instance basée sur les attributs.

```
{
    "SpotOptions": {
        "AllocationStrategy": "price-capacity-optimized"
    },
    "LaunchTemplateConfigs": [{
        "LaunchTemplateSpecification": {
            "LaunchTemplateName": "my-launch-template",
            "Version": "1"
        },
        "Overrides": [{
            "InstanceRequirements": {
                "VCpuCount": {
                    "Min": 2,
                    "Max": 4
                },
                "MemoryMiB": {
                    "Min": 8192,
                    "Max": 16384
                }
            }
        }]
    }],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

------
#### [ PowerShell ]

**Pour créer une flotte EC2 avec la sélection de type d’instance basée sur les attributs**  
Utilisez l’applet de commande [New-EC2Fleet](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Fleet.html).

```
$vcpuCount = New-Object Amazon.EC2.Model.VCpuCountRangeRequest
$vcpuCount.Min = 2 
$vcpuCount.Max = 4  
$memoryMiB = New-Object Amazon.EC2.Model.MemoryMiBRequest
$memoryMiB.Min = 8192  
$memoryMiB.Max = 16384  
$instanceRequirements = New-Object Amazon.EC2.Model.InstanceRequirementsRequest
$instanceRequirements.VCpuCount = $vcpuCount
$instanceRequirements.MemoryMiB = $memoryMiB

$launchTemplateSpec = New-Object Amazon.EC2.Model.FleetLaunchTemplateSpecificationRequest
$launchTemplateSpec.LaunchTemplateName = "my-launch-template" 
$launchTemplateSpec.Version = "1"
$override = New-Object Amazon.EC2.Model.FleetLaunchTemplateOverridesRequest
$override.InstanceRequirements = $instanceRequirements
$launchTemplateConfig = New-Object Amazon.EC2.Model.FleetLaunchTemplateConfigRequest
$launchTemplateConfig.LaunchTemplateSpecification = $launchTemplateSpec
$launchTemplateConfig.Overrides = @($override)

New-EC2Fleet `
    -SpotOptions_AllocationStrategy "price-capacity-optimized" `
    -LaunchTemplateConfig @($launchTemplateConfig) `
    -TargetCapacitySpecification_DefaultTargetCapacityType "spot" `
    -TargetCapacitySpecification_TotalTargetCapacity 20 `
    -Type "instant"
```

------

## Créer un parc d’instances Spot avec une sélection de type d’instance basée sur des attributs
<a name="abs-create-spot-fleet"></a>

Vous pouvez configurer une flotte pour qu’elle utilise la sélection de type d’instance basée sur les attributs.

Les attributs de sélection du type d’instance basé sur des attributs sont spécifiés dans la structure `InstanceRequirements`. Lorsque `InstanceRequirements` est inclus dans la configuration de la flotte, `InstanceType` et `WeightedCapacity` doivent être exclus. Ils ne peuvent pas déterminer la configuration de la flotte en même temps que les attributs d’instance.

Dans les PowerShell exemples AWS CLI et, les attributs suivants sont spécifiés :
+ `VCpuCount`— Un minimum de 2 V CPUs et un maximum de 4 CPUs V. Si vous n'avez pas besoin d'une limite maximale, vous pouvez omettre la valeur maximale.
+ `MemoryMiB` : au moins 8 Gio et au plus 16 Gio de mémoire. Si vous n’avez pas besoin d’une limite maximale, vous pouvez omettre la valeur maximale.

Cette configuration identifie tous les types d'instances dotés de 2 à 4 V CPUs et de 8 à 16 GiB de mémoire. Toutefois, la protection des prix et la stratégie d’allocation peuvent exclure certains types d’instances lorsque [le parc d’instances Spot alloue la flotte](#how-ef-uses-abs).

------
#### [ Console ]

**Pour configurer un parc d’instances Spot pour la sélection du type d’instance basée sur les attributs**

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

1. Dans le panneau de navigation, choisissez **Spot Requests** (Demandes Spot) et sélectionnez **Request Spot Instances** (Demander des instances Spot).

1. Suivez les étapes permettant de créer un parc d’instances Spot. Pour de plus amples informations, veuillez consulter [Création d’une demande de parc d’instances Spot à l’aide de paramètres définis](create-spot-fleet.md#create-spot-fleet-advanced).

   Lors de la création du parc d’instances Spot, configurez la flotte pour la sélection du type d’instance basée sur des attributs comme suit :

   1. Pour **Instance type requirements** (Exigences de type d’instance), choisissez **Specify instance attributes that match your compute requirements** (Spécifiez les attributs d’instance qui correspondent à vos exigences de calcul).

   1. Pour **v CPUs**, entrez le nombre minimum et maximum de v souhaitésCPUs. Pour ne définir aucune limite, sélectionnez **Pas de minimum**, **Pas de maximum**, ou les deux.

   1. 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.

   1. (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 des contraintes supplémentaires à votre demande.

   1. (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).

------
#### [ AWS CLI ]

**Pour configurer un parc d’instances Spot pour la sélection du type d’instance basée sur les attributs**  
Utilisez la [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html)commande pour créer un parc de spots. Spécifiez la configuration de flotte dans un fichier JSON.

```
aws ec2 request-spot-fleet \
    --region us-east-1 \
    --spot-fleet-request-config file://file_name.json
```

Le fichier exemple `file_name.json` suivant contient les paramètres permettant de configurer un parc d’instances Spot pour utiliser la sélection du type d’instance basée sur les attributs.

```
{
    "AllocationStrategy": "priceCapacityOptimized",
    "TargetCapacity": 20,
    "Type": "request",
    "LaunchTemplateConfigs": [{
        "LaunchTemplateSpecification": {
            "LaunchTemplateName": "my-launch-template",
            "Version": "1"
        },
        "Overrides": [{
            "InstanceRequirements": {
                "VCpuCount": {
                    "Min": 2,
                    "Max": 4
                },
                "MemoryMiB": {
                    "Min": 8192,
                    "Max": 16384
                }
            }
        }]
    }]
}
```

------
#### [ PowerShell ]

**Pour configurer un parc d’instances Spot pour la sélection du type d’instance basée sur les attributs**  
Utilisez l’applet de commande [Request-EC2SpotFleet](https://docs.aws.amazon.com/powershell/latest/reference/items/Request-EC2SpotFleet.html).

```
$vcpuCount = New-Object Amazon.EC2.Model.VCpuCountRange
$vcpuCount.Min = 2 
$vcpuCount.Max = 4  
$memoryMiB = New-Object Amazon.EC2.Model.MemoryMiB
$memoryMiB.Min = 8192  
$memoryMiB.Max = 16384  
$instanceRequirements = New-Object Amazon.EC2.Model.InstanceRequirements
$instanceRequirements.VCpuCount = $vcpuCount
$instanceRequirements.MemoryMiB = $memoryMiB

$launchTemplateSpec = New-Object Amazon.EC2.Model.FleetLaunchTemplateSpecification
$launchTemplateSpec.LaunchTemplateName = "my-launch-template" 
$launchTemplateSpec.Version = "1"
$override = New-Object Amazon.EC2.Model.LaunchTemplateOverrides
$override.InstanceRequirements = $instanceRequirements
$launchTemplateConfig = New-Object Amazon.EC2.Model.LaunchTemplateConfig
$launchTemplateConfig.LaunchTemplateSpecification = $launchTemplateSpec
$launchTemplateConfig.Overrides = @($override)

Request-EC2SpotFleet `
    -SpotFleetRequestConfig_AllocationStrategy "PriceCapacityOptimized" `
    -SpotFleetRequestConfig_TargetCapacity 20 `
    -SpotFleetRequestConfig_Type "Request" `
    -SpotFleetRequestConfig_LaunchTemplateConfig $launchTemplateConfig
```

------

## Exemples de configurations de flottes EC2 valides et non valides
<a name="ec2fleet-abs-example-configs"></a>

Si vous utilisez le AWS CLI pour créer une flotte EC2, vous devez vous assurer que la configuration de votre flotte est valide. Les exemples suivants illustrent les configurations valides et non valides.

Les configurations sont considérées comme non valides lorsqu’elles contiennent les éléments suivants :
+ Une seule structure `Overrides` avec `InstanceRequirements` et `InstanceType`
+ Deux structures `Overrides`, l’une avec `InstanceRequirements` et l’autre avec `InstanceType`
+ Deux structures `InstanceRequirements` avec des valeurs d’attributs qui se chevauchent au sein du même `LaunchTemplateSpecification`

**Topics**
+ [

### Configuration valide : modèle de lancement unique avec remplacements
](#ef-abs-example-config1)
+ [

### Configuration valide : modèle de lancement unique avec plusieurs InstanceRequirements
](#ef-abs-example-config2)
+ [

### Configuration valide : deux modèles de lancement, chacun avec des remplacements
](#ef-abs-example-config3)
+ [

### Configuration valide : uniquement `InstanceRequirements` est spécifié, les valeurs d’attribut ne se chevauchent pas
](#ef-abs-example-config4)
+ [

### Configuration non valide : les `Overrides` contiennent `InstanceRequirements` et `InstanceType`
](#ef-abs-example-config5)
+ [

### Configuration non valide : deux `Overrides` contiennent `InstanceRequirements` et `InstanceType`
](#ef-abs-example-config6)
+ [

### Configuration non valide : chevauchement des valeurs d’attribut
](#ef-abs-example-config7)

### Configuration valide : modèle de lancement unique avec remplacements
<a name="ef-abs-example-config1"></a>

La configuration suivante est valide. Elle contient un modèle de lancement et une structure `Overrides` contenant une structure `InstanceRequirements`. Vous trouverez ci-dessous une explication textuelle de l’exemple de configuration.

```
{
        "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "My-launch-template",
                "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 2,
                            "Max": 8
                        },
                        "MemoryMib": {
                            "Min": 0,
                            "Max": 10240
                        },
                        "MemoryGiBPerVCpu": {
                            "Max": 10000
                        },
                        "RequireHibernateSupport": true
                    }
                }
            ]
        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 5000,
        "DefaultTargetCapacityType": "spot",
        "TargetCapacityUnitType": "vcpu"
        }
    }
}
```

****`InstanceRequirements`****  
Pour utiliser la sélection d’instance basée sur les attributs, vous devez inclure la structure `InstanceRequirements` dans votre configuration de flotte et spécifier les attributs souhaités pour les instances de la flotte.

Dans l’exemple précédent, les attributs d’instance suivants sont spécifiés :
+ `VCpuCount`— Les types d'instances doivent avoir un minimum de 2 et un maximum de 8 CPUs v.
+ `MemoryMiB` : les types d’instance doivent disposer d’un maximum de 10 240 Mio de mémoire. Un minimum de 0 indique qu’il n’y a pas de limite minimale.
+ `MemoryGiBPerVCpu` : les types d’instance doivent disposer d’un maximum de 10 000 Gio de mémoire par vCPU. Le paramètre `Min` est facultatif. En l’omettant, vous n’indiquez aucune limite minimale.

**`TargetCapacityUnitType`**  
Le paramètre `TargetCapacityUnitType` spécifie l’unité de la capacité cible. Dans cet exemple, la capacité cible est `5000` et le type d’unité de capacité cible est `vcpu`, qui spécifient ensemble une capacité cible souhaitée de 5 000 vCPU. EC2 Fleet lancera suffisamment d'instances pour que le nombre total de v CPUs dans la flotte soit de 5 000 v. CPUs

### Configuration valide : modèle de lancement unique avec plusieurs InstanceRequirements
<a name="ef-abs-example-config2"></a>

La configuration suivante est valide. Elle contient un modèle de lancement et une structure `Overrides` contenant deux structures `InstanceRequirements`. Les attributs spécifiés dans `InstanceRequirements` sont valides car les valeurs ne se chevauchent pas : la première `InstanceRequirements` structure indique une `VCpuCount` valeur comprise entre 0 et 2 vCPUs, tandis que la seconde indique entre 4 et `InstanceRequirements` 8 v. CPUs

```
{
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                },
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 4,
                            "Max": 8
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            }
        ],
        "TargetCapacitySpecification": {
            "TotalTargetCapacity": 1,
            "DefaultTargetCapacityType": "spot"
        }
    }
}
```

### Configuration valide : deux modèles de lancement, chacun avec des remplacements
<a name="ef-abs-example-config3"></a>

La configuration suivante est valide. Elle contient deux modèles de lancement, chacun contenant une structure `Overrides` contenant une structure `InstanceRequirements`. Cette configuration est utile pour la prise en charge des architectures `arm` et `x86` au sein de la même flotte.

```
{
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "armLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                },
                {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "x86LaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            }
        ],
         "TargetCapacitySpecification": {
            "TotalTargetCapacity": 1,
            "DefaultTargetCapacityType": "spot"
        }
    }
}
```

### Configuration valide : uniquement `InstanceRequirements` est spécifié, les valeurs d’attribut ne se chevauchent pas
<a name="ef-abs-example-config4"></a>

La configuration suivante est valide. Elle contient deux structures `LaunchTemplateSpecification`, chacune avec un modèle de lancement et une structure `Overrides` contenant une structure `InstanceRequirements`. Les attributs spécifiés dans `InstanceRequirements` sont valides car les valeurs ne se chevauchent pas : la première `InstanceRequirements` structure indique une `VCpuCount` valeur comprise entre 0 et 2 vCPUs, tandis que la seconde indique entre 4 et `InstanceRequirements` 8 v. CPUs

```
{
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            },
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyOtherLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 4,
                            "Max": 8
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            }
        ],
        "TargetCapacitySpecification": {
            "TotalTargetCapacity": 1,
            "DefaultTargetCapacityType": "spot"
        }
    }
}
```

### Configuration non valide : les `Overrides` contiennent `InstanceRequirements` et `InstanceType`
<a name="ef-abs-example-config5"></a>

La configuration suivante n’est pas valide. La structure `Overrides` contient à la fois `InstanceRequirements` et `InstanceType`. Pour les `Overrides`, vous pouvez spécifier `InstanceRequirements` ou `InstanceType`, mais pas les deux.

```
{
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                },
                {
                    "InstanceType": "m5.large"
                }
              ]
            }
        ],
        "TargetCapacitySpecification": {
            "TotalTargetCapacity": 1,
            "DefaultTargetCapacityType": "spot"
        }
    }
}
```

### Configuration non valide : deux `Overrides` contiennent `InstanceRequirements` et `InstanceType`
<a name="ef-abs-example-config6"></a>

La configuration suivante n’est pas valide. Les structures `Overrides` contiennent à la fois `InstanceRequirements` et `InstanceType`. Vous pouvez spécifier `InstanceRequirements` ou `InstanceType`, mais pas les deux, même s’ils se trouvent dans différentes structures `Overrides`.

```
{
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            },
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyOtherLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceType": "m5.large"
                }
              ]
            }
        ],
         "TargetCapacitySpecification": {
            "TotalTargetCapacity": 1,
            "DefaultTargetCapacityType": "spot"
        }
    }
}
```

### Configuration non valide : chevauchement des valeurs d’attribut
<a name="ef-abs-example-config7"></a>

La configuration suivante n’est pas valide. Les deux structures `InstanceRequirements` contiennent chacune `"VCpuCount": {"Min": 0, "Max": 2}`. Les valeurs de ces attributs se chevauchent, ce qui entraîne des groupes de capacités en double.

```
{
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    },
                    {
                      "InstanceRequirements": {
                          "VCpuCount": {
                              "Min": 0,
                              "Max": 2
                          },
                          "MemoryMiB": {
                              "Min": 0
                          }
                      }
                  }
                }
              ]
            }
        ],
         "TargetCapacitySpecification": {
            "TotalTargetCapacity": 1,
            "DefaultTargetCapacityType": "spot"
        }
    }
}
```

## Exemples de configurations du parc d’instances Spot valides et non valides
<a name="spotfleet-abs-example-configs"></a>

Si vous utilisez le AWS CLI pour créer une flotte ponctuelle, vous devez vous assurer que la configuration de votre flotte est valide. Les exemples suivants illustrent les configurations valides et non valides.

Les configurations sont considérées comme non valides lorsqu’elles contiennent les éléments suivants :
+ Une seule structure `Overrides` avec `InstanceRequirements` et `InstanceType`
+ Deux structures `Overrides`, l’une avec `InstanceRequirements` et l’autre avec `InstanceType`
+ Deux structures `InstanceRequirements` avec des valeurs d’attributs qui se chevauchent au sein du même `LaunchTemplateSpecification`

**Topics**
+ [

### Configuration valide : modèle de lancement unique avec remplacements
](#sf-abs-example-config1)
+ [

### Configuration valide : modèle de lancement unique avec plusieurs InstanceRequirements
](#sf-abs-example-config2)
+ [

### Configuration valide : deux modèles de lancement, chacun avec des remplacements
](#sf-abs-example-config3)
+ [

### Configuration valide : uniquement `InstanceRequirements` est spécifié, les valeurs d’attribut ne se chevauchent pas
](#sf-abs-example-config4)
+ [

### Configuration non valide : les `Overrides` contiennent `InstanceRequirements` et `InstanceType`
](#sf-abs-example-config5)
+ [

### Configuration non valide : deux `Overrides` contiennent `InstanceRequirements` et `InstanceType`
](#sf-abs-example-config6)
+ [

### Configuration non valide : chevauchement des valeurs d’attribut
](#sf-abs-example-config7)

### Configuration valide : modèle de lancement unique avec remplacements
<a name="sf-abs-example-config1"></a>

La configuration suivante est valide. Elle contient un modèle de lancement et une structure `Overrides` contenant une structure `InstanceRequirements`. Vous trouverez ci-dessous une explication textuelle de l’exemple de configuration.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "My-launch-template",
                "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 2,
                            "Max": 8
                        },
                        "MemoryMib": {
                            "Min": 0,
                            "Max": 10240
                        },
                        "MemoryGiBPerVCpu": {
                            "Max": 10000
                        },
                        "RequireHibernateSupport": true
                    }
                }
            ]
        }
    ],
        "TargetCapacity": 5000,
            "OnDemandTargetCapacity": 0,
            "TargetCapacityUnitType": "vcpu"
    }
}
```

****`InstanceRequirements`****  
Pour utiliser la sélection d’instance basée sur les attributs, vous devez inclure la structure `InstanceRequirements` dans votre configuration de flotte et spécifier les attributs souhaités pour les instances de la flotte.

Dans l’exemple précédent, les attributs d’instance suivants sont spécifiés :
+ `VCpuCount`— Les types d'instances doivent avoir un minimum de 2 et un maximum de 8 CPUs v.
+ `MemoryMiB` : les types d’instance doivent disposer d’un maximum de 10 240 Mio de mémoire. Un minimum de 0 indique qu’il n’y a pas de limite minimale.
+ `MemoryGiBPerVCpu` : les types d’instance doivent disposer d’un maximum de 10 000 Gio de mémoire par vCPU. Le paramètre `Min` est facultatif. En l’omettant, vous n’indiquez aucune limite minimale.

**`TargetCapacityUnitType`**  
Le paramètre `TargetCapacityUnitType` spécifie l’unité de la capacité cible. Dans l'exemple, la capacité cible est `5000` et le type d'unité de capacité cible est`vcpu`, qui, ensemble, spécifient une capacité cible souhaitée de 5 000 CPUs v. Spot Fleet lancera suffisamment d'instances pour que le nombre total de v CPUs dans la flotte soit de 5 000 CPUs v.

### Configuration valide : modèle de lancement unique avec plusieurs InstanceRequirements
<a name="sf-abs-example-config2"></a>

La configuration suivante est valide. Elle contient un modèle de lancement et une structure `Overrides` contenant deux structures `InstanceRequirements`. Les attributs spécifiés dans `InstanceRequirements` sont valides car les valeurs ne se chevauchent pas : la première `InstanceRequirements` structure indique une `VCpuCount` valeur comprise entre 0 et 2 vCPUs, tandis que la seconde indique entre 4 et `InstanceRequirements` 8 v. CPUs

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                },
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 4,
                            "Max": 8
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            }
        ],
        "TargetCapacity": 1,
        "OnDemandTargetCapacity": 0,
        "Type": "maintain"
    }
}
```

### Configuration valide : deux modèles de lancement, chacun avec des remplacements
<a name="sf-abs-example-config3"></a>

La configuration suivante est valide. Elle contient deux modèles de lancement, chacun contenant une structure `Overrides` contenant une structure `InstanceRequirements`. Cette configuration est utile pour la prise en charge des architectures `arm` et `x86` au sein de la même flotte.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "armLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                },
                {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "x86LaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            }
        ],
        "TargetCapacity": 1,
        "OnDemandTargetCapacity": 0,
        "Type": "maintain"
    }
}
```

### Configuration valide : uniquement `InstanceRequirements` est spécifié, les valeurs d’attribut ne se chevauchent pas
<a name="sf-abs-example-config4"></a>

La configuration suivante est valide. Elle contient deux structures `LaunchTemplateSpecification`, chacune avec un modèle de lancement et une structure `Overrides` contenant une structure `InstanceRequirements`. Les attributs spécifiés dans `InstanceRequirements` sont valides car les valeurs ne se chevauchent pas : la première `InstanceRequirements` structure indique une `VCpuCount` valeur comprise entre 0 et 2 vCPUs, tandis que la seconde indique entre 4 et `InstanceRequirements` 8 v. CPUs

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            },
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyOtherLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 4,
                            "Max": 8
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            }
        ],
        "TargetCapacity": 1,
        "OnDemandTargetCapacity": 0,
        "Type": "maintain"
    }
}
```

### Configuration non valide : les `Overrides` contiennent `InstanceRequirements` et `InstanceType`
<a name="sf-abs-example-config5"></a>

La configuration suivante n’est pas valide. La structure `Overrides` contient à la fois `InstanceRequirements` et `InstanceType`. Pour les `Overrides`, vous pouvez spécifier `InstanceRequirements` ou `InstanceType`, mais pas les deux.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                },
                {
                    "InstanceType": "m5.large"
                }
              ]
            }
        ],
        "TargetCapacity": 1,
        "OnDemandTargetCapacity": 0,
        "Type": "maintain"
    }
}
```

### Configuration non valide : deux `Overrides` contiennent `InstanceRequirements` et `InstanceType`
<a name="sf-abs-example-config6"></a>

La configuration suivante n’est pas valide. Les structures `Overrides` contiennent à la fois `InstanceRequirements` et `InstanceType`. Vous pouvez spécifier `InstanceRequirements` ou `InstanceType`, mais pas les deux, même s’ils se trouvent dans différentes structures `Overrides`.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    }
                }
              ]
            },
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyOtherLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceType": "m5.large"
                }
              ]
            }
        ],
        "TargetCapacity": 1,
        "OnDemandTargetCapacity": 0,
        "Type": "maintain"
    }
}
```

### Configuration non valide : chevauchement des valeurs d’attribut
<a name="sf-abs-example-config7"></a>

La configuration suivante n’est pas valide. Les deux structures `InstanceRequirements` contiennent chacune `"VCpuCount": {"Min": 0, "Max": 2}`. Les valeurs de ces attributs se chevauchent, ce qui entraîne des groupes de capacités en double.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "MyLaunchTemplate",
                    "Version": "1"
                },
                "Overrides": [
                {
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 2
                        },
                        "MemoryMiB": {
                            "Min": 0
                        }
                    },
                    {
                      "InstanceRequirements": {
                          "VCpuCount": {
                              "Min": 0,
                              "Max": 2
                          },
                          "MemoryMiB": {
                              "Min": 0
                          }
                      }
                  }
                }
              ]
            }
        ],
        "TargetCapacity": 1,
        "OnDemandTargetCapacity": 0,
        "Type": "maintain"
    }
}
```

## Aperçu des types d’instances avec des attributs spécifiés
<a name="ec2fleet-get-instance-types-from-instance-requirements"></a>

Vous pouvez utiliser la commande [get-instance-types-from-instance-requirements](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-types-from-instance-requirements.html) pour prévisualiser les types d'instances qui correspondent aux attributs que vous spécifiez. Cela est particulièrement utile pour déterminer les attributs à spécifier dans la configuration de votre demande sans lancer d’instance. Notez que la commande ne prend pas en compte la capacité disponible.

**Pour prévisualiser une liste de types d'instances en spécifiant des attributs à l'aide du AWS CLI**

1. (Facultatif) Pour générer tous les attributs possibles pouvant être spécifiés, utilisez la commande [get-instance-types-from-instance-requirements](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-types-from-instance-requirements.html) et le paramètre. `--generate-cli-skeleton` Vous pouvez éventuellement rediriger la sortie vers un fichier pour l’enregistrer à l’aide de `input > attributes.json`.

   ```
   aws ec2 get-instance-types-from-instance-requirements \
       --region us-east-1 \
       --generate-cli-skeleton input > attributes.json
   ```

   Sortie attendue

   ```
   {
       "DryRun": true,
       "ArchitectureTypes": [
           "i386"
       ],
       "VirtualizationTypes": [
           "hvm"
       ],
       "InstanceRequirements": {
           "VCpuCount": {
               "Min": 0,
               "Max": 0
           },
           "MemoryMiB": {
               "Min": 0,
               "Max": 0
           },
           "CpuManufacturers": [
               "intel"
           ],
           "MemoryGiBPerVCpu": {
               "Min": 0.0,
               "Max": 0.0
           },
           "ExcludedInstanceTypes": [
               ""
           ],
           "InstanceGenerations": [
               "current"
           ],
           "SpotMaxPricePercentageOverLowestPrice": 0,
           "OnDemandMaxPricePercentageOverLowestPrice": 0,
           "BareMetal": "included",
           "BurstablePerformance": "included",
           "RequireHibernateSupport": true,
           "NetworkInterfaceCount": {
               "Min": 0,
               "Max": 0
           },
           "LocalStorage": "included",
           "LocalStorageTypes": [
               "hdd"
           ],
           "TotalLocalStorageGB": {
               "Min": 0.0,
               "Max": 0.0
           },
           "BaselineEbsBandwidthMbps": {
               "Min": 0,
               "Max": 0
           },
           "AcceleratorTypes": [
               "gpu"
           ],
           "AcceleratorCount": {
               "Min": 0,
               "Max": 0
           },
           "AcceleratorManufacturers": [
               "nvidia"
           ],
           "AcceleratorNames": [
               "a100"
           ],
           "AcceleratorTotalMemoryMiB": {
               "Min": 0,
               "Max": 0
           },
           "NetworkBandwidthGbps": {
               "Min": 0.0,
               "Max": 0.0
           },
           "AllowedInstanceTypes": [
               ""
           ]
       },
       "MaxResults": 0,
       "NextToken": ""
   }
   ```

1. Créez un fichier de configuration JSON à l’aide de la sortie de l’étape précédente et configurez-le comme suit :
**Note**  
Vous devez fournir des valeurs pour `ArchitectureTypes`, `VirtualizationTypes`, `VCpuCount` et `MemoryMiB`. Vous pouvez omettre les autres attributs. Lorsqu’ils sont omis, les valeurs par défaut sont utilisées.  
Pour une description de chaque attribut et de leurs valeurs par défaut, consultez [get-instance-types-from-instance-requirements](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-types-from-instance-requirements.html).

   1. Pour `ArchitectureTypes`, spécifiez un ou plusieurs types d’architecture de processeur.

   1. Pour `VirtualizationTypes`, spécifiez un ou plusieurs types de virtualisation.

   1. Pour`VCpuCount`, spécifiez le nombre minimum et maximum de CPUs v. Pour ne pas spécifier de limite minimale, pour`Min`, spécifiez`0`. Pour ne spécifier aucune limite maximale, omettez le paramètre `Max`.

   1. Pour `MemoryMiB`, spécifiez la quantité minimale et maximale de mémoire en Mio. Pour ne spécifier aucune limite minimale, pour `Min`, spécifiez `0`. Pour ne spécifier aucune limite maximale, omettez le paramètre `Max`.

   1. Vous pouvez éventuellement spécifier un ou plusieurs autres attributs pour limiter davantage la liste des types d’instance renvoyés.

1. Pour prévisualiser les types d'instances dotés des attributs que vous avez spécifiés dans le fichier JSON, utilisez la commande [get-instance-types-from-instance-requirements](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-instance-types-from-instance-requirements.html) et spécifiez le nom et le chemin d'accès à votre fichier JSON à l'aide du paramètre. `--cli-input-json` Vous pouvez éventuellement formater la sortie pour qu’elle apparaisse dans un format de tableau.

   ```
   aws ec2 get-instance-types-from-instance-requirements \
       --cli-input-json file://attributes.json \
       --output table
   ```

   Exemple de fichier *attributes.json*

   Dans cet exemple, les attributs requis sont inclus dans le fichier JSON. Ils sont `ArchitectureTypes`, `VirtualizationTypes`, `VCpuCount` et `MemoryMiB`. En outre, l’attribut facultatif `InstanceGenerations` est également inclus. Notez que pour `MemoryMiB`, la valeur `Max` peut être omise pour indiquer qu’aucune limite n’est applicable.

   ```
   {
       
       "ArchitectureTypes": [
           "x86_64"
       ],
       "VirtualizationTypes": [
           "hvm"
       ],
       "InstanceRequirements": {
           "VCpuCount": {
               "Min": 4,
               "Max": 6
           },
           "MemoryMiB": {
               "Min": 2048
           },
           "InstanceGenerations": [
               "current"
           ]
       }
   }
   ```

   Exemple de sortie

   ```
   ------------------------------------------
   |GetInstanceTypesFromInstanceRequirements|
   +----------------------------------------+
   ||             InstanceTypes            ||
   |+--------------------------------------+|
   ||             InstanceType             ||
   |+--------------------------------------+|
   ||  c4.xlarge                           ||
   ||  c5.xlarge                           ||
   ||  c5a.xlarge                          ||
   ||  c5ad.xlarge                         ||
   ||  c5d.xlarge                          ||
   ||  c5n.xlarge                          ||
   ||  d2.xlarge                           ||
   ...
   ```

1. Après avoir identifié les types d’instance qui répondent à vos besoins, prenez note des attributs d’instance que vous avez utilisés afin que vous puissiez les utiliser lors de la configuration de votre demande de flotte.

# Utilisez la pondération des instances pour gérer les coûts et les performances de votre flotte EC2 ou parc d’instances Spot
<a name="ec2-fleet-instance-weighting"></a>

Grâce à la pondération d’instance, vous attribuez un poids à chaque type d’instance dans votre flotte EC2 ou votre parc d’instances Spot pour représenter leur capacité de calcul et leurs performances les unes par rapport aux autres. Sur la base des pondérations, le parc peut utiliser n’importe quelle combinaison des types d’instances spécifiés, à condition qu’il puisse atteindre la capacité cible souhaitée. Cela peut vous aider à gérer les coûts et les performances de votre flotte.

Le poids représente les unités de capacité qu’un type d’instance contribue à la capacité cible totale.

**Exemple : utilisez la pondération des instances pour la gestion des performances**

Supposons que votre parc comporte deux types d’instances et que vous attribuez une pondération différente à chaque type d’instance pour refléter le nombre dont vous avez besoin pour atteindre les mêmes performances, comme suit :
+  `m5.large` – poids : 1
+ `m5.2xlarge` – poids : 4

En attribuant ces pondérations, vous dites qu’il vous faudrait 4 instances `m5.large` pour obtenir les mêmes performances qu’une seule `m5.2xlarge`.

Pour calculer le nombre d’instances de chaque type d’instance nécessaires pour une capacité cible donnée, utilisez la formule suivante :

`target capacity / weight = number of instances`

Si votre capacité cible est de 8 unités, la flotte peut atteindre la capacité cible avec l’une `m5.large` ou l’autre des deux `m5.2xlarge`, ou une combinaison des deux, comme suit :
+ 8 instances `m5.large` (capacité de 8 / poids de 1 = 8 instances)
+ 2 instances `m5.2xlarge` (capacité de 8 / poids de 4 = 2 instances)
+ 4 `m5.large` et 1 `m5.2xlarge`

**Exemple : utilisez la pondération des instances pour la gestion des coûts**

Par défaut, le prix que vous spécifiez représente le prix *par heure d’instance*. Lorsque vous utilisez la fonction de pondération d’instance, le prix que vous spécifiez correspond au prix *par heure d’unité*. Vous pouvez calculer le prix par heure d’unité en divisant le prix pour un type d’instance par le nombre d’unités qu’il représente. La flotte calcule le nombre d’instances à lancer en divisant la capacité cible par le poids de l’instance. Si le résultat n’est pas un entier, la flotte d’instances l’arrondit à l’entier suivant afin que la taille de votre flotte ne soit pas inférieure à sa capacité cible. Le flotte d’instances peut sélectionner n’importe quel groupe indiqué dans votre spécification de lancement, même si la capacité des instances lancées dépasse la capacité cible demandée.

Le tableau suivant présente des exemples de calculs pour déterminer le prix unitaire d’une flotte d’une capacité cible de 10.


| Type d’instance | Pondération de l’instance | Capacité cible | Nombre d’instances lancées | Prix par heure d’instance | Prix par heure d’unité | 
| --- | --- | --- | --- | --- | --- | 
| r3.xlarge |  2  | 10 |  5 (10 divisé par 2)  |  0,05 USD  |  0,025 USD (0,05 divisé par 2)  | 
| r3.8xlarge |  8  | 10 |  2 (10 divisé par 8, résultat arrondi)  |  0,10 USD  |  0,0125 USD (0,10 divisé par 8)  | 

Utilisez la pondération d’instance de flotte comme suit, afin de mettre en service la capacité cible que vous voulez dans les groupes selon le prix par unité le plus bas au moment de l’exécution :

1. Définissez la capacité cible de votre flotte, soit en instances (par défaut), soit en unités de votre choix, telles que vCPU, mémoire, stockage ou débit.

1. Définissez le prix par unité.

1. Pour chaque spécification de lancement, spécifiez la pondération, à savoir le nombre d’unités que représente ce type d’instance par rapport à la capacité cible.

**Exemple de pondération d’instance**  
Considérons une demande de flotte avec la configuration suivante :
+ Capacité cible de 24
+ Spécification de lancement avec le type d’instance `r3.2xlarge` et une pondération de 6
+ Spécification de lancement avec le type d’instance `c3.xlarge` et une pondération de 5

La pondération correspond au nombre d’unités du type d’instance par rapport à la capacité cible. Si la première spécification de lancement fournit le prix par unité le plus faible (prix pour `r3.2xlarge` par heure d’instance divisé par 6), le flotte lance quatre de ces instances (24 divisé par 6).

Si la deuxième spécification de lancement fournit le prix par unité le plus bas (prix pour `c3.xlarge` par heure d’instance divisé par 5), le flotte lance cinq de ces instances (24 divisé par 5, résultat arrondi).

**Pondération d’instance et stratégie d’allocation**  
Considérons une demande de flotte avec la configuration suivante :
+ Capacité cible de 30 instances Spot
+ Spécification de lancement avec le type d’instance `c3.2xlarge` et une pondération de 8
+ Spécification de lancement avec le type d’instance `m3.xlarge` et une pondération de 8
+ Spécification de lancement avec le type d’instance `r3.xlarge` et une pondération de 8

La flotte lancerait quatre instances (30 divisé par 8, résultat arrondi à l’unité supérieure). Avec la stratégie `diversified`, le parc d’instances lance une instance dans chacun des trois groupes, et la quatrième instance dans l’un des trois groupes fournit le prix par unité le plus bas.

# Utilisez des stratégies d’allocation pour déterminer la manière dont les flottes d’instances EC2 ou Spot utilisent les capacités Spot et Spot
<a name="ec2-fleet-allocation-strategy"></a>

Lorsque vous utilisez plusieurs groupes de capacités (chacun comprenant un type d’instance et une zone de disponibilité) dans une flotte EC2 ou un parc d’instances Spot, vous pouvez utiliser une *stratégie d’allocation* pour gérer la façon dont Amazon EC2 fournit vos capacités Spot et à la demande à partir de ces groupes. Les stratégies d’allocation peuvent optimiser la capacité disponible, le prix et les types d’instances à utiliser. Il existe différentes stratégies d’allocation pour les instances Spot et les instances à la demande.

**Topics**
+ [

## Stratégies d’allocation pour instances Spot
](#ec2-fleet-allocation-strategies-for-spot-instances)
+ [

## Stratégie d’allocation avec les instances à la demande
](#ec2-fleet-allocation-strategies-for-on-demand-instances)
+ [

## Choisir la stratégie d’allocation Spot appropriée
](#ec2-fleet-allocation-use-cases)
+ [

## Maintenir la capacité cible pour les instances Spot
](#ec2-fleet-maintain-fleet-capacity)
+ [

## Hiérarchiser les types d’instance pour la capacité à la demande
](#ec2-fleet-on-demand-priority)

## Stratégies d’allocation pour instances Spot
<a name="ec2-fleet-allocation-strategies-for-spot-instances"></a>

Votre configuration du lancement détermine tous les groupes de capacité Spot possibles (types d’instance et zones de disponibilité) à partir desquels la flotte EC2 ou le parc d’instances Spot peut lancer des instances Spot. Cependant, lors du lancement des instances, la flotte utilise la stratégie d’allocation que vous spécifiez pour choisir les groupes spécifiques parmi tous vos groupes possibles.

**Note**  
(Instances Linux uniquement) Si vous configurez votre instance Spot pour qu’elle soit lancée avec [AMD SEV-SNP](sev-snp.md) activé, des frais d’utilisation horaires supplémentaires vous seront facturés, équivalant à 10 % du [taux horaire à la demande](https://aws.amazon.com/ec2/pricing/on-demand/) du type d’instance sélectionné. Si la stratégie d’allocation utilise le prix comme entrée, la flotte n’inclut pas ces frais supplémentaires ; seul le prix Spot est utilisé.

Vous pouvez spécifier l’une des stratégies d’allocation suivantes pour les instances Spot :

**Optimisation de la capacité de prix** (recommandée)  
La flotte identifie les groupes dotés des capacités disponibles les plus élevées pour le nombre d’instances qui sont lancées. Cela signifie que nous demanderons des instances Spot auprès des groupes qui, selon nous, présentent le moins de risques d’interruption à court terme. La flotte demande ensuite des instances Spot auprès du pool le moins coûteux de ces pools.  
La stratégie d’allocation **optimisée en fonction de la capacité de prix** constitue le meilleur choix pour la plupart des charges de travail Spot, telles que les applications conteneurisées sans état, les microservices, les applications Web, les tâches de données et d’analyse, ainsi que le traitement par lots.  
Si vous utilisez le AWS CLI, le nom du paramètre est `price-capacity-optimized` pour EC2 Fleet et `priceCapacityOptimized` pour Spot Fleet.

**Capacité optimisée**  
La flotte identifie les groupes dotés des capacités disponibles les plus élevées pour le nombre d’instances qui sont lancées. Cela signifie que nous demanderons des instances Spot auprès des groupes qui, selon nous, présentent le moins de risques d’interruption à court terme.  
Avec les instances Spot, la tarification change lentement au fil du temps en fonction des tendances à long terme en matière d’offre et de demande, mais la capacité fluctue en temps réel. La stratégie **d’optimisation de la capacité** lance automatiquement des instances Spot dans les pools les plus disponibles en examinant les données de capacité en temps réel et en prédisant les instances les plus disponibles. Cela convient parfaitement aux charges de travail dont l’interruption entraîne des coûts plus élevés associés au travail de redémarrage, telles que le temps d’intégration continue (CI), le rendu d’images et de médias, le deep learning, ainsi que les charges de travail de calcul haute performance (HPC), qui peuvent avoir un coût d’interruption plus élevé associées au travail de redémarrage. En offrant la possibilité de moins d’interruptions, la stratégie **d’optimisation de la capacité** peut réduire le coût global de votre charge de travail.  
Alternativement, vous pouvez utiliser la stratégie d’allocation **priorisée et optimisée en fonction de la capacité** avec un paramètre de priorité pour définir l’ordre des types d’instance à utiliser de la priorité la plus élevée à la plus basse. Vous pouvez définir la même priorité pour différents types d’instance. La flotte optimisera d’abord la capacité, mais respectera les priorités des types d’instance au mieux (par exemple, si le respect des priorités n’affecte pas de manière significative la capacité de la flotte à fournir une capacité optimale). C’est une bonne option pour les charges de travail pour lesquelles la possibilité de perturbation doit être minimisée, mais la priorité de certains types d’instances est également importante. Notez que lorsque vous définissez la priorité des types d’instance pour votre capacité Spot, la même priorité est également appliquée à vos instances à la demande si la stratégie d’allocation à la demande est définie **priorité**. Pour le parc d’instances Spot, l’utilisation des priorités n’est possible que si votre flotte utilise un modèle de lancement.   
Si vous utilisez le AWS CLI, les noms des paramètres sont `capacity-optimized` et `capacity-optimized-prioritized` pour EC2 Fleet et `capacityOptimizedPrioritized` pour Spot `capacityOptimized` Fleet.

**Diversifié**  
Les instances Spot sont réparties sur tous les groupes de capacité Spot. Si vous utilisez le AWS CLI, le nom du paramètre correspond à la fois `diversified` à EC2 Fleet et à Spot Fleet.

**Prix le plus bas** (non recommandé)  
Nous ne recommandons pas la stratégie d’allocation du **prix le plus bas**, car c’est elle qui présente le risque d’interruption le plus élevé pour vos instances Spot.
Les instances Spot proviennent du groupe dont le tarif est le plus bas et qui dispose d’une capacité disponible. Lorsque vous utilisez le AWS CLI, il s'agit de la stratégie par défaut. Toutefois, nous vous recommandons de remplacer la valeur par défaut en spécifiant la stratégie d’allocation **optimisée en fonction de la capacité de prix**.  
Avec la stratégie du prix le plus bas, si le groupe de prix le plus bas n’a pas de capacité disponible, les instances Spot proviennent du groupe de prix le plus bas suivant qui a une capacité disponible. Si un groupe n’a plus de capacité avant de répondre à votre demande, la flotte continue de répondre à votre demande en puisant dans le groupe suivant le moins coûteux. Pour garantir que la capacité souhaitée est atteinte, vous pouvez recevoir des instances Spot de plusieurs groupes.  
Cette stratégie prenant uniquement en compte que le prix des instances et non la capacité disponible, elle peut entraîner des taux d’interruption élevés.  
La stratégie de répartition du prix le plus bas n’est disponible que si vous utilisez le AWS CLI. Le nom du paramètre est `lowest-price` pour la flotte EC2 et `lowestPrice` pour le parc d’instances Spot.

**Nombre de groupes à utiliser**  
Nombre de groupes d’instances Spot auxquels allouer votre capacité Spot cible. Valable uniquement lorsque la stratégie d’allocation est définie sur le **prix le plus bas**. La flotte sélectionne les groupes Spot les moins chers et répartit équitablement votre capacité Spot cible entre le nombre de groupes d’instances Spot que vous spécifiez.  
Notez que la flotte tente de puiser au mieux des instances Spot dans le nombre de groupes que vous spécifiez. Si un groupe n’a plus de capacité Spot avant de répondre à votre capacité cible, la flotte continue de répondre à votre demande en puisant dans le groupe suivant le moins coûteux. Pour garantir l’atteinte de votre capacité cible, il se peut que vous receviez des instances Spot provenant d’un nombre de groupes supérieur à celui que vous avez spécifié. De même, si la plupart des pools n’ont pas de capacité Spot, il se peut que vous receviez votre capacité cible complète à partir d’un nombre de groupes inférieur à celui que vous avez spécifié.  
Ce paramètre n’est disponible que lorsque vous spécifiez la stratégie d’allocation du **prix le plus bas** et uniquement lorsque vous utilisez le AWS CLI. Le nom du paramètre est à la fois `InstancePoolsToUseCount` pour les flottes d’instances EC2 et Spot.

## Stratégie d’allocation avec les instances à la demande
<a name="ec2-fleet-allocation-strategies-for-on-demand-instances"></a>

Votre configuration de lancement détermine tous les groupes de capacité possibles (types d’instance et zones de disponibilité) à partir desquels la flotte EC2 ou le parc d’instances Spot peut lancer des instances à la demande. Cependant, lors du lancement des instances, la flotte utilise la stratégie d’allocation que vous spécifiez pour choisir les groupes spécifiques parmi tous vos groupes possibles.

Vous pouvez spécifier l’une des stratégies d’allocation suivantes pour les instances à la demande :

**Prix le plus bas**  
Les instances à la demande proviennent du groupe dont le tarif est le plus bas et qui dispose d’une capacité disponible. Il s’agit de la stratégie par défaut.  
Si le groupe le moins coûteux ne dispose pas de capacité, les instances à la demande proviennent du groupe le moins coûteux suivant qui a une capacité disponible.  
Si un groupe n’a plus de capacité avant de répondre à votre demande, la flotte continue de répondre à votre demande en puisant dans le groupe suivant le moins coûteux. Pour garantir que la capacité souhaitée est atteinte, vous pouvez recevoir des instances à la demande de plusieurs groupes.

**Priorités**  
La flotte utilise la priorité que vous avez attribuée à chaque remplacement de modèle de lancement, en lançant les types d’instance dans l’ordre de la priorité la plus élevée. Cette stratégie ne peut pas être utilisée avec une sélection de type d’instance basée sur des attributs. Pour obtenir un exemple de la manière d’utiliser cette stratégie d’allocation, reportez-vous à [Hiérarchiser les types d’instance pour la capacité à la demande](#ec2-fleet-on-demand-priority).

## Choisir la stratégie d’allocation Spot appropriée
<a name="ec2-fleet-allocation-use-cases"></a>

Vous pouvez optimiser votre flotte en fonction de votre cas d’utilisation en choisissant la stratégie d’allocation de points appropriée.

### Trouver un équilibre entre le prix le plus bas et la capacité disponible
<a name="ec2-fleet-strategy-balance-price-and-capacity-availability"></a>

Pour équilibrer les compromis entre les groupes de capacité Spot les moins chers et les groupes de capacité Spot ayant la plus grande disponibilité de capacité, nous vous recommandons d’utiliser la stratégie d’allocation **optimisée en fonction du prix et de la capacité**. Cette stratégie prend des décisions concernant les groupes auprès desquels il convient de demander des instances Spot en fonction à la fois du prix des groupes et de la capacité disponible des instances Spot dans ces groupes. Cela signifie que nous demanderons des instances Spot auprès des groupes qui, selon nous, présentent le moins de risques d’interruption à court terme, tout en tenant compte du prix.

Si votre flotte exécute des charges de travail résilientes et sans état, notamment des applications conteneurisées, des microservices, des applications web, des tâches de données et d’analyse, et des traitements par lots, utilisez alors la stratégie d’allocation **optimisée en fonction de la capacité de prix** pour réaliser des économies optimales et bénéficier d’une meilleure disponibilité de la capacité.

Si votre flotte exécute des charges de travail dont l’interruption entraîne des coûts plus élevés associés au travail de redémarrage, vous devez implémenter des points de contrôle afin que les applications puissent redémarrer à partir de ce point, si elles sont interrompues. En utilisant le point de contrôle, vous faites en sorte que la stratégie d’allocation **optimisée en fonction du prix et de la capacité** soit adaptée à ces charges de travail, car elle alloue la capacité à partir des pools les moins chers qui offrent également un faible taux d’interruption de l’instance Spot.

Par exemple, les configurations JSON qui utilisent la stratégie d’allocation **optimisée par le prix et la capacité**, consultez ce qui suit :
+ Flotte EC2 – [Exemple 10 : Lancer des instances ponctuelles dans une price-capacity-optimized flotte](ec2-fleet-examples.md#ec2-fleet-config11)
+ Parc d’instances Spot – [Exemple 11 : lancement d’instances Spot dans une flotte priceCapacityOptimized](spot-fleet-examples.md#fleet-config11)

### Lorsque les charges de travail ont un coût d’interruption élevé
<a name="ec2-fleet-strategy-capacity-optimized"></a>

Vous pouvez éventuellement utiliser la stratégie **d’optimisation de la capacité** si vous exécutez des charges de travail qui utilisent des types d’instances au prix similaire ou si le coût de l’interruption est si important que toute économie est insuffisante par rapport à une augmentation marginale du nombre d’interruptions. Cette stratégie alloue la capacité à partir des groupes de capacité Spot les plus disponibles qui offrent la possibilité de moins d’interruptions, ce qui peut réduire le coût global de votre charge de travail.

Lorsque la possibilité d’interruptions doit être minimisée mais que la préférence pour certains types d’instance est importante, vous pouvez exprimer vos priorités de groupe en utilisant la stratégie d’allocation **hiérarchisée et optimisée de la capacité**, puis en définissant l’ordre des types d’instance à utiliser, de la priorité la plus élevée à la plus faible.

Notez que lorsque vous définissez les priorités sur **, les mêmes priorités sont également appliquées à vos instances à la demande si l’option à la demande ** est définie sur **priorités**. Notez également que, pour le parc d’instances Spot, l’utilisation des priorités n’est possible que si votre flotte utilise un modèle de lancement.

Par exemple, les configurations JSON qui utilisent la stratégie d’allocation **optimisée en termes de capacité**, consultez ce qui suit :
+ Flotte EC2 – [Exemple 8 : lancer des instances Spot dans une flotte optimisée pour la capacité](ec2-fleet-examples.md#ec2-fleet-config9)
+ Parc d’instances Spot – [Exemple 9 : lancer des instances Spot dans une flotte optimisée pour la capacité](spot-fleet-examples.md#fleet-config9)

Par exemple, les configurations JSON qui utilisent la stratégie d’allocation **priorisée optimisée en termes de capacité**, consultez ce qui suit :
+ Flotte EC2 – [Exemple 9 : lancer des instances Spot dans une flotte optimisée pour la capacité avec des priorités](ec2-fleet-examples.md#ec2-fleet-config10)
+ Parc d’instances Spot – [Exemple 10 : lancer des instances Spot dans une flotte optimisée pour la capacité avec des priorités](spot-fleet-examples.md#fleet-config10)

### Lorsque votre charge de travail est flexible dans le temps et que la capacité disponible n’est pas un facteur
<a name="ec2-fleet-strategy-time-flexible-workload"></a>

Si votre flotte est petite ou fonctionne pendant une courte période, vous pouvez utiliser la **capacité de prix optimisée** pour maximiser les économies tout en tenant compte de la disponibilité de la capacité.

### Lorsque votre flotte est importante ou s’exécute pendant une longue période
<a name="ec2-fleet-strategy-large-workload-long-time"></a>

Si votre flotte est importante ou fonctionne pendant une longue période, vous pouvez améliorer la disponibilité de votre flotte en répartissant les instances Spot sur plusieurs pools à l’aide de la stratégie **diversifiée**. Par exemple, si votre flotte spécifie 10 groupes et une capacité cible de 100 instances, la flotte lance 10 instances Spot dans chaque groupe. Si le prix Spot d’un pool dépasse le prix maximum de ce pool, seul 10 % de votre flotte est touché. Avec cette stratégie, votre flotte est également moins affecté par les augmentations du prix Spot dans un pool au fil du temps. Avec la stratégie **diversifiée**, la flotte ne lance pas d’instances Spot dans des groupes dont le prix Spot est égal ou supérieur au [prix à la demande](https://aws.amazon.com/ec2/pricing/).

## Maintenir la capacité cible pour les instances Spot
<a name="ec2-fleet-maintain-fleet-capacity"></a>

Une fois les instances Spot résiliées en raison d’un changement de prix Spot ou de la modification de la capacité disponible d’un groupe de capacités Spot, une flotte de type `maintain` lance des instances Spot de remplacement. La stratégie d’allocation détermine les groupes à partir desquels les instances de remplacement sont lancées, comme suit :
+ Si la stratégie d’allocation est **capacité de prix optimisée**, la flotte lance les instances de remplacement dans les groupes présentant le plus de capacités d’instances Spot disponibles, tout en tenant compte du prix et en identifiant les groupes les moins chers avec une capacité disponible élevée.
+ Si la stratégie d’allocation **capacité optimisée**, la flotte lance les instances de remplacement dans les groupes avec le plus de capacités d’instances Spot disponibles.
+ Si la stratégie d’allocation est **diversifiée**, la flotte répartit les Instances Spot de remplacement entre les groupes restants.

## Hiérarchiser les types d’instance pour la capacité à la demande
<a name="ec2-fleet-on-demand-priority"></a>

Lorsqu’une flotte EC2 ou un parc d’instances Spot tente de fournir votre capacité à la demande, elle lance par défaut le type d’instance dont le prix est le plus bas en premier. Si la stratégie d’allocation à la demande est définie sur **priorité**, la flotte utilise la priorité pour déterminer le type d’instance à utiliser en premier lors de l’exécution de la capacité à la demande. La priorité est affectée au remplacement du modèle de lancement, et la priorité la plus élevée est lancée en premier.

**Exemple : donner la priorité aux types d’instance**

Dans cet exemple, vous configurez trois dérogations au modèle de lancement, chacune avec un type d’instance différent.

Le prix à la demande des types d’instance varie. Voici les types d’instance utilisés dans cet exemple, classés par ordre de prix, en commençant par le type d’instance le moins cher :
+ `m4.large` : le moins cher
+ `m5.large`
+ `m5a.large`

Si vous n’utilisez pas la priorité pour déterminer l’ordre, la flotte remplit la capacité à la demande en commençant par le type d’instance le moins cher.

Toutefois, supposons que vous avez des instances réservées `m5.large` inutilisées que vous voulez utiliser en premier. Vous pouvez définir la priorité de remplacement du modèle de lancement afin que les types d’instance soient utilisés dans l’ordre de priorité, comme suit :
+ `m5.large` : priorité 1
+ `m4.large` : priorité 2
+ `m5a.large` : priorité 3

# Utilisez le rééquilibrage des capacités dans la flotte EC2 et le parc Spot pour remplacer les instances ponctuelles à risque
<a name="ec2-fleet-capacity-rebalance"></a>

Grâce au rééquilibrage des capacités, votre flotte EC2 ou votre parc d’instances Spot peut maintenir la capacité Spot souhaitée en remplaçant de manière proactive les instances Spot présentant un risque d’interruption. Lorsqu’une instance Spot présente un risque élevé d’interruption, Amazon EC2 envoie une recommandation de [rééquilibrage](rebalance-recommendations.md). Si le rééquilibrage de capacité est activé, la recommandation de rééquilibrage déclenche le lancement d’une nouvelle instance ponctuelle avant que l’instance à risque ne soit interrompue.

Le rééquilibrage de capacité vous permet de maintenir la disponibilité de la charge de travail en augmentant de manière proactive votre flotte avec une nouvelle instance Spot avant qu’une instance en cours d’exécution ne soit interrompue par Amazon EC2.

**Pour configurer la flotte EC2 afin qu’elle utilise le rééquilibrage des capacités pour lancer une instance Spot de remplacement**  
Utilisez la commande [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) et les paramètres appropriés dans la structure `MaintenanceStrategies`. Pour obtenir un exemple de configuration JSON, consultez [Exemple 7 : Configurer le rééquilibrage de capacité pour lancer les instances Spot de remplacement](ec2-fleet-examples.md#ec2-fleet-config8).

**Pour configurer un parc d’instances Spot afin d’utiliser le rééquilibrage des capacités pour lancer une Instance Spot de remplacement**  
Vous pouvez utiliser la console Amazon EC2 ou le AWS CLI pour configurer le rééquilibrage de capacité.

(Console) Lors de la création du parc d’instances Spot, cochez la case **Rééquilibrage des capacités**. Pour plus d’informations, consultez l’étape 6.d dans [Création d’une demande de parc d’instances Spot à l’aide de paramètres définis](create-spot-fleet.md#create-spot-fleet-advanced).

(AWS CLI) Utilisez la [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html)commande et les paramètres appropriés dans la `SpotMaintenanceStrategies` structure. Pour obtenir un exemple de configuration JSON, consultez [Exemple 8 : Configurer le rééquilibrage de capacité pour lancer les instances Spot de remplacement](spot-fleet-examples.md#fleet-config8).

**Topics**
+ [

## Limitations
](#ec2-fleet-capacity-rebalance-limitations)
+ [

## Options de configuration
](#ec2-fleet-capacity-rebalance-config-options)
+ [

## Considérations
](#ec2-fleet-capacity-rebalance-considerations)

## Limitations
<a name="ec2-fleet-capacity-rebalance-limitations"></a>
+ Le rééquilibrage de capacité est disponible uniquement pour les flottes de type `maintain`.
+ Lorsque la flotte est en cours d’exécution, vous ne pouvez pas modifier le paramètre Rééquilibrage de capacité. Pour modifier le paramètre Rééquilibrage de capacité, vous devez supprimer la flotte et en créer un nouveau.

## Options de configuration
<a name="ec2-fleet-capacity-rebalance-config-options"></a>

La `ReplacementStrategy` pour la flotte EC2 et le parc d’instances Spot prennent en charge les deux valeurs suivantes :

`launch-before-terminate`  
Amazon EC2 met fin aux instances Spot qui reçoivent une notification de rééquilibrage après le lancement de nouvelles instances Spot de remplacement. Quand vous spécifiez `launch-before-terminate`, vous devez également spécifier une valeur pour `termination-delay`. Une fois les nouvelles instances de remplacement lancées, Amazon EC2 attend la durée du `termination-delay`, puis résilie les anciennes instances. Pour `termination-delay`, le minimum est de 120 secondes (2 minutes) et le maximum est de 7 200 secondes (2 heures).  
Nous vous recommandons d’utiliser `launch-before-terminate` uniquement si vous pouvez prédire la durée de la procédure d’arrêt de votre instance. Cela garantit que les anciennes instances ne sont résiliées qu’une fois les procédures d’arrêt terminées. Notez qu’Amazon EC2 peut interrompre les anciennes instances avec un avertissement de deux minutes avant le `termination-delay`.  
Nous déconseillons fortement d’utiliser la stratégie d’allocation `lowest-price` (flotte EC2) ou `lowestPrice` (parc d’instances Spot) en combinaison avec `launch-before-terminate` pour éviter d’avoir des instances Spot de remplacement qui sont également à un risque élevé d’interruption.

`launch`  
Amazon EC2 lance des instances Spot de remplacement lorsqu’une notification de rééquilibrage est émise pour les instances Spot existantes. Amazon EC2 ne résilie pas les instances qui reçoivent une notification de rééquilibrage. Vous pouvez résilier les anciennes instances ou les laisser en cours d’exécution. Toutes les instances en cours d’exécution vous sont facturées.

## Considérations
<a name="ec2-fleet-capacity-rebalance-considerations"></a>

Si vous configurez une flotte EC2 ou un parc d’instances Spot pour le rééquilibrage de capacité, tenez compte des points suivants :

**Fournissez autant de groupes de capacité Spot que possible dans la demande**  
Configurez votre flotte pour utiliser plusieurs types d’instance et zones de disponibilité. Cela permet de lancer des instances Spot dans divers groupes dz capacité Spot. Pour de plus amples informations, veuillez consulter [Soyez flexible en ce qui concerne les types d’instance et les zones de disponibilité](spot-best-practices.md#be-instance-type-flexible).

**Éviter un risque élevé d’interruption des instances Spot de remplacement**  
Pour éviter un risque d’interruption élevé, nous vous recommandons vivement de ne pas utiliser la stratégie d’allocation `capacity-optimized` ou `capacity-optimized-prioritized`. Ces stratégies garantissent que les instances Spot de remplacement sont lancées dans les groupes de capacité Spot optimaux et sont donc moins susceptibles d’être interrompues dans un proche avenir. Pour de plus amples informations, veuillez consulter [Utiliser la stratégie d’allocation optimisée pour le prix et la capacité](spot-best-practices.md#use-capacity-optimized-allocation-strategy).  
Vos instances Spot de remplacement peuvent présenter un risque élevé d’interruption si vous utilisez la stratégie d’allocation `lowest-price`. En effet, Amazon EC2 lancera toujours des instances dans le groupe le moins cher qui dispose de capacités disponibles à ce moment, même si vos instances Spot de remplacement risquent d’être interrompues peu après leur lancement.

**Amazon EC2 ne lancera une nouvelle instance que si la disponibilité est identique ou meilleure**  
L’un des objectifs du rééquilibrage de capacité est d’améliorer la disponibilité d’une instance Spot. Si une instance Spot existante reçoit une recommandation de rééquilibrage, Amazon EC2 ne lancera une nouvelle instance que si la nouvelle instance offre une disponibilité supérieure ou égale à celle de l’instance existante. Si le risque d’interruption d’une nouvelle instance est plus important que celui de l’instance existante, Amazon EC2 ne lancera pas de nouvelle instance. Amazon EC2 continuera toutefois à évaluer les groupes de capacité Spot et lancera une nouvelle instance si la disponibilité s’améliore.  
Il est possible que votre instance existante soit interrompue sans qu’Amazon EC2 ne lance une nouvelle instance de manière proactive. Lorsque cela se produit, Amazon EC2 essayera de lancer une nouvelle instance, que la nouvelle instance présente un risque d’interruption élevé ou non.

**Le rééquilibrage de capacité n’augmente pas le taux d’interruption de votre instance Spot**  
Lorsque vous activez le rééquilibrage de la capacité, cette action n’augmente pas votre [Taux d’interruption d’instance Spot.](spot-interruptions.md)(le nombre d’instances Spot qui sont récupérées lorsqu’Amazon EC2 doit récupérer de l’espace. Toutefois, si le rééquilibrage de la capacité détecte une potentielle interruption d’instance, Amazon EC2 essayera instantanément de lancer une nouvelle instance. En résultat, un nombre supérieur d’instances pourraient être remplacées, comparativement au scénario où vous attendriez qu’Amazon EC2 lance une nouvelle instance après l’interruption de l’instance à risque.  
Bien que vous puissiez remplacer davantage d’instances lorsque le rééquilibrage de la capacité est activé, vous gagnerez à faire preuve de proactivité que de réactivité en disposant de plus de temps d’action avant l’interruption de vos instances. En général, après un [Avis d’interruption d’instance Spot.](spot-instance-termination-notices.md), vous ne disposez que deux minutes pour arrêter correctement votre instance. Etant donné que le rééquilibrage de la capacité lance une nouvelle instance à l’avance, vous donnez aux processus existants de meilleures chances de se terminer sur votre instance à risque. Vous pouvez démarrer les procédures d’arrêt de votre instance et empêcher la planification de nouveaux travaux sur votre instance à risque. Vous pouvez également commencer à préparer l’instance nouvellement lancée afin de prendre le contrôle de l’application. Grâce au remplacement proactif de Capacity Rebalancing, vous bénéficiez d’une continuité.  
À titre d’exemple théorique pour démontrer les risques et les avantages liés au rééquilibrage des capacités, considérez le scénario suivant :  
+ 14 h 00 : une recommandation de rééquilibrage est reçue pour l’instance-A, et Amazon EC2 essaie instantanément de lancer une Instance-B de remplacement, ce qui vous laisse le temps de démarrer vos procédures d’arrêt.\$1
+ 14 h 30 — Une recommandation de rééquilibrage est reçue pour l’instance-B, remplacée par Instance-C, ce qui vous donne le temps de démarrer vos procédures d’arrêt. \$1
+ 14 h 32 — Si le rééquilibrage de la capacité n’était pas activé, et si un avis d’interruption d’instance Spot avait été reçu à 14h32 pour l’instance-A, vous n’auriez disposé que de deux minutes pour agir. Cependant, l’instance-A aurait été en cours d’exécution jusqu’à ce moment.
\$1 Si `launch-before-terminate` est spécifié, Amazon EC2 mettra fin à l’instance à risque après la mise en ligne de l’instance de remplacement.

**Amazon EC2 peut lancer de nouvelles instances Spot de remplacement jusqu’à ce que la capacité exécutée représente le double de la capacité cible**  
Lorsqu’une flotte est configurée pour le rééquilibrage de capacité, la flotte tente de lancer une nouvelle instance Spot de remplacement pour chaque instance Spot qui reçoit une recommandation de rééquilibrage. Une fois qu’une instance Spot reçoit une recommandation de rééquilibrage, elle n’est plus comptabilisée dans la capacité exécutée. Selon la stratégie de remplacement, Amazon EC2 résilie l’instance après un délai de terminaison préconfiguré ou la laisse en cours d’exécution. Cela vous donne la possibilité d’effectuer des [actions de rééquilibrage](rebalance-recommendations.md#rebalancing-actions) sur l’instance.  
Si votre flotte atteint le double de sa capacité cible, il cesse de lancer de nouvelles instances de remplacement même si les instances de remplacement elles-mêmes reçoivent une recommandation de rééquilibrage.  
Par exemple, vous créez une flotte avec une capacité cible de 100 instances Spot. Toutes les instances Spot reçoivent une recommandation de rééquilibrage, ce qui entraîne le lancement par Amazon EC2 de 100 instances Spot de remplacement. Cela augmente le nombre d’instances Spot exécutées à 200, soit le double de la capacité cible. Certaines des instances de remplacement reçoivent une recommandation de rééquilibrage, mais aucune autre instance de remplacement n’est lancée car la flotte ne peut pas dépasser le double de sa capacité cible.   
Notez que vous êtes facturé pour toutes les instances pendant qu’elles sont en cours d’exécution.

**Nous vous recommandons de configurer votre flotte pour qu’elle mette fin aux instances Spot qui reçoivent une recommandation de rééquilibrage**  
Si vous configurez votre flotte pour le rééquilibrage de capacité, nous vous recommandons de choisir `launch-before-terminate` avec un délai de résiliation approprié uniquement si vous pouvez prédire la durée de la procédure d’arrêt de votre instance. Cela garantit que les anciennes instances ne sont résiliées qu’une fois les procédures d’arrêt terminées.  
Si vous choisissez de résilier vous-même les instances recommandées pour le rééquilibrage, nous vous recommandons de surveiller le signal de recommandation de rééquilibrage reçu par les instances Spot de la flotte. En surveillant le signal, vous pouvez effectuer rapidement des [actions de rééquilibrage](rebalance-recommendations.md#rebalancing-actions) sur les instances concernées avant qu’Amazon EC2 ne les interrompe, puis vous pouvez les résilier manuellement. Si vous ne résiliez pas les instances, vous continuez à les payer pendant qu’elles sont en cours d’exécution. Amazon EC2 ne résilie pas automatiquement les instances qui reçoivent une recommandation de rééquilibrage.  
Vous pouvez configurer des notifications à l'aide d'Amazon EventBridge ou des métadonnées d'instance. Pour de plus amples informations, veuillez consulter [Surveiller les signaux de recommandation de rééquilibrage](rebalance-recommendations.md#monitor-rebalance-recommendations).

**La flotte ne compte pas les instances qui reçoivent une recommandation de rééquilibrage lorsqu’elle calcule la capacité remplie lors d’une mise à l’échelle ou d’une sortie**  
Si votre flotte est configurée pour le rééquilibrage de capacité et que vous modifiez la capacité cible pour qu’elle soit diminuée ou augmentée, la flotte ne comptabilise pas les instances marquées pour rééquilibrage dans le cadre de la capacité exécutée, comme suit :  
+ Mise à l’échelle horizontale : si vous diminuez la capacité cible souhaitée, Amazon EC2 résilie les instances qui ne sont pas marquées pour rééquilibrage tant que la capacité souhaitée n’est pas atteinte. Les instances marquées pour rééquilibrage ne sont pas prises en compte dans la capacité exécutée.

  Par exemple, vous créez une flotte avec une capacité cible de 100 instances Spot, 10 instances reçoivent une recommandation de rééquilibrage, Amazon EC2 lance alors 10 nouvelles instances de remplacement, ce qui donne une capacité exécutée de 110 instances. Vous réduisez ensuite la capacité cible à 50 (mise à l’échelle horizontale), mais la capacité exécutée est en fait de 60 instances car les 10 instances marquées pour rééquilibrage ne sont pas résiliées par Amazon EC2. Vous devez résilier manuellement ces instances, ou vous pouvez les laisser en cours d’exécution.
+ Montée en puissance : si vous augmentez la capacité cible souhaitée, Amazon EC2 lance de nouvelles instances tant que la capacité souhaitée n’est pas atteinte. Les instances marquées pour rééquilibrage ne sont pas prises en compte dans la capacité exécutée. 

  Par exemple, vous créez une flotte avec une capacité cible de 100 instances Spot, 10 instances reçoivent une recommandation de rééquilibrage, la flotte lance alors 10 nouvelles instances de remplacement, ce qui donne une capacité exécutée de 110 instances. Vous augmentez ensuite la capacité cible à 200 (augmentation), mais la capacité exécutée est en fait de 210 instances car les 10 instances marquées pour rééquilibrage ne sont pas comptabilisées par la flotte comme faisant partie de la capacité cible. Vous devez résilier manuellement ces instances, ou vous pouvez les laisser en cours d’exécution.

# Utilisez les réserves de capacité pour réserver de la capacité à la demande dans la flotte EC2
<a name="ec2-fleet-on-demand-capacity-reservations"></a>

Les réservations de capacité à la demande vous permet de réserver de la capacité de calcul pour vos instances à la demande dans une zone de disponibilité spécifique, quelle que soit la durée. Vous pouvez configurer une flotte EC2 pour qu’elle utilise d’abord la réservations de capacité lors du lancement d’instances à la demande.

Les réservations de capacité à la demande ne sont disponibles que pour les flottes EC2 dont le type de demande est défini sur `instant`.

Les réservations de capacité sont configurées comme `open` ou `targeted`. La flotte EC2 peut lancer des instances à la demande, aussi bien dans des réservations de capacité `open` ou `targeted`, comme suit :
+ Si une Réservation de capacité est `open`, les instances à la demande dont les attributs correspondent s’exécutent automatiquement dans la capacité réservée.
+ Si la réservation de capacité est `targeted`, les instances doivent la cibler spécifiquement pour s’exécuter dans la capacité réservée. Cela est utile pour utiliser des réservations de capacité spécifiques ou pour contrôler quand utiliser des réservations de capacité spécifiques. 

Si vous utilisez des réservations de capacité `targeted` dans votre flotte EC2, il doit y avoir suffisamment de réservations de capacité pour atteindre la capacité à la demande cible, sinon le lancement échoue. Afin éviter un échec de lancement, ajoutez plutôt les réserves de capacité `targeted` à un groupe de ressources, puis cibler le groupe de ressources. Le groupe de ressources n’a pas besoin d’avoir suffisamment de réservations de capacité ; s’il manque de réservations de capacité avant l’exécution de la capacité à la demande cible, la flotte peut lancer la capacité cible restante dans une capacité à la demande régulière.

**Pour utiliser les réservations de capacité avec la flotte EC2**

1. Configurer la flotte en tant que type `instant`. Vous ne pouvez pas utiliser les réservations de capacité pour les flottes d’autres types.

1. Configurer la stratégie d’utilisation des réservations de capacité en tant que`use-capacity-reservations-first`.

1. Dans le modèle de lancement, pour**Capacity reservation** (Réservation de capacité), choisissez entre **Open** (Ouvrir) et **Target by group** (Cible par groupe). Si vous choisissez **Target by group** (Cible par groupe(, spécifiez l’ID du groupe de ressources réservations de capacité.

Lorsque la flotte tente de remplir la capacité à la demande, si elle constate que plusieurs groupes d’instances ont des réservations de capacité correspondantes inutilisées, etlle détermine les groupes dans lesquels lancer les instances à la demande en fonction de la stratégie d’allocation à la demande (`lowest-price` ou `prioritized`).

**Ressources connexes**
+ Veuillez consulter [Exemple de configurations CLI pour la flotte EC2](ec2-fleet-examples.md) pour obtenir des exemples sur la façon de configurer une flotte pour qu’elle utilise les réserves de capacité pour remplir la capacité à la demande, notamment les exemples 5 à 7.
+ Pour un didacticiel expliquant les étapes à suivre pour créer des réserves de capacité, les utiliser dans votre flotte et voir le nombre de réserves de capacité restantes, consultez [Didacticiel : configurer la flotte EC2 pour lancer des instances à la demande en utilisant des réserves de capacité ciblées](ec2-fleet-launch-on-demand-instances-using-targeted-capacity-reservations-walkthrough.md)
+ Pour plus d'informations sur la configuration des réservations de capacité, consultez la section [Réserver de la capacité de calcul à l’aide de EC2 On-Demand Capacity Reservations (Réserves de capacité à la demande EC2)](ec2-capacity-reservations.md) et la [réservation de capacité à la demande FAQs](https://aws.amazon.com/ec2/faqs/#On-Demand_Capacity_Reservation).

# Travailler avec la flotte EC2
<a name="manage-ec2-fleet"></a>

Pour commencer à utiliser une flotte EC2, créez une requête qui inclut la capacité cible totale, la capacité à la demande, la capacité ponctuelle et un modèle de lancement spécifiant la configuration des instances de la flotte. Vous pouvez éventuellement indiquer des paramètres supplémentaires ou laisser la flotte utiliser les valeurs par défaut. Vous pouvez également étiqueter la demande de flotte, ainsi que ses instances et volumes, lorsque vous créez la flotte.

La flotte 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.

Une fois votre flotte lancée, vous pouvez décrire la demande de flotte, les instances de la flotte et tout événement lié à la flotte. Vous pouvez également attribuer des balises supplémentaires selon vos besoins.

Si vous devez modifier les paramètres du parc, tels que la capacité cible totale, vous pouvez modifier le parc, à condition qu’il ait été configuré pour maintenir la capacité. Vous ne pouvez pas modifier la capacité d’une demande unique une fois qu’elle a été soumise.

La demande de flotte reste active jusqu’à ce qu’elle expire ou que vous la supprimiez. Lorsque vous supprimez la demande de flotte, vous pouvez soit mettre fin aux instances, soit les laisser en cours d’exécution. 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.

**Topics**
+ [

# États des demandes flotte EC2
](EC2-fleet-states.md)
+ [

# Conditions préalables requises flotte EC2
](ec2-fleet-prerequisites.md)
+ [

# Créer une flotte EC2
](create-ec2-fleet.md)
+ [

# Marquer une demande de flotte EC2 nouvelle ou existante et les instances et volumes qu’elle lance
](tag-ec2-fleet.md)
+ [

# Description d’une flotte EC2, de ses instances et de ses événements
](describe-ec2-fleet.md)
+ [

# Modifier une flotte EC2
](modify-ec2-fleet.md)
+ [

# Supprimer une demande de Flotte EC2 et les instances du parc
](delete-fleet.md)

# États des demandes flotte EC2
<a name="EC2-fleet-states"></a>

Une demande EC2 Fleet peut comporter plusieurs états, chaque état indiquant une étape différente du cycle de vie de la demande et de la gestion des instances.

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. Si une requête dépasse les limites de votre flotte, elle est immédiatement supprimée.

`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. Seul une flotte de type `maintain` peut être modifié. 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 Spot. Ses instances existantes continuent de s’exécuter jusqu’à ce qu’elles soient interrompues ou résiliées manuellement. La demande conserve cet état jusqu’à ce que toutes les instances soient interrompues ou mises hors service. Seule un Flotte EC2 de type `maintain` ou `request` peut avoir des instances en cours d’exécution après la suppression de la demande de Flotte EC2. Une flotte `instant` supprimé avec des instances en cours d’exécution n’est pas pris en charge. Cet état ne s’applique pas aux flottes`instant`.

`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`  
La demande de flotte EC2 est supprimée 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.

# Conditions préalables requises flotte EC2
<a name="ec2-fleet-prerequisites"></a>

**Topics**
+ [

## Modèle de lancement
](#ec2-fleet-prerequisites-launch-template)
+ [

## Rôle lié à un service pour flotte EC2
](#ec2-fleet-service-linked-role)
+ [

## Accordez l'accès aux clés gérées par le client pour les utiliser avec des instantanés chiffrés AMIs et EBS
](#ec2-fleet-service-linked-roles-access-to-cmks)
+ [

## Autorisations pour les utilisateurs de la flotte d’instances EC2
](#ec2-fleet-iam-users)

## Modèle de lancement
<a name="ec2-fleet-prerequisites-launch-template"></a>

Un modèle de lancement spécifie les informations de configuration relatives aux instances à lancer, telles que le type d’instance et la zone de disponibilité. Pour en savoir plus sur l’utilisation des modèles de lancement, consultez [Stocker les paramètres de lancement des instances dans les modèles de lancement Amazon EC2](ec2-launch-templates.md).

## Rôle lié à un service pour flotte EC2
<a name="ec2-fleet-service-linked-role"></a>

Le rôle `AWSServiceRoleForEC2Fleet` accorde à la flotte EC2 l’autorisation de demander, lancer, résilier et étiqueter des instances en votre nom. Amazon EC2 utilise ce rôle lié à un service pour effectuer les actions suivantes :
+ `ec2:RunInstances` – Lancer des instances.
+ `ec2:RequestSpotInstances` – Demander des Instances Spot.
+ `ec2:TerminateInstances` – Résilier des instances.
+ `ec2:DescribeImages`— Décrivez Amazon Machine Images (AMIs) pour les instances.
+ `ec2:DescribeInstanceStatus` - Décrire le statut des instances.
+ `ec2:DescribeSubnets` - Décrire les sous-réseaux des instances.
+ `ec2:CreateTags` – Ajoutez des balises aux Flotte EC2, aux instances et aux volumes.

Assurez-vous que ce rôle existe avant d'utiliser l'API AWS CLI ou une API pour créer une flotte EC2.

**Note**  
Un `instant` Flotte EC2 ne requiert pas ce rôle.

Pour créer le rôle, utilisez la console IAM comme suit.

**Pour créer le AWSServiceRoleForEC2Fleet rôle pour EC2 Fleet**

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Dans le panneau de navigation, choisissez **Rôles**.

1. Sélectionnez **Create role** (Créer un rôle).

1. 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 **.

   1. Sous **Cas d’utilisation**, pour **Service ou cas d’utilisation**, choisissez **EC2 - Flotte**.
**Astuce**  
Assurez-vous de choisir **EC2 - Flotte**. Si vous choisissez **EC2**, le cas d’utilisation **EC2 - Flotte** n’apparaît pas dans la liste des **cas d’utilisation**. Le cas d'utilisation **EC2 - Fleet** créera automatiquement une politique avec les autorisations IAM requises et suggérera **AWSServiceRoleForEC2Fleet comme nom** de rôle.

   1. Choisissez **Suivant**.

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

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

Si vous n'avez plus besoin d'utiliser EC2 Fleet, 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 une autre flotte

Pour plus d’informations, consultez la section [Rôles liés à un service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html) dans le *Guide de l’utilisateur IAM*.

## Accordez l'accès aux clés gérées par le client pour les utiliser avec des instantanés chiffrés AMIs et EBS
<a name="ec2-fleet-service-linked-roles-access-to-cmks"></a>

Si vous spécifiez une [AMI chiffrée](AMIEncryption.md) ou un instantané Amazon EBS chiffré dans votre flotte EC2 et que vous utilisez une AWS KMS clé pour le chiffrement, vous devez autoriser le rôle **AWSServiceRoleForEC2Fleet** à utiliser la clé gérée par le client afin qu'Amazon EC2 puisse lancer des instances 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 plus d’informations, consultez les rubriques [Utilisation des octrois](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) et [Utilisation des politiques de clé dans AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) dans le *Guide du développeur AWS Key Management Service *.

**Pour accorder au rôle AWSService RoleFor EC2 Fleet l'autorisation d'utiliser la clé gérée par le client**
+ Utilisez la commande [create-grant](https://docs.aws.amazon.com/cli/latest/reference/kms/create-grant.html) pour ajouter une subvention à la clé gérée par le client et pour spécifier le principal (le rôle lié au service **AWSServiceRoleForEC2Fleet**) 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 lié au service **AWSServiceRoleForEC2Fleet**.

  ```
  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"
  ```

## Autorisations pour les utilisateurs de la flotte d’instances EC2
<a name="ec2-fleet-iam-users"></a>

Si vos utilisateurs sont appelés à créer ou à gérer une flotte EC2, veillez à leur accorder les autorisations nécessaires.

**Pour créer une politique pour la flotte d’instances EC2**

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Dans le panneau de navigation, choisissez **Politiques**.

1. Choisissez **Create Policy** (Créer une politique).

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

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:*"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                 "iam:ListRoles",
                 "iam:PassRole",
                 "iam:ListInstanceProfiles"
               ],
               "Resource":"arn:aws:iam::123456789012:role/DevTeam*"
           }
       ]
   }
   ```

------

   La fonction `ec2:*` accorde à un utilisateur 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.

   L’utilisateur 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 à 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`

1. 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)**.

1. Pour activer l’accès, ajoutez des autorisations à vos utilisateurs, groupes ou rôles :
   + Utilisateurs et groupes dans AWS IAM Identity Center :

     Créez un jeu d’autorisations. Suivez les instructions de la rubrique [Création d’un jeu d’autorisations](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) du *Guide de l’utilisateur AWS IAM Identity Center *.
   + Utilisateurs gérés dans IAM par un fournisseur d’identité :

     Créez un rôle pour la fédération d’identité. Suivez les instructions de la rubrique [Création d’un rôle pour un fournisseur d’identité tiers (fédération)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) dans le *Guide de l’utilisateur IAM*.
   + Utilisateurs IAM :
     + Créez un rôle que votre utilisateur peut assumer. Suivez les instructions de la rubrique [Création d’un rôle pour un utilisateur IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) dans le *Guide de l’utilisateur IAM*.
     + (Non recommandé) Attachez une politique directement à un utilisateur ou ajoutez un utilisateur à un groupe d’utilisateurs. Suivez les instructions de la rubrique [Ajout d’autorisations à un utilisateur (console)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) du *Guide de l’utilisateur IAM*.

# Créer une flotte EC2
<a name="create-ec2-fleet"></a>

Pour créer une flotte EC2, définissez la configuration de la flotte dans un fichier JSON et référencez le fichier à l’aide de la commande [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html). Dans le fichier JSON, vous devez spécifier la capacité cible totale de la flotte, des capacités cibles distinctes pour les Instances Spot et les Instances à la demande, et un modèle de lancement paramétrant la configuration des instances du parc d’instances, 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 éventuellement spécifier des configurations supplémentaires, telles que des paramètres pour remplacer la configuration du modèle de lancement, des stratégies d’allocation pour sélectionner des instances ponctuelles et des instances à la demande dans les pools de capacités EC2, et le montant maximum que vous êtes prêt à payer pour le parc. Pour de plus amples informations, veuillez consulter [Options de configuration pour votre Flotte EC2 ou parc d’instances Spot](ec2-fleet-configuration-strategies.md).

La 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.

Si votre flotte inclut des instances Spot et qu’elle est de type `maintain`, alors Amazon EC2 tente de maintenir la capacité cible de votre flotte en cas d’interruption de vos instances Spot.

## Limites flotte EC2
<a name="EC2-fleet-limitations"></a>

Les limites suivantes s’appliquent à une flotte EC2 :
+ La création d'une flotte EC2 est uniquement disponible via l'API [Amazon EC2 [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html)](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html),, [AWS SDKs](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateFleet.html#API_CreateFleet_SeeAlso), et. [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ec2fleet.html)
+ Une demande de flotte EC2 ne peut pas couvrir plusieurs AWS régions. Vous devez créer une flotte EC2 distinct pour chaque région.
+ Une demande de flotte EC2 ne peut pas couvrir différents sous-réseaux d’une même zone de disponibilité.

## Créer une flotte EC2
<a name="create-ec2-fleet-procedure"></a>

Pour lancer un parc d’instances à l’aide d’EC2 Fleet, il vous suffit de spécifier les paramètres suivants dans votre demande de parc, et le parc utilisera les valeurs par défaut pour les autres paramètres :
+ `LaunchTemplateId` ou `LaunchTemplateName` : spécifie le modèle de lancement à utiliser (qui contient les paramètres des instances à lancer, tels que le type d’instance et la zone de disponibilité)
+ `TotalTargetCapacity` : spécifie la capacité cible totale de la flotte
+ `DefaultTargetCapacityType` : indique si l’option d’achat par défaut est à la demande ou Spot

Pour remplacer les paramètres spécifiés dans le modèle de lancement, vous pouvez spécifier un ou plusieurs remplacements. Chaque dérogation peut varier en fonction du type d’instance, de la zone de disponibilité, du sous-réseau et du prix maximum, et peut inclure une capacité pondérée différente. Au lieu de spécifier manuellement les types d’instance, vous pouvez spécifier les attributs qu’une instance doit posséder, et Amazon EC2 identifiera tous les types d’instance avec ces attributs. Pour plus d'informations, consultez [Spécifiez des attributs pour la sélection de type d’instance pour la flotte EC2](ec2-fleet-attribute-based-instance-type-selection.md).

Pour les Flotte EC2 de type`instant`, vous pouvez spécifier un paramètre Systems Manager au lieu de l’ID AMI. Vous pouvez spécifier le paramètre Systems Manager dans l’override ou dans le modèle de lancement. Pour de plus amples informations, veuillez consulter [Utilisation d’un paramètre Systems Manager au lieu d’un ID d’AMI](create-launch-template.md#use-an-ssm-parameter-instead-of-an-ami-id).

Vous pouvez spécifier les paramètres de la flotte dans un fichier JSON. Pour plus d’informations sur tous les paramètres possibles que vous pouvez spécifier, consultez [Afficher toutes les options de configuration d’une flotte EC2](#ec2-fleet-cli-skeleton). 

Pour accéder à des exemples de configuration de Flotte, consultez [Exemple de configurations CLI pour la flotte EC2](ec2-fleet-examples.md).

Il n’existe actuellement aucune console compatible avec la création d’une flotte EC2.

**Pour créer une flotte EC2**  
Utilisez la commande [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) pour créer une flotte et spécifier le fichier JSON qui contient les paramètres de configuration de la flotte.

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

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" 
      ]
  ]
}
```

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": ""
    },
  ],
  "Instances": [
    {
      "LaunchTemplateAndOverrides": {
        "LaunchTemplateSpecification": {
          "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE",
          "Version": "1"
        },
        "Overrides": {
          "InstanceType": "c5.large",
          "AvailabilityZone": "us-east-1a"
        }
      },
      "Lifecycle": "on-demand",
      "InstanceIds": [
        "i-1234567890abcdef0",
        "i-9876543210abcdef9" 
      ]
  ]
}
```

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": ""
    },
    {
      "LaunchTemplateAndOverrides": {
        "LaunchTemplateSpecification": {
          "LaunchTemplateId": "lt-01234a567b8910abcEXAMPLE",
          "Version": "1"
        },
        "Overrides": {
          "InstanceType": "c5.large",
          "AvailabilityZone": "us-east-1a",
        }
      },
      "Lifecycle": "on-demand",
      "ErrorCode": "InsufficientCapacity",
      "ErrorMessage": ""
    },
  ],
  "Instances": []
}
```

## Créer une flotte EC2 qui remplace les instances Spot non saines
<a name="ec2-fleet-health-checks"></a>

La flotte EC2 vérifie l’état de santé des instances de la flotte toutes les deux minutes. Le statut de l’état d’une instance est `healthy` ou `unhealthy`.

La flotte EC2 détermine le statut d’intégrité d’une instance en utilisant les contrôles de statut fournis 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 vérifications consécutives de l’état d’intégrité. Pour de plus amples informations, veuillez consulter [Contrôles du statut des instances Amazon EC2](monitoring-system-instance-status-check.md).

Vous pouvez configurer votre flotte pour qu’il remplace les instances Spot non saine. Après avoir paramétré `ReplaceUnhealthyInstances` sur `true`, 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.

**Exigences**
+ Le remplacement de la vérification de l’état est pris en charge uniquement pour les Flottes EC2 qui maintiennent une capacité cible (flottes de type `maintain`), pas avec des flottes de type `request` ou `instant`.
+ 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 flotte EC2 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`.

**Pour configurer une flotte EC2 pour remplacer une instances Spot non saine**

1. Utilisez les informations permettant de créer une flotte EC2 dans [Créer une flotte EC2](#create-ec2-fleet-procedure).

1. Pour configurer la flotte de manière à remplacer les instances Spot non saines, dans le fichier JSON, pour `ReplaceUnhealthyInstances`, spécifiez `true`. 

## Afficher toutes les options de configuration d’une flotte EC2
<a name="ec2-fleet-cli-skeleton"></a>

Pour afficher la liste complète des paramètres de configuration de la flotte EC2, vous pouvez générer un fichier JSON. Pour obtenir une description de chaque paramètre, consultez la section [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html).

**Pour générer un fichier JSON avec tous les paramètres de la flotte EC2 possibles**  
Utilisez la commande [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) (AWS CLI) et le paramètre `--generate-cli-skeleton` pour générer un fichier JSON de flotte EC2 et rediriger la sortie vers un fichier de sauvegarde.

```
aws ec2 create-fleet \
    --generate-cli-skeleton input > ec2createfleet.json
```

Voici un exemple de sortie.

```
{
    "DryRun": true,
    "ClientToken": "",
    "SpotOptions": {
        "AllocationStrategy": "price-capacity-optimized",
        "MaintenanceStrategies": {
            "CapacityRebalance": {
                "ReplacementStrategy": "launch"
            }
        },
        "InstanceInterruptionBehavior": "hibernate",
        "InstancePoolsToUseCount": 0,
        "SingleInstanceType": true,
        "SingleAvailabilityZone": true,
        "MinTargetCapacity": 0,
        "MaxTotalPrice": ""
    },
    "OnDemandOptions": {
        "AllocationStrategy": "prioritized",
        "CapacityReservationOptions": {
            "UsageStrategy": "use-capacity-reservations-first"
        },
        "SingleInstanceType": true,
        "SingleAvailabilityZone": true,
        "MinTargetCapacity": 0,
        "MaxTotalPrice": ""
    },
    "ExcessCapacityTerminationPolicy": "termination",
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateId": "",
                "LaunchTemplateName": "",
                "Version": ""
            },
            "Overrides": [
                {
                    "InstanceType": "r5.metal",
                    "MaxPrice": "",
                    "SubnetId": "",
                    "AvailabilityZone": "",
                    "WeightedCapacity": 0.0,
                    "Priority": 0.0,
                    "Placement": {
                        "AvailabilityZone": "",
                        "Affinity": "",
                        "GroupName": "",
                        "PartitionNumber": 0,
                        "HostId": "",
                        "Tenancy": "dedicated",
                        "SpreadDomain": "",
                        "HostResourceGroupArn": ""
                    },
                    "InstanceRequirements": {
                        "VCpuCount": {
                            "Min": 0,
                            "Max": 0
                        },
                        "MemoryMiB": {
                            "Min": 0,
                            "Max": 0
                        },
                        "CpuManufacturers": [
                            "amd"
                        ],
                        "MemoryGiBPerVCpu": {
                            "Min": 0.0,
                            "Max": 0.0
                        },
                        "ExcludedInstanceTypes": [
                            ""
                        ],
                        "InstanceGenerations": [
                            "previous"
                        ],
                        "SpotMaxPricePercentageOverLowestPrice": 0,
                        "OnDemandMaxPricePercentageOverLowestPrice": 0,
                        "BareMetal": "included",
                        "BurstablePerformance": "required",
                        "RequireHibernateSupport": true,
                        "NetworkInterfaceCount": {
                            "Min": 0,
                            "Max": 0
                        },
                        "LocalStorage": "excluded",
                        "LocalStorageTypes": [
                            "ssd"
                        ],
                        "TotalLocalStorageGB": {
                            "Min": 0.0,
                            "Max": 0.0
                        },
                        "BaselineEbsBandwidthMbps": {
                            "Min": 0,
                            "Max": 0
                        },
                        "AcceleratorTypes": [
                            "inference"
                        ],
                        "AcceleratorCount": {
                            "Min": 0,
                            "Max": 0
                        },
                        "AcceleratorManufacturers": [
                            "amd"
                        ],
                        "AcceleratorNames": [
                            "a100"
                        ],
                        "AcceleratorTotalMemoryMiB": {
                            "Min": 0,
                            "Max": 0
                        }
                    }
                }
            ]
        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 0,
        "OnDemandTargetCapacity": 0,
        "SpotTargetCapacity": 0,
        "DefaultTargetCapacityType": "on-demand",
        "TargetCapacityUnitType": "memory-mib"
    },
    "TerminateInstancesWithExpiration": true,
    "Type": "instant",
    "ValidFrom": "1970-01-01T00:00:00",
    "ValidUntil": "1970-01-01T00:00:00",
    "ReplaceUnhealthyInstances": true,
    "TagSpecifications": [
        {
            "ResourceType": "fleet",
            "Tags": [
                {
                    "Key": "",
                    "Value": ""
                }
            ]
        }
    ],
    "Context": ""
}
```

# Marquer une demande de flotte EC2 nouvelle ou existante et les instances et volumes qu’elle lance
<a name="tag-ec2-fleet"></a>

Pour vous aider à classer et à gérer vos demandes de flotte EC2 ainsi que les instances et les volumes qu’elle lance, vous pouvez les étiqueter avec des métadonnées personnalisées. Vous pouvez affecter une balise à une demande de flotte EC2 lorsque vous la créez, ou après. De même, vous pouvez attribuer une étiquette aux instances et aux volumes lorsqu’ils sont lancés par le parc ou ultérieurement.

Lorsque vous balisez une demande de flotte, les instances et les volumes lancés par la flotte ne sont pas balisés automatiquement. Vous devez baliser explicitement les instances et les volumes lancés par la flotte. Vous pouvez choisir d’attribuer des balises uniquement à la demande de la flotte, ou uniquement aux instances lancées par la flotte, ou uniquement aux volumes associés aux instances lancées par la flotte, ou à l’ensemble de ces instances.

**Note**  
Pour les types de parc `instant`, vous pouvez baliser les volumes attachés à Instances à la demande et Instances Spot. Pour les types de parc `request` ou `maintain`, vous pouvez uniquement baliser les volumes attachés à Instances à la demande.

Pour plus d’informations sur le fonctionnement des balises, consultez [Baliser vos ressources Amazon EC2](Using_Tags.md).

**Prérequis**

Octroyez à l’utilisateur l’autorisation de baliser les ressources. Pour de plus amples informations, veuillez consulter [Exemple : Baliser des ressources](ExamplePolicies_EC2.md#iam-example-taggingresources).

**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:CreateFleet`. Celle-ci accorde à l’utilisateur l’autorisation de créer une demande flotte EC2.
+ Pour `Resource`, nous vous recommandons de spécifier `"*"`. Cela permet aux utilisateurs de baliser tous les types de ressources.

Pour activer l’accès, ajoutez des autorisations à vos utilisateurs, groupes ou rôles :
+ Utilisateurs et groupes dans AWS IAM Identity Center :

  Créez un jeu d’autorisations. Suivez les instructions de la rubrique [Création d’un jeu d’autorisations](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) du *Guide de l’utilisateur AWS IAM Identity Center *.
+ Utilisateurs gérés dans IAM par un fournisseur d’identité :

  Créez un rôle pour la fédération d’identité. Suivez les instructions de la rubrique [Création d’un rôle pour un fournisseur d’identité tiers (fédération)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) dans le *Guide de l’utilisateur IAM*.
+ Utilisateurs IAM :
  + Créez un rôle que votre utilisateur peut assumer. Suivez les instructions de la rubrique [Création d’un rôle pour un utilisateur IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) dans le *Guide de l’utilisateur IAM*.
  + (Non recommandé) Attachez une politique directement à un utilisateur ou ajoutez un utilisateur à un groupe d’utilisateurs. Suivez les instructions de la rubrique [Ajout d’autorisations à un utilisateur (console)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) du *Guide de l’utilisateur IAM*.

**Pour baliser une nouvelle demande flotte EC2**  
Pour baliser une demande de Flotte EC2 lorsque vous la créez, spécifiez la paire clé-valeur dans le [fichier JSON](create-ec2-fleet.md#ec2-fleet-cli-skeleton) 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 flotte d’instances échoue.

**Pour baliser des instances et des volumes lancés par une flotte EC2**  
Pour baliser des instances et des volumes lorsqu’ils sont lancés par le parc d’instances, spécifiez les balises dans le [modèle de lancement](create-launch-template.md) référencé dans la demande Flotte EC2.

**Note**  
Vous ne pouvez pas baliser les volumes attachés à Instances Spot qui sont lancés par un type de parc `request` ou `maintain`.

**Pour étiqueter une demande de flotte EC2, une instance et un volume existants**  
Utilisez la commande [create-tags](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html) pour baliser les ressources existantes.

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

# Description d’une flotte EC2, de ses instances et de ses événements
<a name="describe-ec2-fleet"></a>

Vous pouvez décrire la configuration, les instances et l’historique des événements de votre flotte EC2.

**Topics**
+ [

## Décrire votre flotte EC2
](#describe-all-ec2-fleets)
+ [

## Description de toutes les instances de votre flotte EC2
](#describe-instances-in-ec2-fleet)
+ [

## Décrire l’historique des événements de votre Flotte EC2
](#describe-ec2-fleet-event-history)

## Décrire votre flotte EC2
<a name="describe-all-ec2-fleets"></a>

------
#### [ AWS CLI ]

**Pour décrire votre flotte EC2**  
Utilisez la commande [describe-fleets](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-fleets.html).

```
aws ec2 describe-fleets \
    --fleet-ids fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
```

Voici un exemple de sortie.

```
{
    "Fleets": [
        {
            "ActivityStatus": "fulfilled",
            "CreateTime": "2022-02-09T03:35:52+00:00",
            "FleetId": "fleet-364457cd-3a7a-4ed9-83d0-7b63e51bb1b7",
            "FleetState": "active",
            "ExcessCapacityTerminationPolicy": "termination",
            "FulfilledCapacity": 2.0,
            "FulfilledOnDemandCapacity": 0.0,
            "LaunchTemplateConfigs": [
                {
                    "LaunchTemplateSpecification": {
                        "LaunchTemplateName": "my-launch-template",
                        "Version": "$Latest"
                    }
                }
            ],
            "TargetCapacitySpecification": {
                "TotalTargetCapacity": 2,
                "OnDemandTargetCapacity": 0,
                "SpotTargetCapacity": 2,
                "DefaultTargetCapacityType": "spot"
            },
            "TerminateInstancesWithExpiration": false,
            "Type": "maintain",
            "ReplaceUnhealthyInstances": false,
            "SpotOptions": {
                "AllocationStrategy": "capacity-optimized",
                "InstanceInterruptionBehavior": "terminate"
            },
            "OnDemandOptions": {
                "AllocationStrategy": "lowestPrice"
            }
        }
    ]
}
```

------
#### [ PowerShell ]

**Pour décrire votre flotte EC2**  
Utilisez l’applet de commande [Get-EC2FleetList](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2FleetList.html).

```
Get-EC2FleetList `
    -FleetId fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
```

------

## Description de toutes les instances de votre flotte EC2
<a name="describe-instances-in-ec2-fleet"></a>

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

------
#### [ AWS CLI ]

**Pour décrire les instances de la flotte EC2 spécifiée**  
Utilisez la commande [describe-fleet-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-fleet-instances.html).

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

Voici un exemple de sortie.

```
{
    "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"
}
```

------
#### [ PowerShell ]

**Pour décrire les instances de la flotte EC2 spécifiée**  
Utilisez l’applet de commande [Get-EC2FleetInstanceList](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2FleetInstanceList.html).

```
Get-EC2FleetInstanceList `
    -FleetId fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
```

------

## Décrire l’historique des événements de votre Flotte EC2
<a name="describe-ec2-fleet-event-history"></a>

Pour plus d’informations sur les événements de l’historique des événements, consultez la section [Types d’événements de Flotte EC2](monitor-ec2-fleet-using-eventbridge.md#ec2-fleet-event-types).

------
#### [ AWS CLI ]

**Pour décrire les événements de la flotte EC2 spécifiée**  
Utilisez la commande [describe-fleet-history](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-fleet-history.html).

```
aws ec2 describe-fleet-history \
    --fleet-id fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE \
    --start-time 2020-06-01T00:00:00Z
```

Voici un exemple de sortie.

```
{
    "HistoryRecords": [
        {
            "EventInformation": {
                "EventSubType": "submitted"
            },
            "EventType": "fleetRequestChange",
            "Timestamp": "2020-09-01T18:26:05.000Z"
        },
        {
            "EventInformation": {
                "EventSubType": "active"
            },
            "EventType": "fleetRequestChange",
            "Timestamp": "2020-09-01T18:26:15.000Z"
        },
        {
            "EventInformation": {
                "EventDescription": "t2.small, ami-07c8bc5c1ce9598c3, ...",
                "EventSubType": "progress"
            },
            "EventType": "fleetRequestChange",
            "Timestamp": "2020-09-01T18:26:17.000Z"
        },
        {
            "EventInformation": {
                "EventDescription": "{\"instanceType\":\"t2.small\", ...}",
                "EventSubType": "launched",
                "InstanceId": "i-083a1c446e66085d2"
            },
            "EventType": "instanceChange",
            "Timestamp": "2020-09-01T18:26:17.000Z"
        },
        {
            "EventInformation": {
                "EventDescription": "{\"instanceType\":\"t2.small\", ...}",
                "EventSubType": "launched",
                "InstanceId": "i-090db02406cc3c2d6"
            },
            "EventType": "instanceChange",
            "Timestamp": "2020-09-01T18:26:17.000Z"
        }
    ], 
    "FleetId": "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE", 
    "LastEvaluatedTime": "1970-01-01T00:00:00.000Z", 
    "StartTime": "2020-06-01T00:00:00.000Z"
}
```

------
#### [ PowerShell ]

**Pour décrire les événements de la flotte EC2 spécifiée**  
Utilisez l’applet de commande [Get-EC2FleetHistory](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2FleetHistory.html).

```
Get-EC2FleetHistory `
    -FleetId fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE `
    -UtcStartTime 2020-06-01T00:00:00Z
```

------

# Modifier une flotte EC2
<a name="modify-ec2-fleet"></a>

Vous pouvez modifier la capacité cible totale, la capacité ponctuelle et la capacité à la demande d’un parc EC2. Vous pouvez également déterminer si les instances en cours d’exécution doivent être arrêtées si la nouvelle capacité cible totale est inférieure à la taille actuelle de la flotte.

## Considérations
<a name="modify-ec2-fleet-considerations"></a>

Prenez en compte les éléments suivants lorsque vous modifiez une flotte EC2 :
+ **Type de flotte** – Vous ne pouvez modifier qu’une flotte EC2 de type `maintain`. Vous ne pouvez pas modifier une flotte EC2 de type `request` ou `instant`.
+ **Paramètres de la flotte** – Vous pouvez modifier les paramètres suivants d’une flotte EC2 :
  + `target-capacity-specification` – Augmenter ou diminuer la capacité cible pour :
    + `TotalTargetCapacity`
    + `OnDemandTargetCapacity`
    + `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`
    + `termination`
+ **Comportement de la flotte lors de l’augmentation de la capacité cible totale** : lorsque vous augmentez la capacité cible totale, 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, et en fonction de la [stratégie d’allocation](ec2-fleet-allocation-strategy.md) spécifiée.
+ **Comportement de la flotte lors de la réduction de la capacité cible Spot** – Lorsque vous réduisez la capacité cible Spot, la flotte EC2 supprime toutes les demandes ouvertes qui dépassent la nouvelle capacité cible. Vous pouvez demander à la flotte de mettre fin aux instances Spot jusqu’à ce que la taille de la flotte atteigne la nouvelle capacité cible. Lorsqu’une 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.

  Les instances sont sélectionnées pour être résiliées en fonction de la stratégie d’allocation :
  + `capacity-optimized` : résilie les instances des groupes dont la capacité disponible est la plus faible.
  + `price-capacity-optimized` : utilise une combinaison de prix et de capacité disponible et résilie les instances des groupes dont la capacité est la moins disponible et dont le prix est le plus élevé parmi ces groupes.
  + `diversified` : résilie les instances de tous les groupes.
  + `lowest-price` : résilie les instances des groupes les plus onéreux.

  Vous pouvez également demander à la flotte EC2 de conserver sa taille actuelle, mais de ne remplacer aucune instance Spot interrompue ou que vous avez résiliée manuellement.
+ **État de la flotte** – Vous pouvez modifier une flotte EC2 qui est dans l’état `submitted` ou `active`. Lorsque vous modifiez un parc d’instances, il prend l’état `modifying`.

## Commandes permettant de modifier une flotte EC2
<a name="modify-ec2-fleet-commands"></a>

------
#### [ AWS CLI ]

**Pour modifier la capacité cible totale d’une flotte EC2**  
Utilisez la commande [modify-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-fleet.html).

```
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 de la flotte, vous pouvez modifier l’exemple précédent 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
```

------
#### [ PowerShell ]

**Pour modifier la capacité cible totale d’une flotte EC2**  
Utilisez l’applet de commande [Edit-EC2Fleet](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2Fleet.html).

```
Edit-EC2Fleet `
    -FleetId "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TargetCapacitySpecification_TotalTargetCapacity 20
```

Si vous diminuez la capacité cible, mais que vous souhaitez conserver la taille actuelle de la flotte, vous pouvez modifier l’exemple précédent comme suit :

```
Edit-EC2Fleet `
    -FleetId "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TargetCapacitySpecification_TotalTargetCapacity 20 `
    -ExcessCapacityTerminationPolicy "NoTermination"
```

------

# Supprimer une demande de Flotte EC2 et les instances du parc
<a name="delete-fleet"></a>

Si vous n’avez plus besoin d’une demande de flotte EC2, vous pouvez la supprimer. Lorsque vous supprimez une demande de flotte, toutes les demandes Spot associées à la flotte sont annulées, de sorte qu’aucune nouvelle instance Spot n’est lancée.

Lorsque vous supprimez une demande de flotte EC2, vous devez également indiquer si vous souhaitez mettre fin à toutes ses instances. Cette action inclut les instances à la demande et les instances Spot. Pour les flottes `instant`, la flotte EC2 Fleet doit mettre fin aux instances lorsque la flotte est supprimée. Une flotte `instant` supprimé avec des instances en cours d’exécution n’est pas pris en charge.

**Avertissement**  
**La résiliation d’une instance est définitive et irréversible.**  
Une fois que vous avez résilié une instance, vous ne pouvez plus vous y connecter et elle ne peut pas être récupérée. Tous les volumes Amazon EBS attachés qui sont configurés pour être supprimés à la résiliation sont également supprimés de manière définitive et ne peuvent pas être récupérés. L’intégralité des données stockées sur les volumes de stockage d’instance est définitivement perdue. Pour de plus amples informations, veuillez consulter [Comment fonctionne la résiliation d'une instance](how-ec2-instance-termination-works.md).  
Avant de résilier à une instance, assurez-vous d’avoir sauvegardé toutes les données que vous devez conserver après la résiliation dans un stockage persistant.

Si vous indiquez que les instances doivent être terminées lorsque l’ordre de flotte est supprimé, l’ordre de flotte entre dans 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.

**Restrictions**
+ Vous pouvez supprimer jusqu’à 25 flottes de type `instant` en une seule opération.
+ Vous pouvez supprimer jusqu’à 100 flottes de type `maintain` ou `request` en une seule opération.
+ Vous pouvez supprimer jusqu’à 125 flottes en une seule opération, à condition de ne pas dépasser le quota pour chaque type de flotte, comme indiqué ci-dessus.
+ Si vous dépassez le nombre de parcs à supprimer spécifié, aucun parc n’est supprimé.
+ Une flotte `instant` supprimé avec des instances en cours d’exécution n’est pas pris en charge. Lorsque vous supprimez une flotte `instant`, Amazon EC2 résilie automatiquement toutes ses instances. Pour les flottes `instant` de plus de 1 000 instances, la demande de suppression peut échouer. Si votre flotte compte plus de 1 000 instances, commencez par résilier manuellement la plupart d’entre elles, en n’en conservant que 1 000 au maximum. Supprimez ensuite la flotte, et les instances restantes seront automatiquement supprimées.

------
#### [ AWS CLI ]

**Pour supprimer une flotte EC2 et résilier ses instances**  
Utilisez la commande [delete-fleets](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-fleets.html) avec l’option `--terminate-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"
        }
    ]
}
```

**Pour supprimer une demande de flotte EC2 sans résilier ses instances.**  
Modifiez l’exemple précédent en utilisant plutôt l’option `--no-terminate-instances`. Notez que `--no-terminate-instances` n’est pas prise en charge pour les flottes `instant`.

```
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"
        }
    ]
}
```

------
#### [ PowerShell ]

**Pour supprimer une flotte EC2 et résilier ses instances**  
Utilisez l'[Remove-EC2Fleet](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2Fleet.html)applet de commande avec le `-TerminateInstance` paramètre.

```
Remove-EC2Fleet `
    -FleetId "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TerminateInstance $true
```

**Pour supprimer une demande de flotte EC2 sans résilier ses instances.**  
Modifiez l’exemple précédent en modifiant la valeur du paramètre `-TerminateInstance`.

```
Remove-EC2Fleet `
    -FleetId "fleet-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TerminateInstance $false
```

------

## Dépannage lorsqu’une flotte ne peut pas être supprimé
<a name="troubleshoot-delete-fleet"></a>

Si une demande de flotte EC2 ne peut pas être supprimée, `UnsuccessfulFleetDeletions` dans la sortie renvoie l’ID de la demande de flotte EC2, un code d’erreur et un message d’erreur.

Les codes d’erreur sont :
+ `ExceededInstantFleetNumForDeletion`
+ `fleetIdDoesNotExist`
+ `fleetIdMalformed`
+ `fleetNotInDeletableState`
+ `NoTerminateInstancesNotSupported`
+ `UnauthorizedOperation`
+ `unexpectedError`

**Résoudre les problèmes liés à `ExceededInstantFleetNumForDeletion`**  
Si vous essayez de supprimer plus de 25 parcs `instant` en une seule demande, l’erreur `ExceededInstantFleetNumForDeletion` est renvoyée. Voici un exemple de sortie pour cette erreur.

```
{
    "UnsuccessfulFleetDeletions": [
     {
          "FleetId": " fleet-5d130460-0c26-bfd9-2c32-0100a098f625",
          "Error": {
                  "Message": "Can’t delete more than 25 instant fleets in a single request.",
                  "Code": "ExceededInstantFleetNumForDeletion"
           }
     },
     {
           "FleetId": "fleet-9a941b23-0286-5bf4-2430-03a029a07e31",
           "Error": {
                  "Message": "Can’t delete more than 25 instant fleets in a single request.",
                  "Code": "ExceededInstantFleetNumForDeletion"
            }
     }
     .
     .
     .
     ],
     "SuccessfulFleetDeletions": []
}
```

**Résoudre les problèmes liés à `NoTerminateInstancesNotSupported`**  
Si vous spécifiez que les instances d’un parc `instant` ne doivent pas être résiliées lorsque vous supprimez le parc, l’erreur `NoTerminateInstancesNotSupported` est renvoyée. `--no-terminate-instances` n’est pas pris en charge pour les parcs `instant`. Voici un exemple de sortie pour cette erreur.

```
{
      "UnsuccessfulFleetDeletions": [
            {
                  "FleetId": "fleet-5d130460-0c26-bfd9-2c32-0100a098f625",
                  "Error": {
                          "Message": "NoTerminateInstances option is not supported for instant fleet",
                          "Code": "NoTerminateInstancesNotSupported"
                   }
            }
       ],
       "SuccessfulFleetDeletions": []
}
```

**Résoudre les problèmes liés à `UnauthorizedOperation`**  
Si vous n’avez pas l’autorisation de résilier des instances, vous obtenez l’erreur `UnauthorizedOperation` lors de la suppression d’un parc qui doit résilier ses instances. Voici le message d’erreur.

```
<Response><Errors><Error><Code>UnauthorizedOperation</Code><Message>You are not authorized to perform this 
operation. Encoded authorization failure message: VvuncIxj7Z_CPGNYXWqnuFV-YjByeAU66Q9752NtQ-I3-qnDLWs6JLFd
KnSMMiq5s6cGqjjPtEDpsnGHzzyHasFHOaRYJpaDVravoW25azn6KNkUQQlFwhJyujt2dtNCdduJfrqcFYAjlEiRMkfDHt7N63SKlweKUl
BHturzDK6A560Y2nDSUiMmAB1y9UNtqaZJ9SNe5sNxKMqZaqKtjRbk02RZu5V2vn9VMk6fm2aMVHbY9JhLvGypLcMUjtJ76H9ytg2zRlje
VPiU5v2s-UgZ7h0p2yth6ysUdhlONg6dBYu8_y_HtEI54invCj4CoK0qawqzMNe6rcmCQHvtCxtXsbkgyaEbcwmrm2m01-EMhekLFZeJLr
DtYOpYcEl4_nWFX1wtQDCnNNCmxnJZAoJvb3VMDYpDTsxjQv1PxODZuqWHs23YXWVywzgnLtHeRf2o4lUhGBw17mXsS07k7XAfdPMP_brO
PT9vrHtQiILor5VVTsjSPWg7edj__1rsnXhwPSu8gI48ZLRGrPQqFq0RmKO_QIE8N8s6NWzCK4yoX-9gDcheurOGpkprPIC9YPGMLK9tug
</Message></Error></Errors><RequestID>89b1215c-7814-40ae-a8db-41761f43f2b0</RequestID></Response>
```

Pour résoudre l’erreur, vous devez ajouter l’action `ec2:TerminateInstances` à la stratégie IAM, comme illustré dans l’exemple suivant.

# Travailler avec le parc d’instances Spot
<a name="work-with-spot-fleets"></a>

Pour utiliser un parc d’instances Spot, créez une demande comprenant la capacité cible totale pour les instances Spot, une part à la demande facultative, et spécifiez manuellement une AMI et une paire de clés, ou spécifiez un modèle de lancement comprenant la configuration des instances du parc d’instances du parc. Vous pouvez éventuellement spécifier des paramètres supplémentaires ou laisser le parc utiliser les valeurs par défaut. Vous pouvez également étiqueter la demande de flotte, ainsi que ses instances et volumes, lorsque vous créez la flotte.

La flotte 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.

Une fois votre flotte lancée, vous pouvez décrire la demande de flotte, les instances de la flotte et tout événement lié à la flotte. Vous pouvez également attribuer des balises supplémentaires selon vos besoins.

Si vous devez modifier les paramètres du parc, tels que la capacité cible totale, vous pouvez modifier le parc, à condition qu’il ait été configuré pour maintenir la capacité. Vous ne pouvez pas modifier la capacité d’une demande unique une fois qu’elle a été soumise.

La demande de flotte reste active jusqu’à son expiration ou jusqu’à ce que vous l’annuliez (la supprimiez). Lorsque vous annulez la demande de parc d’instances, vous pouvez soit résilier les instances, soit les laisser en cours d’exécution. 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.

**Topics**
+ [

# État des demandes de parc d’instances Spot
](spot-fleet-states.md)
+ [

# Autorisations du parc d’instances Spot
](spot-fleet-prerequisites.md)
+ [

# Créer une flotte Spot
](create-spot-fleet.md)
+ [

# Étiqueter un nouveau parc d’instances Spot et les instances et volumes qu’il lance
](tag-spot-fleet.md)
+ [

# Décrire une demande de parc d’instances Spot, ses instances et l’historique des événements.
](manage-spot-fleet.md)
+ [

# Modifier une demande de parc d’instances Spot
](modify-spot-fleet.md)
+ [

# Annuler (supprimer) une demande de parc d’instances Spot
](cancel-spot-fleet.md)
+ [

# Comprendre la scalabilité automatique du parc d’instances Spot
](spot-fleet-automatic-scaling.md)

# État des demandes de parc d’instances Spot
<a name="spot-fleet-states"></a>

Une demande de parc d’instances Spot peut comporter plusieurs états, chaque état indiquant une étape différente du cycle de vie de la demande et de la gestion des instances.

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 demande 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 reste dans cet état jusqu’à ce que la modification soit entièrement traitée ou que la demande soit annulée. Seul une flotte de type `maintain` peut être modifié. Cet état ne s’applique pas à un type de flotte `request` à usage unique.

`cancelled_running`  
Le parc d’instances Spot est annulé (supprimé) et ne lance pas d’instances Spot supplémentaires. Ses instances existantes continuent de s’exécuter jusqu’à ce qu’elles soient interrompues ou résiliées manuellement. La demande conserve cet état jusqu’à ce que toutes les instances soient interrompues ou mises hors service.

`cancelled_terminating`  
La demande de flotte d’instances Spot 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.

`cancelled`  
La demande de parc d’instances Spot est annulée (supprimée) 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.

# Autorisations du parc d’instances Spot
<a name="spot-fleet-prerequisites"></a>

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 l'API 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.

**Topics**
+ [

## Accorder des autorisations aux utilisateurs pour un parc instances Spot
](#spot-fleet-iam-users)
+ [

## Rôle lié à un service pour un parc d’instances Spot
](#service-linked-roles-spot-fleet-requests)
+ [

## Rôle lié à un service pour les instances Spot
](#service-linked-roles-spot-instances)
+ [

## Rôle IAM pour l’étiquetage d’un parc d’instances Spot
](#spot-fleet-service-linked-role)

## Accorder des autorisations aux utilisateurs pour un parc instances Spot
<a name="spot-fleet-iam-users"></a>

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/](https://console.aws.amazon.com/iam/).

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

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

------
#### [ JSON ]

****  

   ```
   {
       "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 IAM requis APIs**

   Les éléments suivants APIs doivent être inclus 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 [Accorder à un utilisateur l'autorisation de transmettre un rôle à un AWS service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) dans le *Guide de l'utilisateur IAM*.

   **Parc d’instances Spot APIs**

   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`

   **IAM en option APIs**

   (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`

1. Choisissez **Examiner une stratégie**.

1. 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)**.

1. Pour activer l’accès, ajoutez des autorisations à vos utilisateurs, groupes ou rôles :
   + Utilisateurs et groupes dans AWS IAM Identity Center :

     Créez un jeu d’autorisations. Suivez les instructions de la rubrique [Création d’un jeu d’autorisations](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) du *Guide de l’utilisateur AWS IAM Identity Center *.
   + Utilisateurs gérés dans IAM par un fournisseur d’identité :

     Créez un rôle pour la fédération d’identité. Suivez les instructions de la rubrique [Création d’un rôle pour un fournisseur d’identité tiers (fédération)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) dans le *Guide de l’utilisateur IAM*.
   + Utilisateurs IAM :
     + Créez un rôle que votre utilisateur peut assumer. Suivez les instructions de la rubrique [Création d’un rôle pour un utilisateur IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) dans le *Guide de l’utilisateur IAM*.
     + (Non recommandé) Attachez une politique directement à un utilisateur ou ajoutez un utilisateur à un groupe d’utilisateurs. Suivez les instructions de la rubrique [Ajout d’autorisations à un utilisateur (console)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) du *Guide de l’utilisateur IAM*.

## Rôle lié à un service pour un parc d’instances Spot
<a name="service-linked-roles-spot-fleet-requests"></a>

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 la section [Rôles liés à un service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html) dans le *Guide de l’utilisateur IAM*.

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

**Important**  
Si vous spécifiez une [AMI chiffrée](AMIEncryption.md) ou un instantané Amazon EBS chiffré dans votre parc de spots, vous devez accorder au **AWSServiceRoleForEC2SpotFleet**rôle l'autorisation d'utiliser le CMK afin qu'Amazon EC2 puisse lancer des instances en votre nom. Pour de plus amples informations, veuillez consulter [Autoriser l'accès à CMKs des instantanés chiffrés AMIs et EBS à des fins d'utilisation](#spot-fleet-service-linked-roles-access-to-cmks).

### Autorisations accordées par AWSService RoleFor EC2 SpotFleet
<a name="service-linked-role-permissions-granted-by-AWSServiceRoleForEC2SpotFleet"></a>

Le **AWSServiceRoleForEC2SpotFleet**rôle accorde à Spot Fleet l'autorisation de demander, de lancer, de résilier et d'étiqueter des instances en votre nom. Amazon EC2 utilise ce rôle lié à un service pour effectuer les actions suivantes :
+ `ec2:RequestSpotInstances` - Demander des Instances Spot
+ `ec2:RunInstances` - Lancer des instances
+ `ec2:TerminateInstances` - Résilier des instances
+ `ec2:DescribeImages`- Décrivez Amazon Machine Images (AMIs) 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
<a name="service-linked-role-creating-for-spot-fleet"></a>

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 **AWSServiceRoleForEC2SpotFleet**lié 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared) 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 le AWSService RoleFor EC2 SpotFleet rôle pour Spot Fleet à l'aide de la console**

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Dans le panneau de navigation, choisissez **Rôles**.

1. Sélectionnez **Create role** (Créer un rôle).

1. 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 **.

   1. Sous **Cas d’utilisation**, pour **Service ou cas d’utilisation**), choisissez **EC2**.

   1. Pour **Utiliser un cas**, choisissez **Parc d’instances Spot - EC2**.
**Note**  
Le cas d'utilisation d'**EC2 - Spot Fleet** créera automatiquement une politique avec les autorisations IAM requises et proposera le nom du **AWSEC2SpotFleetServiceRolePolicy**rôle.

   1. Choisissez **Suivant**.

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

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

**Pour créer le AWSService RoleFor EC2 SpotFleet rôle de Spot Fleet à l'aide du AWS CLI**  
Utilisez la commande [create-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-service-linked-role.html) 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 **AWSServiceRoleForEC2SpotFleet**rô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 la section [Suppression d’un rôle lié à un service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html#id_roles_manage_delete_slr) dans le *Guide de l’utilisateur IAM*.

### Autoriser l'accès à CMKs des instantanés chiffrés AMIs et EBS à des fins d'utilisation
<a name="spot-fleet-service-linked-roles-access-to-cmks"></a>

Si vous spécifiez une [AMI chiffrée](AMIEncryption.md) 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 **AWSServiceRoleForEC2SpotFleet**rô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](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) et [Utilisation des stratégies de clé dans AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) dans le *Guide du développeur AWS Key Management Service *.

**Pour accorder au AWSService RoleFor EC2 SpotFleet rôle l'autorisation d'utiliser le CMK**
+ Utilisez la commande [create-grant](https://docs.aws.amazon.com/cli/latest/reference/kms/create-grant.html) pour ajouter une autorisation au CMK et pour spécifier le principal (le rôle **AWSServiceRoleForEC2SpotFleet**lié 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 **AWSServiceRoleForEC2SpotFleet**lié 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/spotfleet.amazonaws.com/AWSServiceRoleForEC2SpotFleet \
      --operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"
  ```

## Rôle lié à un service pour les instances Spot
<a name="service-linked-roles-spot-instances"></a>

Amazon EC2 utilise le rôle lié au service nommé **AWSServiceRoleForEC2Spot** pour lancer et gérer les instances Spot en votre nom. Pour de plus amples informations, veuillez consulter [Rôle lié à un service pour les demandes d’instance Spot](service-linked-roles-spot-instance-requests.md).

## Rôle IAM pour l’étiquetage d’un parc d’instances Spot
<a name="spot-fleet-service-linked-role"></a>

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 de plus amples informations, veuillez consulter [Étiqueter un nouveau parc d’instances Spot et les instances et volumes qu’il lance](tag-spot-fleet.md).

**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/](https://console.aws.amazon.com/iam/).

1. Dans le panneau de navigation, choisissez **Rôles**.

1. Sélectionnez **Create role** (Créer un rôle).

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

1. Sous**Use case (Cas d’utilisation)**, de**Use cases for other (Cas d’utilisation pour d’autres) AWS services**, choisissez**EC2**puis**EC2 - Spot Fleet Tagging (Marquage de flotte ponctuelle)**.

1. Choisissez **Suivant**.

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

1. 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**).

1. 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
<a name="cross-service-confused-deputy-prevention"></a>

Le [problème de l’adjoint confus](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) 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 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) et [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) dans la stratégie 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/](https://console.aws.amazon.com/iam/).

1. Dans le panneau de navigation, choisissez **Rôles**.

1. Recherchez le `aws-ec2-spot-fleet-tagging-role` que vous avez créé précédemment et sélectionnez le lien (et non la case à cocher).

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

1. Dans l’instruction JSON, ajoutez un`Condition`élément contenant votre`aws:SourceAccount`et`aws:SourceArn`Clés de contexte de condition globales pour empêcher le[problème de l’adjoint confus](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html), comme suit :

   ```
   "Condition": {
         "ArnLike": {
           "aws:SourceArn": "arn:aws:ec2:us-east-1:111122223333:spot-fleet-request/sfr-*"
         },
         "StringEquals": {
           "aws:SourceAccount": "111122223333"
         }
   ```
**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 :

------
#### [ JSON ]

****  

   ```
   {
     "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:111122223333:spot-fleet-request/sfr-*"
         },
         "StringEquals": {
           "aws:SourceAccount": "111122223333"
         }
       }
     }
   }
   ```

------

1. Choisissez **Mettre à jour une politique**.

Le tableau suivant fournit les valeurs potentielles pour`aws:SourceArn`pour limiter la portée de votre`aws-ec2-spot-fleet-tagging-role`à divers degrés de spécificité.


****  

| Opération API | Service appelé | Scope | `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:\$1:123456789012:spot-fleet-request/sfr-\$1 | 
| 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-\$1 | 
| 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 flotte Spot
<a name="create-spot-fleet"></a>

À l'aide du AWS Management Console, vous pouvez créer rapidement une demande de flotte Spot en choisissant uniquement une AMI et la capacité cible totale que vous souhaitez. Amazon EC2 configure une flotte qui répond le mieux à vos besoins et qui est conforme aux pratiques Spot exemplaires. Vous pouvez également modifier l’un des paramètres par défaut.

Si vous souhaitez inclure des instances à la demande dans votre flotte, vous devez spécifier un modèle de lancement dans votre demande et spécifier la capacité à la demande souhaitée.

La flotte 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.

Si votre parc d’instances inclut des instances Spot et qu’il s’agit d’un type d’instance `maintain`, Amazon EC2 tente de maintenir la capacité cible de votre flotte lorsque vos instances Spot sont interrompues.

**Autorisations requises**  
Pour de plus amples informations, veuillez consulter [Autorisations du parc d’instances Spot](spot-fleet-prerequisites.md).

**Topics**
+ [

## Création rapide d’une demande de parc d’instances Spot
](#create-spot-fleet-quick)
+ [

## Création d’une demande de parc d’instances Spot à l’aide de paramètres définis
](#create-spot-fleet-advanced)
+ [

## Créer un parc d’instances Spot qui remplace les instances Spot défaillantes
](#spot-fleet-health-checks)

## Création rapide d’une demande de parc d’instances Spot
<a name="create-spot-fleet-quick"></a>

Suivez ces étapes pour créer rapidement une demande de parc d’instances Spot à l’aide de la console Amazon EC2.

**Pour créer une demande de parc d’instances Spot à l’aide des paramètres recommandés**

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

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

1. Si vous utilisez les instances Spot pour la première fois, sélectionnez **Mise en route**. Sinon, choisissez **Créer une demande de parc d’instances Spot**.

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

1. Pour **AMI**, choisissez une AMI.

1. 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**CPUs, **v** ou **Memory (GiB**).

1. Pour **Votre demande de parc en un clin d’œil**, passez en revue la configuration de votre flotte et choisissez **Lancer**.

## Création d’une demande de parc d’instances Spot à l’aide de paramètres définis
<a name="create-spot-fleet-advanced"></a>

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

------
#### [ Console ]

**Pour créer une demande de parc d’instances Spot à l’aide de paramètres définis**

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

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

1. Si vous utilisez les instances Spot pour la première fois, sélectionnez **Mise en route**. Sinon, choisissez **Créer une demande de parc d’instances Spot**.

1. Pour les **paramètres de lancement**, vous pouvez soit configurer manuellement les paramètres de lancement, soit utiliser un modèle de lancement, comme suit :

   1. [Configuration manuelle] Pour définir les paramètres de lancement dans la console Amazon EC2, choisissez **Configurer manuellement les paramètres de lancement**, puis procédez comme suit :

      1. Pour l'**AMI**, choisissez l'une des options de base AMIs 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.

      1. (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.

      1. (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).

         1. (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**.

         1. (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.

         1. (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**.

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

         1. (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.

         1. (Facultatif) Pour rendre vos instances accessibles depuis Internet, dans **Attribuer automatiquement une adresse IP IPv4 publique**, sélectionnez **Activer**.

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

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

         1. (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**.

   1. [Modèle de lancement] Pour utiliser une configuration que vous avez créée dans un modèle de lancement, choisissez **Utiliser un modèle de lancement**, et pour **Modèle de lancement**, choisissez un modèle de lancement.
**Note**  
Si vous souhaitez intégrer une capacité à la demande dans votre parc d’instances Spot, vous devez spécifier un modèle de lancement.

1. 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)**.

   1. (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.

   1. (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**.

   1. (Facultatif) Par défaut, Amazon EC2 résilie vos instances à l’expiration de la demande de flotte EC2. 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)**.

   1. (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.

1. 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**CPUs, **v** ou **Memory (MiB**). Pour spécifier une capacité cible de 0 afin d’ajouter une capacité ultérieurement, choisissez **Maintain target capacity (Maintenir la capacité cible)**.

   1. (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.

   1. (Facultatif) Par défaut, Amazon EC2 résilie les 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 que Amazon EC2 résilie, 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. Dans ce cas, pour les flottes conçues pour maintenir la capacité cible, la capacité cible ne sera pas maintenue.

   1. (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 Amazon EC2 ne résilie les anciennes instances. Pour de plus amples informations, veuillez consulter [Utilisez le rééquilibrage des capacités dans la flotte EC2 et le parc Spot pour remplacer les instances ponctuelles à risque](ec2-fleet-capacity-rebalance.md).

   1. (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 de plus amples informations, veuillez consulter [Définissez une limite de dépenses pour votre Flotte EC2 ou parc d’instances Spot](ec2-fleet-control-spending.md).

1. 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 à cet écran et actualisez la liste.

   1. (Facultatif) Pour **Zone de disponibilité**, laissez Amazon EC2 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 à cet écran et actualisez la liste.

1. 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 de plus amples informations, veuillez consulter [Spécifiez des attributs pour la sélection de type d’instance pour la flotte EC2](ec2-fleet-attribute-based-instance-type-selection.md).

   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 **v CPUs**, entrez le nombre minimum et maximum de v souhaitésCPUs. Pour ne définir aucune limite, sélectionnez **Aucun minimum** ou **Aucun maximum**, ou les deux.

      1. 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.

      1. (Facultatif) Pour **Additional instance attribute** (Attributs d’instance supplémentaire), vous pouvez éventuellement spécifier un ou plusieurs attributs pour exprimer vos besoins de calcul de manière plus détaillée. 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 [get-spot-placement-scores](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-spot-placement-scores.html).

      1. (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).

   1. 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).

1. Pour la **stratégie d’allocation**, choisissez une stratégie d’allocation au comptant et une stratégie d’allocation à la demande qui répondent à vos besoins. Pour de plus amples informations, veuillez consulter [Utilisez des stratégies d’allocation pour déterminer la manière dont les flottes d’instances EC2 ou Spot utilisent les capacités Spot et Spot](ec2-fleet-allocation-strategy.md).

1. 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.

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

1. Lorsque vous êtes prêt à lancer votre parc d’instances Spot, choisissez **Launch** (Lancer).

   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`.

------
#### [ AWS CLI ]

**Pour créer une demande de parc d’instances Spot**  
Utilisez la commande [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html).

```
aws ec2 request-spot-fleet --spot-fleet-request-config file://config.json
```

Pour accéder à des exemples de fichiers de configuration, consultez [Exemples de configurations CLI : Spot Fleet](spot-fleet-examples.md).

------
#### [ PowerShell ]

**Pour créer une demande de parc d’instances Spot**  
Utilisez l’applet de commande [Request-EC2SpotFleet](https://docs.aws.amazon.com/powershell/latest/reference/items/Request-EC2SpotFleet.html). L’exemple suivant lance des instances Spot dans un parc d’instances Spot à capacité optimisée.

```
Request-EC2SpotFleet `
    -SpotFleetRequestConfig_TargetCapacity 50 `
    -SpotFleetRequestConfig_AllocationStrategy "CapacityOptimized" `
    -SpotFleetRequestConfig_IamFleetRole "arn:aws:iam::123456789012:role/my-spot-fleet-role" `
    -SpotFleetRequestConfig_LaunchTemplateConfig @($launchConfig)
```

Définissez la configuration du lancement comme suit, en déterminant le modèle de lancement et les propriétés de remplacement dont vous avez besoin. Pour obtenir des exemples de configuration, consultez [Exemples de configurations CLI : Spot Fleet](spot-fleet-examples.md).

```
$lcSpec = Amazon.EC2.Model.FleetLaunchTemplateSpecification
# To do - Set FleetLaunchTemplateSpecification properties
$lcOverrides = New-Object Amazon.EC2.Model.LaunchTemplateOverrides
# To do - Set LaunchTemplateOverrides properties
$launchConfig = New-Object Amazon.EC2.Model.LaunchTemplateConfig
$launchConfig.LaunchTemplateSpecification $lcSpec
$launchConfig.Overrides @($lcOverrides)
```

------

## Créer un parc d’instances Spot qui remplace les instances Spot défaillantes
<a name="spot-fleet-health-checks"></a>

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 de plus amples informations, veuillez consulter [Contrôles du statut des instances Amazon EC2](monitoring-system-instance-status-check.md).

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.

**Exigences**
+ 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 afin de remplacer des instances Spot défectueuses**

1. Suivez les étapes permettant de créer un parc d’instances Spot [Création d’une demande de parc d’instances Spot à l’aide de paramètres définis](#create-spot-fleet-advanced).

1. Pour configurer le parc de manière à remplacer les Instances Spot non saines, développez **les paramètres de lancement supplémentaires** et, sous **Contrôle de l’état**, sélectionnez **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 afin de remplacer des instances Spot défectueuses**  
Utilisez la [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html)commande avec la `ReplaceUnhealthyInstances` propriété de`SpotFleetRequestConfig`.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "lowestPrice",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "TargetCapacity": 10,
        "ReplaceUnhealthyInstances": true
    }
}
```

------
#### [ PowerShell ]

**Pour configurer une demande de parc d’instances Spot afin de remplacer des instances Spot défectueuses**  
Utilisez l'[Request-EC2SpotFleet](https://docs.aws.amazon.com/powershell/latest/reference/items/Request-EC2SpotFleet.html)applet de commande avec le `-SpotFleetRequestConfig_ReplaceUnhealthyInstance` paramètre.

```
-SpotFleetRequestConfig_ReplaceUnhealthyInstance $true
```

------

# Étiqueter un nouveau parc d’instances Spot et les instances et volumes qu’il lance
<a name="tag-spot-fleet"></a>

Pour vous aider à classer et à gérer vos demandes de parc d’instances Spot, ainsi que les instances et les volumes qu’il lance, 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. De même, vous pouvez attribuer une étiquette aux instances et aux volumes lorsqu’ils sont lancés par le parc ou ultérieurement.

Lorsque vous balisez une demande de flotte, les instances et les volumes lancés par la flotte ne sont pas balisés automatiquement. Vous devez baliser explicitement les instances et les volumes lancés par la flotte. Vous pouvez choisir d’attribuer des balises uniquement à la demande de la flotte, ou uniquement aux instances lancées par la flotte, ou uniquement aux volumes associés aux instances lancées par la flotte, ou à l’ensemble de ces instances.

**Note**  
Vous ne pouvez étiqueter que les volumes associés à des instances à la demande. Vous ne pouvez pas baliser les volumes attachés à instances Spot.

Vous pouvez attribuer des balises à l’aide de la console Amazon EC2 ou d’un outil de ligne de commande.

Pour plus d’informations sur le fonctionnement des balises, consultez [Baliser vos ressources Amazon EC2](Using_Tags.md).

**Topics**
+ [

## Prérequis
](#tag-spot-fleet-prereqs)
+ [

## Étiqueter un nouveau parc d’instances Spot et les instances et volumes qu’il lance
](#tag-new-spot-fleet-and-resources)
+ [

## Étiqueter un parc d’instances Spot existant
](#tag-existing-spot-fleet)
+ [

## Affichez les étiquettes de demande de parc d’instances Spot
](#view-spot-fleet-tags)

## Prérequis
<a name="tag-spot-fleet-prereqs"></a>

Octroyez à l’utilisateur l’autorisation de baliser les ressources. Pour de plus amples informations, veuillez consulter [Exemple : Baliser des ressources](ExamplePolicies_EC2.md#iam-example-taggingresources).

**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.

------
#### [ JSON ]

****  

```
{
    "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 :
+ Utilisateurs et groupes dans AWS IAM Identity Center :

  Créez un jeu d’autorisations. Suivez les instructions de la rubrique [Création d’un jeu d’autorisations](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) du *Guide de l’utilisateur AWS IAM Identity Center *.
+ Utilisateurs gérés dans IAM par un fournisseur d’identité :

  Créez un rôle pour la fédération d’identité. Suivez les instructions de la rubrique [Création d’un rôle pour un fournisseur d’identité tiers (fédération)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) dans le *Guide de l’utilisateur IAM*.
+ Utilisateurs IAM :
  + Créez un rôle que votre utilisateur peut assumer. Suivez les instructions de la rubrique [Création d’un rôle pour un utilisateur IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) dans le *Guide de l’utilisateur IAM*.
  + (Non recommandé) Attachez une politique directement à un utilisateur ou ajoutez un utilisateur à un groupe d’utilisateurs. Suivez les instructions de la rubrique [Ajout d’autorisations à un utilisateur (console)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) du *Guide de l’utilisateur IAM*.

## Étiqueter un nouveau parc d’instances Spot et les instances et volumes qu’il lance
<a name="tag-new-spot-fleet-and-resources"></a>

**Pour étiqueter une nouvelle demande de parc d’instances Spot ainsi que les instances et les volumes qu’elle lance à l’aide de la console**

1. Suivez la procédure [Création d’une demande de parc d’instances Spot à l’aide de paramètres définis](create-spot-fleet.md#create-spot-fleet-advanced).

1. La manière dont vous ajoutez une balise dépend de la configuration manuelle de la flotte ou de l’utilisation d’un modèle de lancement.
   + Si vous avez configuré la flotte manuellement, procédez comme suit :

     Pour ajouter une balise, développez **Additional configurations (Configurations supplémentaires)**, choisissez **Create tag**, (Créer une 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 **instances** et les **flottes** sont sélectionnées. Pour étiqueter uniquement la demande de parc d’instances Spot, supprimez **Instances**. Pour étiqueter uniquement les instances lancées par la flotte, supprimer **Fleet** (Flotte).
**Note**  
Lorsque vous configurez manuellement un parc, il n’est pas possible de baliser les volumes. Les balises de volume ne sont prises en charge que pour les volumes attachés à instances à la demande. Lorsque vous configurez manuellement un parc, vous ne pouvez pas spécifier d’instances à la demande.
   + Si vous avez utilisé un modèle de lancement, procédez comme suit :

     Pour ajouter une balise à la demande de parc d’instances, sous **Étiquettes**, choisissez **Créer une balise**, puis entrez la clé et la valeur de la balise. Répétez l’opération pour chaque étiquette.

     Pour étiqueter les ressources de votre flotte, vous devez spécifier des balises dans le [modèle de lancement](create-launch-template.md).

**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](create-launch-template.md) 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](create-launch-template.md) 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](create-launch-template.md) 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 aux instances à la demande lancées par un parc de spots à l'aide du AWS CLI**  
Pour étiqueter des volumes lorsqu’ils sont créés par la flotte, spécifiez les étiquettes dans le [modèle de lancement](create-launch-template.md) 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
<a name="tag-existing-spot-fleet"></a>

**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 balises à la demande de flotte à l’aide de la console.

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

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

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

1. 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](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-tags.html) 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
<a name="view-spot-fleet-tags"></a>

**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/](https://console.aws.amazon.com/ec2/).

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

1. 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](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-tags.html) 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-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-fleet-requests.html)commande 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 une demande de parc d’instances Spot, ses instances et l’historique des événements.
<a name="manage-spot-fleet"></a>

Vous pouvez décrire la configuration de votre parc d’instances Spot, les instances de votre parc d’instances Spot et l’historique des événements de votre parc d’instances Spot.

------
#### [ Console ]

**Pour décrire votre parc d’instances Spot**

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

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

1. Sélectionnez votre demande de parc d’instances Spot. L’identifiant commence par **sfr-**. Pour afficher les détails de la configuration, choisissez **Description**.

1. Pour répertorier les instances Spot du parc d’instances Spot, choisissez**Instances**.

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

------
#### [ AWS CLI ]

**Pour décrire votre demande de parc d’instances Spot**  
Utilisez la commande [describe-spot-fleet-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-fleet-requests.html).

```
aws ec2 describe-spot-fleet-requests \
    --spot-fleet-request-ids sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
```

**Pour décrire les instances en cours d’exécution pour la demande de parc instances Spot spécifiée**  
Utilisez la commande [describe-spot-fleet-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-fleet-instances.html).

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

**Pour décrire l’historique des événements pour la demande de parc instances Spot spécifiée**  
Utilisez la commande [describe-spot-fleet-request-history](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-spot-fleet-request-history.html).

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

------
#### [ PowerShell ]

**Pour décrire votre demande de parc d’instances Spot**  
Utilisez l’applet de commande [Get-EC2SpotFleetRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotFleetRequest.html).

```
Get-EC2SpotFleetRequest
```

**Pour décrire les instances en cours d’exécution pour la demande de parc instances Spot spécifiée**  
Utilisez l’applet de commande [Get-EC2SpotFleetInstance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotFleetInstance.html).

```
Get-EC2SpotFleetInstance `
    -SpotFleetRequestId "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE"
```

**Pour décrire l’historique des événements pour la demande de parc instances Spot spécifiée**  
Utilisez l’applet de commande [Get-EC2SpotFleetRequestHistory](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2SpotFleetRequestHistory.html).

```
Get-EC2SpotFleetRequestHistory `
    -SpotFleetRequestId "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -UtcStartTime 2024-05-18T00:00:00Z
```

------

# Modifier une demande de parc d’instances Spot
<a name="modify-spot-fleet"></a>

Vous pouvez modifier une demande de parc d’instances Spot active pour effectuer les tâches suivantes :
+ Augmenter la capacité cible totale et la part à la demande
+ Diminuer la capacité cible totale et la part à la demande

Lorsque vous augmentez la capacité cible totale, le parc d’instances Spot lance des instances Spot supplémentaires conformément à la stratégie d’allocation de sa demande de parc d’instances Spot.[Utilisez des stratégies d’allocation pour déterminer la manière dont les flottes d’instances EC2 ou Spot utilisent les capacités Spot et Spot](ec2-fleet-allocation-strategy.md) Lorsque vous augmentez la part à la demande, le parc d’instances Spot lance des instances à la demande supplémentaires.

Lorsque vous réduisez la capacité cible totale, le parc d’instances Spot annule toutes les demandes en cours 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.

**Considérations**
+ 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.
+ 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.

------
#### [ Console ]

**Pour modifier une demande de parc d’instances Spot**

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

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

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

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

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

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

   1. (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)**.

   1. Choisissez **Submit**.

------
#### [ AWS CLI ]

**Pour modifier une demande de parc d’instances Spot**  
Utilisez la [modify-spot-fleet-request](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-spot-fleet-request.html)commande 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
```

------
#### [ PowerShell ]

**Pour modifier une demande de parc d’instances Spot**  
Utilisez l'[Edit-EC2SpotFleetRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2SpotFleetRequest.html)applet de commande pour mettre à jour la capacité cible de la demande Spot Fleet spécifiée.

```
Edit-EC2SpotFleetRequest `
    -SpotFleetRequestId "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TargetCapacity 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.

```
Edit-EC2SpotFleetRequest `
    -SpotFleetRequestId "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TargetCapacity 20 `
    -ExcessCapacityTerminationPolicy "NoTermination"
```

------

# Annuler (supprimer) une demande de parc d’instances Spot
<a name="cancel-spot-fleet"></a>

Si vous n’avez plus besoin de parc 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.

**Avertissement**  
**La résiliation d’une instance est définitive et irréversible.**  
Une fois que vous avez résilié une instance, vous ne pouvez plus vous y connecter et elle ne peut pas être récupérée. Tous les volumes Amazon EBS attachés qui sont configurés pour être supprimés à la résiliation sont également supprimés de manière définitive et ne peuvent pas être récupérés. L’intégralité des données stockées sur les volumes de stockage d’instance est définitivement perdue. Pour de plus amples informations, veuillez consulter [Comment fonctionne la résiliation d'une instance](how-ec2-instance-termination-works.md).  
Avant de résilier à une instance, assurez-vous d’avoir sauvegardé toutes les données que vous devez conserver après la résiliation dans un stockage persistant.

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, il passe à l’état `cancelled_running` et les instances continuent à s’exécuter jusqu’à ce qu’elles soient interrompues ou jusqu’à ce que vous les mettiez hors service manuellement.

**Restrictions**
+ Vous pouvez annuler jusqu’à 100 flottes en une seule demande. Si vous dépassez le nombre spécifié, aucun parc n’est annulé.

------
#### [ Console ]

**Pour annuler (supprimer) une demande de parc d’instances Spot**

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

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

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

1. Choisissez **Actions**, **Annuler la demande**.

1. 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**.

   1. Choisissez **Confirmer**.

------
#### [ AWS CLI ]

**Pour annuler (supprimer) une demande de flotte Spot et résilier ses instances**  
Utilisez la commande [cancel-spot-fleet-requests](https://docs.aws.amazon.com/cli/latest/reference/ec2/cancel-spot-fleet-requests.html) avec l’option `--terminate-instances`.

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

Voici un exemple de sortie.

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

**Pour annuler (supprimer) une demande de parc d’instances Spot sans résilier ses instances**  
Modifiez l’exemple précédent en utilisant plutôt l’option `--no-terminate-instances`.

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

Voici un exemple de sortie.

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

------
#### [ PowerShell ]

**Pour annuler (supprimer) une demande de flotte Spot et résilier ses instances**  
Utilisez l'[Stop-EC2SpotFleetRequest](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2SpotFleetRequest.html)applet de commande avec le `-TerminateInstance` paramètre.

```
Stop-EC2SpotFleetRequest `
    -SpotFleetRequestId "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TerminateInstance $true
```

**Pour annuler (supprimer) une demande de parc d’instances Spot sans résilier ses instances**  
Modifiez l’exemple précédent en modifiant la valeur du paramètre `-TerminateInstance`.

```
Stop-EC2SpotFleetRequest `
    -SpotFleetRequestId "sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE" `
    -TerminateInstance $false
```

------

# Comprendre la scalabilité automatique du parc d’instances Spot
<a name="spot-fleet-automatic-scaling"></a>

*La scalabilité automatique* est l’aptitude à augmenter ou à diminuer la capacité cible de votre parc d’instances Spot en fonction de la demande. Grâce à la scalabilité automatique, un parc d’instances Spot peut soit lancer des instances (scalabilité), soit mettre fin à des instances (scalabilité) dans une fourchette spécifiée, en réponse à une ou plusieurs politiques de scalabilité.

Le dimensionnement automatique pour Spot Fleet est rendu possible par une combinaison des API Amazon EC2 CloudWatch, Amazon et Application Auto Scaling. Les demandes Spot Fleet sont créées avec Amazon EC2, les alarmes sont créées avec CloudWatch Application Auto Scaling et les politiques de dimensionnement sont créées avec Application Auto Scaling.

**Types de mise à l’échelle automatique**

Le parc d’instances Spot prend en charge les types de scalabilité automatique suivants :
+ [Mise à l’échelle du suivi de cible](spot-fleet-target-tracking.md) : augmente ou réduit la capacité actuelle de la flotte en fonction d’une valeur cible pour une métrique spécifique. Cette option est similaire à la façon dont votre thermostat maintient la température de votre domicile : vous sélectionnez une température et le thermostat se charge du reste.
+ [Mise à l’échelle d’étape](spot-fleet-step-scaling.md) : augmente ou réduit la capacité actuelle de la flotte en fonction d’un ensemble d’ajustements de la mise à l’échelle, appelés ajustements d’étape, qui varient en fonction de la valeur d’utilisation hors limites de l’alarme.
+ [Mise à l’échelle planifiée](spot-fleet-scheduled-scaling.md) : augmente ou réduit la capacité actuelle de la flotte en fonction de la date et de l’heure.

## Considérations
<a name="considerations-for-spot-fleet-automatic-scaling"></a>

Lorsque vous utilisez la mise à l’échelle automatique pour votre parc d’instances Spot, tenez compte des informations suivantes :
+ **Pondération des instances** – Si vous utilisez la [pondération des instances](ec2-fleet-instance-weighting.md), gardez à l’esprit que le parc d’instances Spot peut dépasser la capacité cible si nécessaire. La capacité fournie peut correspondre à un nombre à virgule flottante, mais la capacité cible doit être un nombre entier pour que le parc d’instances Spot puisse l’arrondir au nombre entier suivant. Vous devez prendre ces comportements en compte lorsque vous examinez les résultats d’une politique de dimensionnement lorsqu’une alarme se déclenche. Par exemple, supposons que la capacité cible est 30, que la capacité fournie est 30,1 et que la politique de dimensionnement soustrait 1. Lorsque l’alarme se déclenche, le processus de scalabilité automatique soustrait 1 de 30,1 pour obtenir 29,1, puis arrondit la valeur à 30. Aucune action de mise à l’échelle n’est alors effectuée. Pour prendre un autre exemple, supposons que vous avez sélectionné des pondérations d’instance de 2, 4 et 8, et une capacité cible de 10, mais qu’aucune instance de pondération 2 n’était disponible, si bien que le parc d’instances Spot a provisionné des instances de pondération 4 et 8 pour une capacité fournie de 12. Si la politique de mise à l’échelle réduit la capacité cible de 20 % et qu’une alarme se déclenche, le processus de scalabilité automatique soustrait 12 x 0,2 de 12 pour obtenir 9,6, puis arrondit la valeur à 10. Aucune action de mise à l’échelle n’est alors effectuée.
+ **Temps de stabilisation** – Les politiques de mise à l’échelle que vous créez pour le parc d’instances Spot prennent en charge un temps de stabilisation. C’est le nombre de secondes après la fin d’une activité de dimensionnement au cours desquelles les activités de dimensionnement précédentes liées à un déclencheur peuvent influer sur les événements de dimensionnement futurs. Pour les politiques de montée en charge (scale-out), pendant la durée du temps de stabilisation, la capacité qui a été ajoutée par l’événement de montée en charge précédent qui a lancé la stabilisation est calculée dans le cadre de la capacité souhaitée pour la montée en charge suivante. L’objectif est d’effectuer une montée en charge continue (mais pas excessive). Pour les politiques de diminution de charge, la période de récupération est utilisée pour bloquer les demandes de montée en charge suivantes jusqu’à leur expiration. L’objectif est de diminuer la charge avec prudence afin de protéger la disponibilité de votre application. Toutefois, si une autre alarme déclenche une politique de montée en charge pendant le temps de stabilisation après une diminution en charge (scale-in), la scalabilité automatique monte immédiatement en charge votre cible scalable.
+ **Utiliser un suivi détaillé** – Nous vous recommandons de dimensionner sur des métriques d’instance à une fréquence de 1 minute, car cela permet de réagir plus rapidement aux modifications d’utilisation. Un dimensionnement sur des métriques à une fréquence de 5 minutes peut entraîner des temps de réponse plus lents et un dimensionnement sur des données de métrique obsolètes. Pour envoyer les données des métriques de votre instance à CloudWatch toutes les minutes, vous pouvez activer la surveillance détaillée sur l'instance. Pour plus d’informations, consultez [Gérez la surveillance détaillée de vos instances EC2](manage-detailed-monitoring.md) et [Création d’une demande de parc d’instances Spot à l’aide de paramètres définis](create-spot-fleet.md#create-spot-fleet-advanced).
+ **AWS CLI**— Si vous utilisez le AWS CLI pour configurer le dimensionnement pour Spot Fleet, vous utiliserez les commandes [application-autoscaling](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling).

# Autorisations IAM requises pour la scalabilité automatique d’un parc d’instances Spot
<a name="spot-fleet-auto-scaling-IAM"></a>

Le dimensionnement automatique pour Spot Fleet est rendu possible par une combinaison des API Amazon EC2 CloudWatch, Amazon et Application Auto Scaling. Les demandes Spot Fleet sont créées avec Amazon EC2, les alarmes sont créées avec CloudWatch Application Auto Scaling et les politiques de dimensionnement sont créées avec Application Auto Scaling. Outre les [autorisations IAM requises pour utiliser le parc d’instances Spot](spot-fleet-prerequisites.md#spot-fleet-iam-users), et Amazon EC2, l’utilisateur qui accède aux paramètres de mise à l’échelle de la flotte doit disposer des autorisations appropriées pour les services qui prennent en charge la mise à l’échelle automatique.

Pour utiliser la mise à l’échelle automatique pour le parc d’instances Spot, les utilisateurs doivent disposer d’autorisations leur permettant d’utiliser les actions indiquées dans l’exemple de politique suivant. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "application-autoscaling:*",
                "ec2:DescribeSpotFleetRequests",
                "ec2:ModifySpotFleetRequest",
                "cloudwatch:DeleteAlarms",
                "cloudwatch:DescribeAlarmHistory",
                "cloudwatch:DescribeAlarms",
                "cloudwatch:DescribeAlarmsForMetric",
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:ListMetrics",
                "cloudwatch:PutMetricAlarm",
                "cloudwatch:DisableAlarmActions",
                "cloudwatch:EnableAlarmActions",
                "iam:CreateServiceLinkedRole",
                "sns:CreateTopic",
                "sns:Subscribe",
                "sns:Get*",
                "sns:List*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Vous pouvez également créer vos propres politiques IAM qui permettent de créer des autorisations plus détaillées pour les appels vers l’API Application Auto Scaling. Pour plus d’informations, consultez [Rôles liés aux services pour Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/auth-and-access-control.html) dans le *Guide de l’utilisateur Application Auto Scaling*.

Le service Application Auto Scaling a également besoin d'une autorisation pour décrire votre parc de spots et vos CloudWatch alarmes, ainsi que d'autorisations pour modifier la capacité cible de votre parc de spots en votre nom. Si vous activez la scalabilité automatique pour votre parc d’instances Spot, il crée un rôle lié à un service nommé `AWSServiceRoleForApplicationAutoScaling_EC2SpotFleetRequest`. Le rôle lié à un service donne à Application Auto Scaling l’autorisation de décrire les alarmes de vos politiques, de surveiller la capacité actuelle du flotte et éventuellement de la modifier. Le rôle de parc d’instances Spot géré original pour Application Auto Scaling était `aws-ec2-spot-fleet-autoscale-role`, mais il n’est plus nécessaire. Le rôle lié à un service est le rôle par défaut pour Application Auto Scaling. Pour plus d’informations, consultez [Rôles liés aux services pour Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-service-linked-roles.html) dans le *Guide de l’utilisateur Application Auto Scaling*.

# Mise à l’échelle du suivi des cibles : dimensionnez le parc de spots en ciblant une valeur pour une métrique spécifique
<a name="spot-fleet-target-tracking"></a>

Grâce aux politiques de suivi des objectifs et d’échelonnement, vous sélectionnez une métrique de mise à l’échelle et définissez une valeur cible. Spot Fleet crée et gère ensuite les CloudWatch alarmes qui déclenchent la politique de dimensionnement, puis calcule l'ajustement de dimensionnement en fonction de la métrique choisie et de la valeur cible. La politique de mise à l’échelle ajuste la capacité en ajoutant ou en supprimant des instances selon les besoins pour maintenir la métrique à la valeur cible spécifiée ou à une valeur proche de celle-ci. Une politique de suivi des objectifs permet non seulement de maintenir la métrique proche de la valeur cible, mais aussi de s’adapter aux fluctuations de la métrique dues à un modèle de charge fluctuant et de minimiser les fluctuations rapides de la capacité.

Vous pouvez créer plusieurs politiques de suivi des objectifs et d’échelonnement pour un parc d’instances Spot dans la mesure où chacune d’elles utilise une métrique différente. Le flotte est dimensionné selon la politique qui fournit la plus grande capacité de flotte. Cela vous permet de couvrir plusieurs scénarios afin de garantir une capacité suffisante pour vos charges de travail d’application.

Pour garantir la disponibilité de l’application, la flotte augmente proportionnellement aux métriques aussi rapidement que possible, mais diminue plus progressivement.

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.

**Note**  
Ne modifiez ni ne supprimez les CloudWatch alarmes gérées par Spot Fleet dans le cadre d'une politique de dimensionnement du suivi des cibles. Le parc d’instances Spot supprime les alarmes automatiquement lorsque vous supprimez la politique de suivi des objectifs et d’échelonnement.

**Conditions préalables**
+ La demande de parc d’instances Spot doit être de type `maintain`. La scalabilité automatique n’est pas prise en charge pour les demandes de type `request`.
+ Configurez le [Autorisations IAM requises pour la scalabilité automatique d’un parc d’instances Spot](spot-fleet-auto-scaling-IAM.md).
+ Prenez connaissance des [Considérations](spot-fleet-automatic-scaling.md#considerations-for-spot-fleet-automatic-scaling).

**Pour configurer une politique de suivi de cible**

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

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

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

1. Choisissez l’onglet **Auto Scaling** en bas de l’écran. Si vous avez sélectionné le lien pour votre Spot Fleet, il n’y a pas d’onglet ; faites défiler la page vers le bas jusqu’à la section **Auto Scaling**.

1. Si la mise à l’échelle automatique n’est pas configurée, sélectionnez **Configurer**.

1. Utilisez le champ **Scale capacity between (Mettre à l’échelle la capacité entre)** pour définir les capacités minimale et maximale de votre parc. Avec le dimensionnement automatique, votre flotte n’aura jamais une capacité inférieure ou supérieure aux limites fixées.

1. Pour **Policy name** (Nom de la stratégie), attribuez un nom à cette stratégie.

1. Choisissez une valeur **Target Metric (Métrique cible)**.

1. Spécifiez une valeur **Target Value (Valeur cible)** pour la métrique.

1. Pour le **Temps de stabilisation**, spécifiez une nouvelle valeur (en secondes) ou conservez la valeur par défaut.

1. (Facultatif) Sélectionnez **Disable Scale-in (Désactiver la diminution en charge)** pour ignorer la création d’une stratégie de diminution en charge sur la base de la configuration en cours. Vous pouvez créer une politique d’ajustement à la baisse à l’aide d’une autre configuration.

1. Choisissez **Enregistrer**.

**Pour configurer une politique de suivi des cibles à l'aide du AWS CLI**

1. Enregistrez la demande Spot Fleet en tant que cible évolutive à l'aide de la [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html)commande.

1. Créez une politique de dimensionnement à l'aide de la [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html)commande.

# Mise à l’échelle par étapes : mise à l’échelle du parc d’instances Spot en utilisant les politiques de mise à l’échelle d’étape
<a name="spot-fleet-step-scaling"></a>

Avec les politiques de dimensionnement par étapes, vous spécifiez CloudWatch des alarmes pour déclencher le processus de dimensionnement. Par exemple, si vous souhaitez augmenter la capacité du parc quand l’utilisation de l’UC atteint un niveau donné, créez une alarme en utilisant la métrique `CPUUtilization` fournie par Amazon EC2.

Lorsque vous créez une politique de dimensionnement d’étape, vous devez indiquer l’un des types d’ajustement suivants :
+ **Ajouter** : augmentez la capacité cible de la flotte selon un nombre donné d’unités de capacité ou un pourcentage de la capacité actuelle spécifié.
+ **Supprimer** : réduisez la capacité cible de la flotte selon un nombre donné d’unités de capacité ou un pourcentage de la capacité actuelle spécifié.
+ **Définir sur** : définissez la capacité cible de la flotte selon un nombre précis d’unités de capacité spécifié.

Lorsqu’une alarme se déclenche, le processus de scalabilité automatique calcule la nouvelle capacité cible d’après la capacité fournie et la politique de mise à l’échelle, puis met à jour la capacité cible en conséquence. Par exemple, supposons que la capacité cible et la capacité fournie sont égales à 10 et que la politique de dimensionnement ajoute 1. Lorsque l’alarme se déclenche, le processus de scalabilité automatique ajoute 1 à 10 pour obtenir 11, pour que le parc d’instances Spot lance 1 instance.

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.

**Conditions préalables**
+ La demande de parc d’instances Spot doit être de type `maintain`. La scalabilité automatique n’est pas prise en charge pour les demandes de type `request`.
+ Configurez le [Autorisations IAM requises pour la scalabilité automatique d’un parc d’instances Spot](spot-fleet-auto-scaling-IAM.md).
+ Déterminez quels CloudWatch indicateurs sont importants pour votre application. Vous pouvez créer des CloudWatch alarmes en fonction des métriques fournies par AWS ou de vos propres métriques personnalisées.
+ Pour les AWS métriques que vous utiliserez dans vos politiques de dimensionnement, activez la collecte de CloudWatch métriques si le service qui fournit les métriques ne l'active pas par défaut.
+ Prenez connaissance des [Considérations](spot-fleet-automatic-scaling.md#considerations-for-spot-fleet-automatic-scaling).

**Pour créer une CloudWatch alarme**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Dans le panneau de navigation, développez **Alarmes**, puis choisissez **Toutes les alarmes**.

1. Choisissez **Create alarm** (Créer une alarme).

1. Sur la page **Specify metric and conditions** (Spécifier une métrique et des conditions), sélectionnez **Select metric** (Sélectionner une métrique). 

1. Choisissez **EC2 Spot**, puis **Fleet Request Metrics**, puis sélectionnez une métrique (par exemple, **TargetCapacity**), puis **sélectionnez Select metric**.

   La page **Specify metric and conditions (Spécifier les métriques et les conditions)** apparaît, présentant un graphique et d’autres informations sur la métrique sélectionnée. 

1. Sous **Période**, choisissez la période d’évaluation de l’alarme, par exemple, **1 minute**. Lors de l’évaluation de l’alarme, chaque période est regroupée en un point de données. 
**Note**  
Une période plus courte crée une alarme plus sensible. 

1. Sous **Conditions**, définissez l’alarme en définissant la condition de seuil. Par exemple, vous pouvez définir un seuil pour déclencher l’alarme lorsque la valeur de la métrique est supérieure ou égale à 80 %.

1. Sous **Additional configuration (Configuration supplémentaire)**, pour **Datapoints to alarm (Points de données pour l’alarme)**, spécifiez le nombre de points de données (périodes d’évaluation) qui doivent être dans l’état ALARME pour déclencher l’alarme, par exemple, 1 sur 2. Cela crée une alarme qui passe à l’état ALARME si le seuil est dépassé par ce nombre de périodes consécutives. Pour plus d'informations, consultez la section [Évaluation d'une alarme](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarm-evaluation) dans le *guide de CloudWatch l'utilisateur Amazon*.

1. Pour **Missing data treatment (Traitement des données manquantes)**, choisissez l’une des options (ou conservez la valeur par défaut **Treat missing data as missing (Traiter les données manquantes comme manquantes**)). Pour plus d'informations, consultez la [section Configuration de la manière dont les CloudWatch alarmes traitent les données manquantes](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-missing-data) dans le *guide de CloudWatch l'utilisateur Amazon*.

1. Choisissez **Suivant**.

1. (Facultatif) Pour recevoir une notification d’un événement de mise à l’échelle, pour **Notification**, vous pouvez sélectionner ou créer la rubrique Amazon SNS que vous voulez utiliser pour recevoir des notifications. Sinon, vous pouvez supprimer la notification maintenant et en ajouter une plus tard si nécessaire.

1. Choisissez **Suivant**.

1. Sous **Add name and description** (Ajouter un nom et un description), entrez un nom et une description pour l’alarme et choisissez **Suivant**.

1. Sélectionnez **Créer une alerte**.

**Pour configurer une stratégie de mise à l’échelle pour votre parc d’instances Spot**

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

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

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

1. Choisissez l’onglet **Auto Scaling** en bas de l’écran. Si vous avez sélectionné le lien pour votre Spot Fleet, il n’y a pas d’onglet ; faites défiler la page vers le bas jusqu’à la section **Auto Scaling**.

1. Si la mise à l’échelle automatique n’est pas configurée, sélectionnez **Configurer**.

1. Utilisez le champ **Scale capacity between (Mettre à l’échelle la capacité entre)** pour définir les capacités minimale et maximale de votre parc. Avec les politiques de mise à l’échelle, votre flotte n’aura jamais une capacité inférieure ou supérieure aux limites fixées.

1. Pour **Politiques de mise à l’échelle**, **Type de politique**, choisissez **Politique de mise à échelles à étapes**.

1. À l’origine, la section **Politiques de mise à l’échelle** contient des politiques de mise à l’échelle nommées **ScaleUp** et **ScaleDown**. Vous pouvez compléter ces stratégies ou cliquer sur **Remove policy (Supprimer la stratégie)** pour les supprimer. Vous pouvez également choisir **Add policy (Ajouter une stratégie)**.

1. Pour définir une politique, procédez comme suit :

   1. Pour **Policy name** (Nom de la stratégie), attribuez un nom à cette stratégie.

   1. Pour **Policy Trigger**, sélectionnez une alarme existante ou choisissez **Create alarm** pour ouvrir la CloudWatch console Amazon et créer une alarme.

   1. Pour **Modifier la capacité**, définissez le nombre par lequel mettre à l’échelle ainsi que les limites inférieure et supérieure de l’ajustement par étapes. Vous pouvez ajouter ou supprimer un nombre spécifique d’instances ou un pourcentage de la taille de flotte existante, ou définir la flotte sur une taille exacte. 

      Par exemple, pour créer une stratégie d’échelonnement qui augmente la capacité de la flotte de 30 %, sélectionnez **Ajouter**, saisissez **30** dans la zone suivante, puis sélectionnez **Pourcentage**. Par défaut, la limite inférieure pour l’ajout d’une politique est le seuil de l’alarme et la limite supérieure est l’infini positif (\$1). Par défaut, la limite supérieure pour la suppression d’une politique est le seuil de l’alarme et la limite inférieure est l’infini négatif (-).

   1. (Facultatif) Pour ajouter une autre étape, cliquez sur **Ajouter une étape**.

   1. Pour le **Temps de stabilisation**, spécifiez une nouvelle valeur (en secondes) ou conservez la valeur par défaut.

1. Choisissez **Enregistrer**.

**Pour configurer des politiques de dimensionnement par étapes pour votre parc de spots à l'aide du AWS CLI**

1. Enregistrez la demande Spot Fleet en tant que cible évolutive à l'aide de la [register-scalable-target](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/register-scalable-target.html)commande.

1. Créez une politique de dimensionnement à l'aide de la [put-scaling-policy](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scaling-policy.html)commande.

1. Créez une alarme qui déclenche la politique de dimensionnement à l'aide de la [put-metric-alarm](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html)commande.

# Mise à l’échelle planifiée : adaptez votre flotte Spot selon un calendrier
<a name="spot-fleet-scheduled-scaling"></a>

La mise à l’échelle de votre flotte en fonction d’une planification vous permet de mettre à l’échelle l’application en réponse aux changements de demande. En créant des *actions planifiées*, vous pouvez demander à un parc d’instances Spot d’effectuer des activités de mise à l’échelle à des heures spécifiques. Lorsque vous créez une action planifiée, vous spécifiez le parc d’instances Spot existant, quand l’activité de mise à l’échelle doit avoir lieu, la capacité minimale et la capacité maximale. Les actions planifiées peuvent être configurées pour être mises à l’échelle une fois ou selon un calendrier récurrent. Si vous avez besoin de modifications, vous pouvez modifier ou supprimer des actions planifiées.

**Conditions préalables**
+ Les actions planifiées ne peuvent être créées que pour les flottes de spots existantes. Vous ne pouvez pas créer une action planifiée en même temps que vous créez un parc d’instances Spot.
+ La demande de parc d’instances Spot doit être de type `maintain`. La scalabilité automatique n’est pas prise en charge pour les demandes de type `request`.
+ Configurez le [Autorisations IAM requises pour la scalabilité automatique d’un parc d’instances Spot](spot-fleet-auto-scaling-IAM.md).
+ Prenez connaissance des [Considérations](spot-fleet-automatic-scaling.md#considerations-for-spot-fleet-automatic-scaling).

**Pour créer une action planifiée unique**

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

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

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

1. Sélectionnez l’onglet **Mise à l’échelle planifiée** en bas de l’écran. Si vous avez sélectionné le lien pour votre parc de spots, il n’y a pas d’onglet ; faites plutôt défiler la page vers le bas jusqu’à la section **Scheduled Scaling**.

1. Choisissez **Create Scheduled Action** (Créer une action planifiée).

1. Pour **Nom**, spécifiez un nouveau nom pour l’action planifiée.

1. Saisissez une valeur pour **Minimum capacity (Capacité minimum)**, **Maximum capacity (Capacité maximum)**, ou les deux.

1. Pour **Recurrence (Récurrence)**, choisissez **Once (Une fois)**.

1. (Facultatif) Choisissez la date et l’heure pour **Heure de début**, **Heure de fin**, ou les deux.

1. Choisissez **Créer**.

**Pour créer une action programmée récurrente**

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

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

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

1. Sélectionnez l’onglet **Mise à l’échelle planifiée** en bas de l’écran. Si vous avez sélectionné le lien pour votre parc de spots, il n’y a pas d’onglet ; faites plutôt défiler la page vers le bas jusqu’à la section **Scheduled Scaling**.

1. Pour **Nom**, spécifiez un nouveau nom pour l’action planifiée.

1. Saisissez une valeur pour **Minimum capacity (Capacité minimum)**, **Maximum capacity (Capacité maximum)**, ou les deux.

1. Pour **Recurrence** (Récurrence), choisissez un des calendriers prédéfinis (par exemple, **Every day** (Chaque jour)), ou choisissez **Custom** (Personnalisé) et saisissez une expression CRON. Pour plus d'informations sur les expressions cron prises en charge par le dimensionnement programmé, consultez la section [Expressions cron](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-scheduled-rule-pattern.html#eb-cron-expressions) dans le guide de * EventBridge l'utilisateur Amazon*.

1. (Facultatif) Choisissez la date et l’heure pour **Heure de début**, **Heure de fin**, ou les deux.

1. Choisissez **Submit**.

**Pour modifier une action planifiée**

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

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

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

1. Sélectionnez l’onglet **Mise à l’échelle planifiée** en bas de l’écran. Si vous avez sélectionné le lien pour votre parc de spots, il n’y a pas d’onglet ; faites plutôt défiler la page vers le bas jusqu’à la section **Scheduled Scaling**.

1. Sélectionnez l’action planifiée et choisissez **Actions**, **Modifier**.

1. Apportez les modifications nécessaires et choisissez **Soumettre**.

**Pour supprimer une action planifiée**

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

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

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

1. Sélectionnez l’onglet **Mise à l’échelle planifiée** en bas de l’écran. Si vous avez sélectionné le lien pour votre parc de spots, il n’y a pas d’onglet ; faites plutôt défiler la page vers le bas jusqu’à la section **Scheduled Scaling**.

1. Sélectionnez l’action planifiée et choisissez **Actions**, **Supprimer**.

1. Lorsque vous êtes invité à confirmer l’opération, choisissez **Supprimer**.

**Pour gérer le dimensionnement planifié à l'aide du AWS CLI**

Utilisez les commandes suivantes :
+ [put-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/put-scheduled-action.html)
+ [describe-scheduled-actions](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/describe-scheduled-actions.html)
+ [delete-scheduled-action](https://docs.aws.amazon.com/cli/latest/reference/application-autoscaling/delete-scheduled-action.html)

# Surveillez votre flotte EC2 ou votre parc d’instances Spot
<a name="fleet-monitor"></a>

Une surveillance efficace de votre flotte EC2 ou de votre parc d’instances Spot est essentielle afin de maintenir des performances optimales et d’assurer la fiabilité. Il existe différents outils pour vous aider à y parvenir, notamment Amazon CloudWatch et Amazon EventBridge, qui sont abordés dans cette rubrique.

Vous pouvez ainsi collecter et suivre les indicateurs, définir des alarmes et réagir automatiquement aux modifications de l'état de votre flotte. CloudWatch

Avec EventBridge, vous pouvez surveiller et répondre de manière programmatique aux événements émis par votre flotte. En définissant des règles dans EventBridge, vous pouvez automatiser les réponses à des événements spécifiques du parc, tels que la résiliation d'une instance ou les modifications de l'état du parc, améliorant ainsi votre efficacité opérationnelle.

**Topics**
+ [

# Surveillez votre flotte EC2 ou votre flotte Spot à l'aide de CloudWatch
](ec2-fleet-cloudwatch-metrics.md)
+ [

# Surveillez et répondez de manière programmatique aux événements émis par votre flotte EC2 ou votre flotte Spot à l'aide d'Amazon EventBridge
](monitor-ec2-fleet-using-eventbridge.md)

# Surveillez votre flotte EC2 ou votre flotte Spot à l'aide de CloudWatch
<a name="ec2-fleet-cloudwatch-metrics"></a>

Vous pouvez surveiller votre flotte EC2 ou votre flotte Spot à l'aide CloudWatch des métriques Amazon décrites dans cette section.

**Important**  
Pour garantir la précision des informations, nous vous recommandons d’activer la surveillance détaillée lorsque vous utilisez ces métriques. Pour de plus amples informations, veuillez consulter [Gérez la surveillance détaillée de vos instances EC2](manage-detailed-monitoring.md).

Pour plus d'informations sur l'utilisation CloudWatch, consultez[Surveillez vos instances à l'aide de CloudWatch](using-cloudwatch.md).

## Métriques de la flotte EC2 et du parc d’instances Spot
<a name="ec2-fleet-metrics"></a>

L'`AWS/EC2Spot`espace de noms inclut les métriques suivantes pour votre flotte, ainsi que les CloudWatch métriques pour les instances Spot de votre flotte. Pour de plus amples informations, veuillez consulter [Métriques des instances](viewing_metrics_with_cloudwatch.md#ec2-cloudwatch-metrics).


| Métrique | Description | 
| --- | --- | 
| AvailableInstancePoolsCount |  Les groupes de capacités Spot indiqués dans la demande de flotte. Unités : nombre  | 
| BidsSubmittedForCapacity |  La capacité pour laquelle Amazon EC2 a soumis des demandes de flotte. Unités : nombre  | 
| EligibleInstancePoolCount |  Les groupes de capacités Spot indiqués dans la demande de flotte où Amazon EC2 peut répondre aux demandes. Amazon EC2 ne répond pas aux demandes dans les groupes où le prix maximum que vous acceptez de payer pour les instances Spot est inférieur au prix Spot ou lorsque le prix Spot est supérieur au prix des instances à la demande. Unités : nombre  | 
| FulfilledCapacity |  Capacité exécutée par Amazon EC2. Unités : nombre  | 
| MaxPercentCapacityAllocation |  La valeur maximale de `PercentCapacityAllocation` pour tous les groupes de flottes indiqués dans la demande de flotte. Unités : pourcentage  | 
| PendingCapacity |  Différence entre `TargetCapacity` et `FulfilledCapacity`. Unités : nombre  | 
| PercentCapacityAllocation |  Capacité allouée pour le groupe de capacités Spot pour les dimensions spécifiées. Pour obtenir la valeur maximale enregistrée sur tous les groupes de capacités Spot, utilisez `MaxPercentCapacityAllocation`. Unités : pourcentage  | 
| TargetCapacity |  La capacité cible de la demande de flotte. Unités : nombre  | 
| TerminatingCapacity |  Capacité résiliée car la capacité allouée est supérieure à la capacité cible. Unités : nombre  | 

Si l’unité de mesure d’une métrique est `Count`, la statistique la plus utile est`Average`.

## Dimensions de la flotte EC2 et du parc d’instances Spot
<a name="ec2-fleet-dimensions"></a>

Pour filtrer les données relatives à votre flotte, utilisez les dimensions suivantes.


| Dimensions | Description | 
| --- | --- | 
| AvailabilityZone |  Filtrer les données par Zone de disponibilité.  | 
| FleetRequestId |  Filtrer les données par demande de flotte.  | 
| InstanceType |  Filtrer les données par type d’instance.  | 

## Consultez les CloudWatch statistiques de votre flotte EC2 ou de votre flotte Spot
<a name="view-ec2-fleet-metrics"></a>

Vous pouvez consulter les CloudWatch statistiques de votre flotte à l'aide de la CloudWatch console Amazon. Ces métriques s’affichent sous forme de graphiques de surveillance. Ces graphiques affichent des points de données si la flotte est active.

Les métriques sont d’abord regroupées par espace de noms, puis par les différentes combinaisons de dimensions au sein de chaque espace de noms. Par exemple, vous pouvez afficher toutes les métriques de flotte ou les groupes de métriques de flotte par ID de demande de flotte, type d’instance ou zone de disponibilité.

**Pour afficher les métriques de la flotte**

1. Ouvrez la CloudWatch console à l'adresse [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Dans le panneau de navigation, développez **Metrics** (Métriques), puis choisissez **All metrics** (Toutes les métriques).

1. Choisissez l’espace de noms **EC2 Spot**.
**Note**  
Si l’espace de noms **EC2 Spot** n’est pas affiché, c’est pour deux raisons. Vous n'avez jamais utilisé EC2 Fleet ou Spot Fleet dans la région. Seuls les AWS services que vous utilisez envoient des métriques à Amazon. CloudWatch De même, si vous avez utilisé la flotte EC2 ou le parc d’instances Spot dans la région, mais pas au cours des deux dernières semaines, l’espace de noms n’apparaît pas.

1. Pour filtrer les métriques par dimension, choisissez l’une des options suivantes :
   + **Mesures des demandes de la flotte** : regroupement par demande de la flotte
   + **Par zone de disponibilité** : regroupement par demande de flotte et par zone de disponibilité
   + **Par type d’instance** : regroupement par demande de flotte et par type d’instance
   + **Par Zone/Instance type de disponibilité** : groupez par demande de flotte, zone de disponibilité et type d'instance

1. Pour afficher les données d’un indicateur, cochez la case située à côté de la métrique.

# Surveillez et répondez de manière programmatique aux événements émis par votre flotte EC2 ou votre flotte Spot à l'aide d'Amazon EventBridge
<a name="monitor-ec2-fleet-using-eventbridge"></a>

Lorsque l’état d’une flotte EC2 ou d’un parc d’instances Spot est modifié, une notification est émise. La notification est mise à disposition sous la forme d'un événement envoyé à Amazon EventBridge (anciennement Amazon CloudWatch Events). Les événements sont générés dans la mesure du possible.

Vous pouvez utiliser Amazon EventBridge pour créer des règles qui déclenchent des actions programmatiques en réponse à un événement. Par exemple, vous pouvez créer deux EventBridge règles : l'une déclenchée lorsqu'un état de flotte change, et l'autre déclenchée lorsqu'une instance du parc est résiliée. Dans cet exemple, vous pouvez configurer la première règle de manière à ce que, si l’état de la flotte change, la règle invoque un sujet SNS, vous envoyant une notification par courrier électronique. Vous pouvez configurer la deuxième règle de sorte que, si une instance de la flotte est terminée, la règle invoque une fonction Lambda pour lancer une nouvelle instance.

**Note**  
Seuls les parcs de type `maintain` et `request` émettent des événements. Les parcs de type `instant` n’émettent pas d’événements car elles envoient des demandes uniques synchrones et l’état du parc est connu immédiatement dans la réponse. Pour utiliser Amazon EventBridge afin de surveiller les événements liés à la flotte, le type de demande doit être `maintain` ou`request`.

Pour obtenir des instructions sur la façon de décrire l’historique des événements d’une flotte, consultez[Décrire l’historique des événements de votre Flotte EC2](describe-ec2-fleet.md#describe-ec2-fleet-event-history).

**Topics**
+ [

## Créez des EventBridge règles Amazon pour surveiller les événements EC2 Fleet ou Spot Fleet
](#fleet_create-eventbridge-rules)
+ [

## Types d’événements de Flotte EC2
](#ec2-fleet-event-types)
+ [

## Types d’événements de parc d’instances Spot
](#spot-fleet-event-types)

## Créez des EventBridge règles Amazon pour surveiller les événements EC2 Fleet ou Spot Fleet
<a name="fleet_create-eventbridge-rules"></a>

Lorsqu'une notification de changement d'état est émise pour une flotte EC2 ou une flotte ponctuelle, elle est envoyée en tant qu'événement à Amazon EventBridge sous forme de fichier JSON. S'il EventBridge détecte un modèle d'événement correspondant à un modèle défini dans une règle, EventBridge invoque la cible (ou les cibles) spécifiée dans la règle.

Vous pouvez écrire EventBridge des règles pour automatiser les actions en fonction de modèles d'événements correspondants. 

Les champs suivants de l’événement forment le modèle d’événement défini dans la règle :

`"source": "aws.ec2fleet"`  
Identifie que l’événement provient de flotte EC2.

`"detail-type": "EC2 Fleet State Change"`  
Identifie le type d’événement.

`"detail": { "sub-type": "submitted" }`  
Identifie le sous-type d’événement.

Pour obtenir la liste des événements de la flotte EC2 et du parc d’instances Spot et des exemples de données d’événement, consultez [Types d’événements de Flotte EC2](#ec2-fleet-event-types) et [Types d’événements de parc d’instances Spot](#spot-fleet-event-types).

**Topics**
+ [

### Création d'une EventBridge règle pour envoyer une notification
](#eventbridge-send-notification)
+ [

### Création d'une EventBridge règle pour déclencher une fonction Lambda
](#eventbridge-trigger-lambda)

### Création d'une EventBridge règle pour envoyer une notification
<a name="eventbridge-send-notification"></a>

L'exemple suivant crée une EventBridge règle pour envoyer un e-mail, un SMS ou une notification push mobile chaque fois qu'Amazon EC2 émet une notification de modification de l'état de la flotte EC2. Le signal de cet exemple est émis en tant qu’événement de `EC2 Fleet State Change`, ce qui déclenche l’action définie par la règle.

**Prérequis**  
Avant de créer la EventBridge règle, vous devez créer la rubrique Amazon SNS pour l'e-mail, le message texte ou la notification push mobile.

**Pour créer une EventBridge règle permettant d'envoyer une notification lorsqu'un état de flotte EC2 change**

1. Ouvrez la EventBridge console Amazon à l'adresse [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. Choisissez **Créer une règle**.

1. Pour **Define rule detail** (Définir les détails de la règle), procédez comme suit :

   1. Entrez un **nom** et éventuellement une description pour la règle.

      Une règle ne peut pas avoir le même nom qu’une autre règle de la même région et sur le même bus d’événement.

   1. Pour **Event bus** (Bus d’événement), choisissez **default** (défaut). Lorsqu'un AWS service de votre compte génère un événement, celui-ci est toujours redirigé vers le bus d'événements par défaut de votre compte.

   1. Pour **Type de règle**, choisissez **Règle avec un modèle d’événement**.

   1. Choisissez **Suivant**.

1. Pour **Build event pattern** (Créer un modèle d’événement), procédez comme suit :

   1. Dans **Source de l'événement**, choisissez **AWS des événements ou des événements EventBridge partenaires**.

   1. Pour le **Event pattern** (Modèle d’événement), dans cet exemple, vous spécifierez le modèle d’événement suivant pour correspondre à l’événement `EC2 Fleet Instance Change`.

      ```
      {
       "source": ["aws.ec2fleet"],
       "detail-type": ["EC2 Fleet Instance Change"]
      }
      ```

      Pour ajouter le modèle d’événement, vous pouvez utiliser un modèle en choisissant **Event pattern form** (Formulaire de modèle d’événement), ou spécifiez votre propre modèle en choisissant **Custom pattern (JSON editor)** (Modèle personnalisé [éditeur JSON]), comme suit :

      1. Pour utiliser un modèle pour créer le modèle d’événement, procédez comme suit :

         1. Sélectionnez **Event pattern form** (Formulaire de modèle d’événement).

         1. Pour **Event source** (Origine de l’événement), choisissez **AWS services** (Services ).

         1. Pour **Service AWS **, choisissez **EC2 Fleet**.

         1. Pour **Event type** (Type d’événement), choisissez **EC2 Fleet Instance Change** (Modification de l’instance de flotte EC2).

         1. Pour personnaliser le modèle, choisissez **Edit pattern** (Modifier le modèle) et apportez vos modifications pour correspondre à l’exemple de modèle d’événement.

      1. (Alternative) Pour spécifier un modèle d’événement personnalisé, procédez comme suit :

         1. Choisissez **Custom pattern (JSON editor)** (Modèle personnalisé [éditeur JSON]).

         1. Dans la boîte de dialogue **Event pattern** (Modèle d’événement), ajoutez le modèle d’événement pour cet exemple.

   1. Choisissez **Suivant**.

1. Pour **Select target(s)** (Sélectionner la ou les cibles), procédez comme suit :

   1. Pour **Types de cibles**, choisissez **service AWS **.

   1. Pour **Select a target** (Sélectionner une cible), sélectionnez **SNS topic** (Rubrique SNS) pour envoyer un e-mail, un SMS ou une notification push mobile lorsque l’événement se produit.

   1. Pour **Topic** (Rubrique), sélectionnez une rubrique existante. Vous devez d’abord créer une rubrique Amazon SNS à l’aide de la console Amazon SNS. Pour plus d'informations, consultez la section [Utilisation d'Amazon SNS pour la messagerie application-to-person (A2P) dans le manuel](https://docs.aws.amazon.com//sns/latest/dg/sns-user-notifications.html) du développeur *Amazon Simple Notification Service*.

   1. (Facultatif) Sous **Additional settings** (Paramètres supplémentaires), vous pouvez configurer des paramètres supplémentaires. Pour plus d'informations, consultez la section [Création de EventBridge règles Amazon réagissant aux événements](https://docs.aws.amazon.com//eventbridge/latest/userguide/eb-create-rule.html) (étape 16) dans le *guide de EventBridge l'utilisateur Amazon*.

   1. Choisissez **Suivant**.

1. (Facultatif) Pour **Tags** (Identifications), vous pouvez également attribuer une ou plusieurs identifications à votre règle, puis choisir **Next** (Suivant).

1. Pour **Review and create** (Vérifier et créer), procédez comme suit :

   1. Consultez les détails de la règle et modifiez-les si nécessaire.

   1. Choisissez **Créer une règle**.

Pour plus d'informations, consultez les [ EventBridge règles Amazon et les](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html) [modèles d' EventBridge événements Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html) dans le *guide de EventBridge l'utilisateur Amazon*

### Création d'une EventBridge règle pour déclencher une fonction Lambda
<a name="eventbridge-trigger-lambda"></a>

L'exemple suivant crée une EventBridge règle pour déclencher une fonction Lambda chaque fois qu'Amazon EC2 émet une notification de modification d'instance EC2 Fleet lors du lancement d'une instance. Le signal de cet exemple est émis en tant qu’événement `EC2 Fleet Instance Change`, de sous-type `launched`, ce qui déclenche l’action définie par la règle.

Avant de créer la EventBridge règle, vous devez créer la fonction Lambda.

**Pour créer la fonction Lambda à utiliser dans la règle EventBridge**

1. Ouvrez la AWS Lambda console à l'adresse [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Sélectionnez **Créer une fonction**.

1. Saisissez un nom pour votre fonction, configurez le code, puis sélectionnez **Create function** (Créer une fonction).

   Pour plus d’informations, consultez la section [Création de votre première fonction Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html) dans le *Guide du développeur AWS Lambda *.

**Pour créer une EventBridge règle permettant de déclencher une fonction Lambda lorsqu'une instance d'un parc EC2 change d'état**

1. Ouvrez la EventBridge console Amazon à l'adresse [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. Choisissez **Créer une règle**.

1. Pour **Define rule detail** (Définir les détails de la règle), procédez comme suit :

   1. Entrez un **nom** et éventuellement une description pour la règle.

      Une règle ne peut pas avoir le même nom qu’une autre règle de la même région et sur le même bus d’événement.

   1. Pour **Event bus** (Bus d’événement), choisissez **default** (défaut). Lorsqu'un AWS service de votre compte génère un événement, celui-ci est toujours redirigé vers le bus d'événements par défaut de votre compte.

   1. Pour **Type de règle**, choisissez **Règle avec un modèle d’événement**.

   1. Choisissez **Suivant**.

1. Pour **Build event pattern** (Créer un modèle d’événement), procédez comme suit :

   1. Dans **Source de l'événement**, choisissez **AWS des événements ou des événements EventBridge partenaires**.

   1. Pour **Event pattern** (Modèle d’événement), pour cet exemple, vous allez spécifier le modèle d’événement suivant pour correspondre à l’événement `EC2 Fleet Instance Change` et au sous-type `launched`.

      ```
      {
       "source": ["aws.ec2fleet"],
       "detail-type": ["EC2 Fleet Instance Change"],
       "detail": {
         "sub-type": ["launched"]
      }
      ```

      Pour ajouter le modèle d’événement, vous pouvez utiliser un modèle en choisissant **Event pattern form** (Formulaire de modèle d’événement), ou spécifiez votre propre modèle en choisissant **Custom pattern (JSON editor)** (Modèle personnalisé [éditeur JSON]), comme suit :

      1. Pour utiliser un modèle pour créer le modèle d’événement, procédez comme suit :

         1. Sélectionnez **Event pattern form** (Formulaire de modèle d’événement).

         1. Pour **Event source** (Origine de l’événement), choisissez **AWS services** (Services ).

         1. Pour **Service AWS **, choisissez **EC2 Fleet**.

         1. Pour **Event type** (Type d’événement), choisissez **EC2 Fleet Instance Change** (Modification de l’instance de flotte EC2).

         1. Choisissez **Edit pattern** (Modifier le modèle), et ajoutez `"detail": {"sub-type": ["launched"]` pour correspondre à l’exemple de modèle d’événement. Pour un format JSON approprié, insérez une virgule (`,`) après le crochet carré précédent (`]`).

      1. (Alternative) Pour spécifier un modèle d’événement personnalisé, procédez comme suit :

         1. Choisissez **Custom pattern (JSON editor)** (Modèle personnalisé [éditeur JSON]).

         1. Dans la boîte de dialogue **Event pattern** (Modèle d’événement), ajoutez le modèle d’événement pour cet exemple.

   1. Choisissez **Suivant**.

1. Pour **Select target(s)** (Sélectionner la ou les cibles), procédez comme suit :

   1. Pour **Types de cibles**, choisissez **service AWS **.

   1. Pour **Select a target** (Sélectionner une cible), sélectionnez **SNS topic** (Rubrique SNS) pour envoyer un e-mail, un SMS ou une notification push mobile lorsque l’événement se produit.

   1. Pour **Topic** (Rubrique), sélectionnez **Lambda function** (Fonction Lambda) et, pour **Function** (Fonction), sélectionnez la fonction que vous avez créée pour répondre lorsque l’événement se produit.

   1. (Facultatif) Sous **Additional settings** (Paramètres supplémentaires), vous pouvez configurer des paramètres supplémentaires. Pour plus d'informations, consultez la section [Création de EventBridge règles Amazon réagissant aux événements](https://docs.aws.amazon.com//eventbridge/latest/userguide/eb-create-rule.html) (étape 16) dans le *guide de EventBridge l'utilisateur Amazon*.

   1. Choisissez **Suivant**.

1. (Facultatif) Pour **Tags** (Identifications), vous pouvez également attribuer une ou plusieurs identifications à votre règle, puis choisir **Next** (Suivant).

1. Pour **Review and create** (Vérifier et créer), procédez comme suit :

   1. Consultez les détails de la règle et modifiez-les si nécessaire.

   1. Choisissez **Créer une règle**.

*Pour un didacticiel sur la création d'une fonction Lambda et d'une EventBridge règle qui exécute la fonction Lambda, voir [Tutoriel : enregistrer l'état d'une instance Amazon EC2 à l'aide du manuel du développeur](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-log-ec2-instance-state.html). EventBridge AWS Lambda *

## Types d’événements de Flotte EC2
<a name="ec2-fleet-event-types"></a>

Il existe cinq types d’événements de Flotte EC2. Pour chaque type d’événement, il existe plusieurs sous-types.

**Topics**
+ [

### Modification de l’état du flotte EC2
](#ec2-fleet-state-change)
+ [

### Modification de la demande d’instance Spot de flotte EC2
](#ec2-fleet-spot-instance-request-change)
+ [

### Modification de l’instance de flotte EC2
](#ec2-fleet-instance-change)
+ [

### Informations sur la flotte EC2
](#ec2-fleet-info)
+ [

### Erreur de flotte EC2
](#ec2-fleet-config-not-valid)

### Modification de l’état du flotte EC2
<a name="ec2-fleet-state-change"></a>

EC2 Fleet envoie un `EC2 Fleet State Change` événement à Amazon EventBridge lorsqu'un parc EC2 change d'état.

Voici un exemple de données pour cet événement. 

```
{
    "version": "0",
    "id": "715ed6b3-b8fc-27fe-fad6-528c7b8bf8a2",
    "detail-type": "EC2 Fleet State Change",
    "source": "aws.ec2fleet",
    "account": "123456789012",
    "time": "2020-11-09T09:00:20Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-598fb973-87b7-422d-be4d-6b0809bfff0a"
    ],
    "detail": {
        "sub-type": "active"
    }
}
```

Les valeurs possibles pour `sub-type` sont :

`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.

`deleted`  
La demande de flotte EC2 est supprimée et n’a aucune instance en cours d’exécution. La flotte EC2 est supprimée deux jours après la résiliation de ses instances.

`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. 

`expired`  
La demande de flotte EC2 a expiré. Si la demande a été créée avec un ensemble `TerminateInstancesWithExpiration`, un événement `terminated` ultérieur indique que les instances sont résiliées.

`modify_in_progress`  
La demande de flotte EC2 est en cours de modification. La demande conserve cet état jusqu’à ce que la modification soit totalement traitée.

`modify_succeeded`  
La demande de flotte EC2 a été modifiée.

`submitted`  
La demande de flotte EC2 est en cours d’évaluation et Amazon EC2 se prépare à lancer le nombre cible d’instances. 

`progress`  
La demande de flotte EC2 est en cours d’exécution.

### Modification de la demande d’instance Spot de flotte EC2
<a name="ec2-fleet-spot-instance-request-change"></a>

EC2 Fleet envoie un `EC2 Fleet Spot Instance Request Change` événement à Amazon EventBridge lorsqu'une demande d'instance Spot change d'état dans le parc.

Voici un exemple de données pour cet événement. 

```
{
    "version": "0",
    "id": "19331f74-bf4b-a3dd-0f1b-ddb1422032b9",
    "detail-type": "EC2 Fleet Spot Instance Request Change",
    "source": "aws.ec2fleet",
    "account": "123456789012",
    "time": "2020-11-09T09:00:05Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-83fd4e48-552a-40ef-9532-82a3acca5f10"
    ],
    "detail": {
        "spot-instance-request-id": "sir-rmqske6h",
        "description": "SpotInstanceRequestId sir-rmqske6h, PreviousState: cancelled_running",
        "sub-type": "cancelled"
    }
}
```

Les valeurs possibles pour `sub-type` sont :

`active`  
La demande d’instance Spot a été exécutée et est associée à une instance Spot.

`cancelled`  
Vous avez annulé la demande d’instance Spot ou la demande d’instance Spot a expiré.

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

`submitted`  
La demande d’Instance Spot est soumise.

### Modification de l’instance de flotte EC2
<a name="ec2-fleet-instance-change"></a>

EC2 Fleet envoie un `EC2 Fleet Instance Change` événement à Amazon EventBridge lorsqu'une instance de la flotte change d'état.

Voici un exemple de données pour cet événement. 

```
{
    "version": "0",
    "id": "542ce428-c8f1-0608-c015-e8ed6522c5bc",
    "detail-type": "EC2 Fleet Instance Change",
    "source": "aws.ec2fleet",
    "account": "123456789012",
    "time": "2020-11-09T09:00:23Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-598fb973-87b7-422d-be4d-6b0809bfff0a"
    ],
    "detail": {
        "instance-id": "i-0c594155dd5ff1829",
        "description": "{\"instanceType\":\"c5.large\",\"image\":\"ami-6057e21a\",\"productDescription\":\"Linux/UNIX\",\"availabilityZone\":\"us-east-1d\"}",
        "sub-type": "launched"
    }
}
```

Les valeurs possibles pour `sub-type` sont :

`launched`  
Une nouvelle instance a été lancée.

`terminated`  
L’instance a été résiliée.

`termination_notified`  
Une notification de résiliation d’instance a été envoyée lorsqu’une instance Spot a été résiliée par Amazon EC2 pendant la réduction d’échelle, lorsque la capacité cible de la flotte a été modifiée à la baisse, par exemple, d’une capacité cible de 4 à une capacité cible de 3.

### Informations sur la flotte EC2
<a name="ec2-fleet-info"></a>

EC2 Fleet envoie un `EC2 Fleet Information` événement à Amazon EventBridge en cas d'erreur lors de l'expédition. L’événement d’information n’empêche pas la flotte de tenter d’atteindre sa capacité cible.

Voici un exemple de données pour cet événement. 

```
{
    "version": "0",
    "id": "76529817-d605-4571-7224-d36cc1b2c0c4",
    "detail-type": "EC2 Fleet Information",
    "source": "aws.ec2fleet",
    "account": "123456789012",
    "time": "2020-11-09T08:17:07Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-8becf5fe-bb9e-415d-8f54-3fa5a8628b91"
    ],
    "detail": {
        "description": "c4.xlarge, ami-0947d2ba12ee1ff75, Linux/UNIX, us-east-1a, Spot price in either SpotFleetRequestConfigData or SpotFleetLaunchSpecification or LaunchTemplate or LaunchTemplateOverrides is less than Spot market price $0.0619",
        "sub-type": "launchSpecUnusable"
    }
}
```

Les valeurs possibles pour `sub-type` sont :

`fleetProgressHalted`  
Le prix dans chaque spécification de lancement n’est pas valide car il est inférieur au prix Spot (toutes les spécifications de lancement ont produit des événements `launchSpecUnusable`). Une spécification de lancement peut devenir valide si le prix Spot change.

`launchSpecTemporarilyBlacklisted`  
La configuration n’est pas valide et plusieurs tentatives de lancement d’instances ont échoué. Pour en savoir plus, consultez la description de l’événement.

`launchSpecUnusable`  
Le prix d’une spécification de lancement n’est pas valide car il est inférieur au prix Spot.

`registerWithLoadBalancersFailed`  
Une tentative d’enregistrement des instances avec des équilibreurs de charge a échoué. Pour en savoir plus, consultez la description de l’événement.

### Erreur de flotte EC2
<a name="ec2-fleet-config-not-valid"></a>

EC2 Fleet envoie un `EC2 Fleet Error` événement à Amazon EventBridge en cas d'erreur lors de l'expédition. L’événement d’erreur empêche la flotte de tenter d’atteindre sa capacité cible.

Voici un exemple de données pour cet événement. 

```
{
    "version": "0",
    "id": "69849a22-6d0f-d4ce-602b-b47c1c98240e",
    "detail-type": "EC2 Fleet Error",
    "source": "aws.ec2fleet",
    "account": "123456789012",
    "time": "2020-10-07T01:44:24Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-9bb19bc6-60d3-4fd2-ae47-d33e68eafa08"
    ],
    "detail": {
        "description": "m3.large, ami-00068cd7555f543d5, Linux/UNIX: IPv6 is not supported for the instance type 'm3.large'. ",
        "sub-type": "spotFleetRequestConfigurationInvalid"
    }
}
```

Les valeurs possibles pour `sub-type` sont :

`iamFleetRoleInvalid`  
La flotte EC2 ne dispose pas des autorisations requises pour lancer ou résilier une instance.

`allLaunchSpecsTemporarilyBlacklisted`  
Aucune des configurations n’est valide et plusieurs tentatives de lancement d’instances ont échoué. Pour en savoir plus, consultez la description de l’événement.

`spotInstanceCountLimitExceeded`  
Vous avez atteint la limite du nombre d’instances Spot que vous pouvez lancer.

`spotFleetRequestConfigurationInvalid`  
La configuration n’est pas valide. Pour en savoir plus, consultez la description de l’événement.

## Types d’événements de parc d’instances Spot
<a name="spot-fleet-event-types"></a>

Il existe cinq types d’événements de parc d’instances Spot . Pour chaque type d’événement, il existe plusieurs sous-types.

**Topics**
+ [

### Changement d’état du parc d’instances Spot EC2
](#spot-fleet-state-change)
+ [

### Modification de la demande d’instance Spot de flotte EC2
](#spot-fleet-spot-instance-request-change)
+ [

### Modification de l’instance de parc d’instances Spot EC2
](#spot-fleet-instance-change)
+ [

### Informations sur le parc d’instances Spot EC2
](#spot-fleet-info)
+ [

### Erreur de parc d’instances Spot EC2
](#spot-fleet-config-not-valid)

### Changement d’état du parc d’instances Spot EC2
<a name="spot-fleet-state-change"></a>

Spot Fleet envoie un `EC2 Spot Fleet State Change` événement à Amazon EventBridge lorsqu'un Spot Fleet change d'état.

Voici un exemple de données pour cet événement. 

```
{
    "version": "0",
    "id": "d1af1091-6cc3-2e24-203a-3b870e455d5b",
    "detail-type": "EC2 Spot Fleet State Change",
    "source": "aws.ec2spotfleet",
    "account": "123456789012",
    "time": "2020-11-09T08:57:06Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-4b6d274d-0cea-4b2c-b3be-9dc627ad1f55"
    ],
    "detail": {
        "sub-type": "submitted"
    }
}
```

Les valeurs possibles pour `sub-type` sont :

`active`  
La demande de parc d’instances Spot a été validée et Amazon EC2 tente de conserver le nombre cible d’instances en cours d’exécution.

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

`cancelled_running`  
La demande de parc d’instances Spot est annulé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. 

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

`expired`  
La demande de parc d’instances Spot a expiré. Si la demande a été créée avec un ensemble `TerminateInstancesWithExpiration`, un événement `terminated` ultérieur indique que les instances sont résiliées.

`modify_in_progress`  
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.

`modify_succeeded`  
La demande de parc d’instances Spot a été modifiée.

`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. 

`progress`  
La demande de parc d’instances Spot est en cours d’exécution.

### Modification de la demande d’instance Spot de flotte EC2
<a name="spot-fleet-spot-instance-request-change"></a>

Spot Fleet envoie un `EC2 Spot Fleet Spot Instance Request Change` événement à Amazon EventBridge lorsqu'une demande d'instance Spot change d'état dans le parc.

Voici un exemple de données pour cet événement. 

```
{
    "version": "0",
    "id": "cd141ef0-14af-d670-a71d-fe46e9971bd2",
    "detail-type": "EC2 Spot Fleet Spot Instance Request Change",
    "source": "aws.ec2spotfleet",
    "account": "123456789012",
    "time": "2020-11-09T08:53:21Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-a98d2133-941a-47dc-8b03-0f94c6852ad1"
    ],
    "detail": {
        "spot-instance-request-id": "sir-a2w9gc5h",
        "description": "SpotInstanceRequestId sir-a2w9gc5h, PreviousState: cancelled_running",
        "sub-type": "cancelled"
    }
}
```

Les valeurs possibles pour `sub-type` sont :

`active`  
La demande d’instance Spot a été exécutée et est associée à une instance Spot.

`cancelled`  
Vous avez annulé la demande d’instance Spot ou la demande d’instance Spot a expiré.

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

`submitted`  
La demande d’Instance Spot est soumise.

### Modification de l’instance de parc d’instances Spot EC2
<a name="spot-fleet-instance-change"></a>

Spot Fleet envoie un `EC2 Spot Fleet Instance Change` événement à Amazon EventBridge lorsqu'une instance du parc change d'état.

Voici un exemple de données pour cet événement. 

```
{
    "version": "0",
    "id": "11591686-5bd7-bbaa-eb40-d46529c2710f",
    "detail-type": "EC2 Spot Fleet Instance Change",
    "source": "aws.ec2spotfleet",
    "account": "123456789012",
    "time": "2020-11-09T07:25:02Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-c8a764a4-bedc-4b62-af9c-0095e6e3ba61"
    ],
    "detail": {
        "instance-id": "i-08b90df1e09c30c9b",
        "description": "{\"instanceType\":\"r4.2xlarge\",\"image\":\"ami-032930428bf1abbff\",\"productDescription\":\"Linux/UNIX\",\"availabilityZone\":\"us-east-1a\"}",
        "sub-type": "launched"
    }
}
```

Les valeurs possibles pour `sub-type` sont :

`launched`  
Une nouvelle instance a été lancée.

`terminated`  
L’instance a été résiliée.

`termination_notified`  
Une notification de résiliation d’instance a été envoyée lorsqu’une instance Spot a été résiliée par Amazon EC2 pendant la réduction d’échelle, lorsque la capacité cible de la flotte a été modifiée à la baisse, par exemple, d’une capacité cible de 4 à une capacité cible de 3.

### Informations sur le parc d’instances Spot EC2
<a name="spot-fleet-info"></a>

Spot Fleet envoie un `EC2 Spot Fleet Information` événement à Amazon EventBridge en cas d'erreur lors de l'expédition. L’événement d’information n’empêche pas la flotte de tenter d’atteindre sa capacité cible.

Voici un exemple de données pour cet événement. 

```
{
    "version": "0",
    "id": "73a60f70-3409-a66c-635c-7f66c5f5b669",
    "detail-type": "EC2 Spot Fleet Information",
    "source": "aws.ec2spotfleet",
    "account": "123456789012",
    "time": "2020-11-08T20:56:12Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-2531ea06-af18-4647-8757-7d69c94971b1"
    ],
    "detail": {
        "description": "r3.8xlarge, ami-032930428bf1abbff, Linux/UNIX, us-east-1a, Spot bid price is less than Spot market price $0.5291",
        "sub-type": "launchSpecUnusable"
    }
}
```

Les valeurs possibles pour `sub-type` sont :

`fleetProgressHalted`  
Le prix dans chaque spécification de lancement n’est pas valide car il est inférieur au prix Spot (toutes les spécifications de lancement ont produit des événements `launchSpecUnusable`). Une spécification de lancement peut devenir valide si le prix Spot change.

`launchSpecTemporarilyBlacklisted`  
La configuration n’est pas valide et plusieurs tentatives de lancement d’instances ont échoué. Pour en savoir plus, consultez la description de l’événement.

`launchSpecUnusable`  
Le prix d’une spécification de lancement n’est pas valide car il est inférieur au prix Spot.

`registerWithLoadBalancersFailed`  
Une tentative d’enregistrement des instances avec des équilibreurs de charge a échoué. Pour en savoir plus, consultez la description de l’événement.

### Erreur de parc d’instances Spot EC2
<a name="spot-fleet-config-not-valid"></a>

Spot Fleet envoie un `EC2 Spot Fleet Error` événement à Amazon EventBridge en cas d'erreur lors de l'expédition. L’événement d’erreur empêche la flotte de tenter d’atteindre sa capacité cible.

Voici un exemple de données pour cet événement. 

```
{
    "version": "0",
    "id": "10adc4e7-675c-643e-125c-5bfa1b1ba5d2",
    "detail-type": "EC2 Spot Fleet Error",
    "source": "aws.ec2spotfleet",
    "account": "123456789012",
    "time": "2020-11-09T06:56:07Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:ec2:us-east-1:123456789012:spot-fleet-request/sfr-38725d30-25f1-4f30-83ce-2907c56dba17"
    ],
    "detail": {
        "description": "r4.2xlarge, ami-032930428bf1abbff, Linux/UNIX: The associatePublicIPAddress parameter can only be specified for the network interface with DeviceIndex 0. ",
        "sub-type": "spotFleetRequestConfigurationInvalid"
    }
}
```

Les valeurs possibles pour `sub-type` sont :

`iamFleetRoleInvalid`  
Le parc d’instances Spot ne dispose pas des autorisations requises pour lancer ou résilier une instance.

`allLaunchSpecsTemporarilyBlacklisted`  
Aucune des configurations n’est valide et plusieurs tentatives de lancement d’instances ont échoué. Pour en savoir plus, consultez la description de l’événement.

`spotInstanceCountLimitExceeded`  
Vous avez atteint la limite du nombre d’instances Spot que vous pouvez lancer.

`spotFleetRequestConfigurationInvalid`  
La configuration n’est pas valide. Pour en savoir plus, consultez la description de l’événement.

# Didacticiels relatifs à la flotte EC2
<a name="fleet-tutorials"></a>

Il existe différentes façons de configurer une flotte EC2. La configuration que vous choisissez dépend de votre cas d’utilisation spécifique.

Les didacticiels suivants présentent quelques-uns des cas d’utilisation possibles et fournissent les tâches nécessaires à leur mise en œuvre.


| Cas d’utilisation | Lien vers le didacticiel | 
| --- | --- | 
|  **Utilisez la pondération des instances pour gérer la disponibilité et les performances de votre flotte EC2.** Avec la pondération des instances, vous attribuez un poids à chaque type d’instance dans votre flotte EC2 afin de représenter leur capacité de calcul et leurs performances les unes par rapport aux autres. En fonction des pondérations, la flotte peut utiliser n’importe quelle combinaison des types d’instance indiqués, pour autant qu’elle puisse atteindre la capacité cible souhaitée.  | [Didacticiel : configurer la flotte EC2 pour qu’elle utilise la pondération des instances](ec2-fleet-instance-weighting-walkthrough.md) | 
|  **Utilisez la capacité à la demande pour garantir la disponibilité pendant les périodes de pointe, mais bénéficiez d’une capacité Spot supplémentaire à moindre coût.** Configurez votre flotte EC2 pour utiliser les instances à la demande comme capacité principale afin de garantir la disponibilité de la capacité pendant les périodes de pointe. En outre, allouez une partie de la capacité aux instances Spot pour bénéficier de prix réduits, tout en gardant à l’esprit que les instances Spot peuvent être interrompues si Amazon EC2 a besoin de la capacité en retour.  | [Didacticiel : configurer la flotte EC2 afin d’utiliser les instances à la demande comme capacité principale](ec2-fleet-on-demand-walkthrough.md) | 
|  **Utilisez les réserves de capacité afin de réserver de la capacité de calcul pour vos instances à la demande.** Configurez votre flotte EC2 pour qu’elle utilise d’abord les réserves de capacité `targeted` lors du lancement d’instances à la demande. Si vous avez des exigences strictes en matière de capacité et que vous exécutez des charges de travail stratéiques qui nécessitent un certain niveau de garantie de capacité à long ou à court terme, nous vous recommandons de créer une réserve de capacité afin de vous assurer d’avoir toujours accès à la capacité Amazon EC2 quand vous en avez besoin, aussi longtemps que vous en avez besoin.  | [Didacticiel : configurer la flotte EC2 pour lancer des instances à la demande en utilisant des réserves de capacité ciblées](ec2-fleet-launch-on-demand-instances-using-targeted-capacity-reservations-walkthrough.md) | 
|  **Utilisez les blocs de capacité afin de réserver des instances de GPU très recherchées pour vos charges de travail ML.** Configurez votre flotte EC2 pour lancer des instances dans des blocs de capacité.  | [Didacticiel : Configurer votre flotte EC2 pour lancer des instances dans des blocs de capacité](ec2-fleet-launch-instances-capacity-blocks-walkthrough.md) | 
|  **Utilisez les réservations de capacité interruptible pour réutiliser temporairement la capacité inutilisée au sein de votre AWS organisation et réduire les coûts.** Configurez votre parc EC2 pour lancer des instances dans des réservations de capacité interruptible, qui représentent la capacité inutilisée au sein de votre AWS organisation. Les propriétaires de capacité peuvent récupérer la capacité à tout moment. Une fois récupérées, EC2 met fin aux instances après un préavis de 2 minutes.  | [Tutoriel : configurez votre flotte EC2 pour lancer des instances dans des réservations de capacité interruptible](ec2-fleet-launch-instances-interruptible-cr-walkthrough.md) | 

# Didacticiel : configurer la flotte EC2 pour qu’elle utilise la pondération des instances
<a name="ec2-fleet-instance-weighting-walkthrough"></a>

Cette procédure utilise une société fictive nommée Example Corp pour illustrer le processus de demande d’une flotte EC2 utilisant la pondération des instances.

## Objectif
<a name="ec2-fleet-instance-weighting-walkthrough-objective"></a>

Example Corp est une entreprise pharmaceutique qui souhaite utiliser la puissance de calcul d’Amazon EC2 pour analyser les composants chimiques susceptibles d’être utilisés dans la lutte contre le cancer.

## Planification
<a name="ec2-fleet-instance-weighting-walkthrough-planning"></a>

Example Corp commence par examiner les [bonnes pratiques en matière d’instances Spot](https://aws.amazon.com/ec2/spot/getting-started/#bestpractices). Ensuite, Example Corp détermine les exigences suivantes pour son flotte EC2.

**Types d’instance**  
Example Corp a une application qui exige beaucoup de calculs et de mémoire. Pour un fonctionnement optimal, cette application a besoin d’au moins 60 Go de mémoire et de huit UC virtuelles (vCPU). L’entreprise souhaite optimiser ces ressources pour l’application au prix le plus bas possible. Example Corp décide que l’un des types d’instance EC2 suivants est capable de répondre à ses besoins :


| Type d’instance | Mémoire (Gio) | v CPUs | 
| --- | --- | --- | 
|  r3.2xlarge  |  61  |  8  | 
|  r3.4xlarge  |  122  |  16  | 
|  r3.8xlarge  |  244  |  32  | 

**Capacité cible en unités**  
Avec la pondération des instances, la capacité cible peut être égale à un nombre d'instances (valeur par défaut) ou à une combinaison de facteurs tels que les cœurs (vCPU), la mémoire GiBs () et le stockage (Go). En considérant que la base de son application (60 Go de RAM et huit vCPU) compte pour une unité, Example Corp décide que 20 fois cette quantité suffirait pour répondre à ses besoins. L’entreprise fixe donc la capacité cible de sa demande de flotte EC2 à 20 unités.

**Pondérations d’instance**  
Après avoir déterminé sa capacité cible, Example Corp calcule ses pondérations d’instance. Pour calculer la pondération de chaque type d’instance, l’entreprise détermine les unités de chaque type d’instance nécessaires pour atteindre la capacité cible de la façon suivante :
+ r3.2xlarge (61,0 Go, 8 vCPUs) = 1 unité de 20
+ r3.4xlarge (122,0 Go, 16 vCPUs) = 2 unités de 20
+ r3,8xlarge (244,0 Go, 32 vCPUs) = 4 unités de 20

Par conséquent, Example Corp assigne des pondérations d’instance de 1, 2 et 4 aux configurations de lancement respectives dans sa demande de flotte EC2.

**Prix par heure d’unité**  
Example Corp utilise le [prix à la Demande](https://aws.amazon.com/ec2/pricing/) par heure d’instance comme point de départ de son prix. Elle peut également utiliser les prix Spot récents ou une combinaison des deux. Pour calculer le prix par heure d’unité, elle divise le prix de départ basé sur l’heure d’instance par la pondération. Exemples :


| Type d’instance | Prix à la Demande | Pondération de l’instance | Prix par heure d’unité | 
| --- | --- | --- | --- | 
|  r3.2xLarge  |  0,7 USD  |  1  |  0,7 USD  | 
|  r3.4xLarge  |  1,4 USD  |  2  |  0,7 USD  | 
|  r3.8xLarge  |  2.8 USD  |  4  |  0,7 USD  | 

Example Corp peut utiliser un prix global par heure d’unité s’élevant à 0,7 USD et rester concurrentielle pour les trois types d’instance. Elle peut également utiliser un prix global par heure d’unité s’élevant à 0,7 USD et un prix spécifique par heure d’unité de 0,9 USD dans la spécification de lancement du type d’instance `r3.8xlarge`.

## Vérifier les autorisations
<a name="ec2-fleet-instance-weighting-walkthrough-permissions"></a>

Avant de créer une flotte EC2, la société Example Corp vérifie qu’elle dispose d’un rôle IAM avec les autorisations requises. Pour de plus amples informations, veuillez consulter [Conditions préalables requises flotte EC2](ec2-fleet-prerequisites.md).

## Créer un modèle de lancement
<a name="ec2-fleet-instance-weighting-create-launch-template"></a>

Ensuite, Example Corp crée un modèle de lancement. L’ID de modèle de lancement est utilisé à l’étape suivante. Pour de plus amples informations, veuillez consulter [Créer un modèle de lancement Amazon EC2](create-launch-template.md).

## Créer la flotte EC2
<a name="ec2-fleet-instance-weighting-walkthrough-request"></a>

Example Corp crée un fichier, `config.json`, avec la configuration suivante pour son Flotte EC2. Dans l’exemple suivant, remplacez les identificateurs de ressources par vos propres identificateurs de ressources.

```
{ 
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateId": "lt-07b3bc7625cdab851", 
                "Version": "1"
            }, 
            "Overrides": [
                {
                    "InstanceType": "r3.2xlarge", 
                    "SubnetId": "subnet-482e4972", 
                    "WeightedCapacity": 1
                },
                {
                    "InstanceType": "r3.4xlarge", 
                    "SubnetId": "subnet-482e4972", 
                    "WeightedCapacity": 2
                },
                {
                    "InstanceType": "r3.8xlarge", 
                    "MaxPrice": "0.90", 
                    "SubnetId": "subnet-482e4972", 
                    "WeightedCapacity": 4
                }
            ]
        }
    ], 
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20, 
        "DefaultTargetCapacityType": "spot"
    }
}
```

Example Corp crée le Flotte EC2 à l’aide de la commande [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) suivante.

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

Pour de plus amples informations, veuillez consulter [Créer une flotte EC2](create-ec2-fleet.md).

## Exécution
<a name="ec2-fleet-instance-weighting-walkthrough-fulfillment"></a>

La stratégie d’allocation détermine de quels groupes de capacités Spot sont issues vos instances Spot.

Avec la stratégie `lowest-price` (qui est la stratégie par défaut), les Instances Spot sont issues du groupe ayant le prix par unité le plus bas au moment de l’exécution. Pour fournir 20 unités de capacité, le Flotte EC2 lance 20 instances `r3.2xlarge` (20 divisé par 1), 10 instances `r3.4xlarge` (20 divisé par 2) ou 5 instances `r3.8xlarge` (20 divisé par 4).

Si Example Corp avait utilisé la stratégie `diversified`, les Instances Spot auraient été issues des trois groupes. Le Flotte EC2 aurait lancé 6 instances `r3.2xlarge` (soit 6 unités), 3 instances `r3.4xlarge` (soit 6 unités) et 2 instances `r3.8xlarge` (soit 8 unités), pour un total de 20 unités.

# Didacticiel : configurer la flotte EC2 afin d’utiliser les instances à la demande comme capacité principale
<a name="ec2-fleet-on-demand-walkthrough"></a>

Ce didacticiel utilise une société fictive nommée ABC Online pour illustrer le processus de demande d’une flotte EC2 avec la capacité à la demande comme capacité principale, et la capacité des instances spot si elle est disponible.

## Objectif
<a name="ec2-fleet-on-demand-walkthrough-objective"></a>

ABC Online, une société de livraison de restaurants, cherche à approvisionner la capacité d’Amazon EC2 à travers les types d’instances EC2 et les options d’achat afin d’atteindre l’échelle, la performance et le coût souhaités.

## Plan
<a name="ec2-fleet-on-demand-walkthrough-planning"></a>

ABC Online a besoin d’une capacité fixe pour faire face aux périodes de pointe, mais souhaite bénéficier d’une capacité supplémentaire à moindre coût. La société détermine les exigences suivantes concernant sa flotte EC2 :
+ Capacité d’instance à la demande : ABC Online nécessite 15 instances à la demande pour s’assurer de pouvoir prendre en charge le trafic dans les périodes de pic.
+ Capacité de l’instance Spot : pour améliorer les performances, mais à moindre coût, ABC Online prévoit d’approvisionner 5 instances Spot.

## Vérifier les autorisations
<a name="ec2-fleet-on-demand-walkthrough-permissions"></a>

Avant de créer une flotte EC2, la société ABC Online vérifie qu’elle dispose d’un rôle IAM avec les autorisations requises. Pour de plus amples informations, veuillez consulter [Conditions préalables requises flotte EC2](ec2-fleet-prerequisites.md).

## Créer un modèle de lancement
<a name="ec2-fleet-on-demand-walkthrough-create-launch-template"></a>

Ensuite, ABC Online crée un modèle de lancement. L’ID de modèle de lancement est utilisé à l’étape suivante. Pour de plus amples informations, veuillez consulter [Créer un modèle de lancement Amazon EC2](create-launch-template.md).

## Créer la flotte EC2
<a name="ec2-fleet-on-demand-walkthrough-request"></a>

ABC Online crée un fichier, `config.json`, avec la configuration suivante pour son Flotte EC2. Dans l’exemple suivant, remplacez les identificateurs de ressources par vos propres identificateurs de ressources.

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateId": "lt-07b3bc7625cdab851",
                "Version": "2"
            }

        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 20,
        "OnDemandTargetCapacity":15,
        "DefaultTargetCapacityType": "spot"
    }
}
```

ABC Online crée le Flotte EC2 à l’aide de la commande [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) suivante.

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

Pour de plus amples informations, veuillez consulter [Créer une flotte EC2](create-ec2-fleet.md).

## Exécution
<a name="ec2-fleet-on-demand-walkthrough-fulfillment"></a>

La stratégie d’allocation prévoit que la capacité à la demande est toujours remplie, tandis que le reste de la capacité cible est remplie selon la méthode Spot s’il y a de la capacité disponible.

# Didacticiel : configurer la flotte EC2 pour lancer des instances à la demande en utilisant des réserves de capacité ciblées
<a name="ec2-fleet-launch-on-demand-instances-using-targeted-capacity-reservations-walkthrough"></a>

Ce didacticiel vous guide à travers toutes les étapes que vous devez effectuer pour que votre flotte EC2 lance des instances à la demande dans les réservations de capacité `targeted`.

Vous verrez qu’il est possible de configurer une flotte EC2 pour qu’elle utilise d’abord la réservations de capacité `targeted` lors du lancement d’instances à la demande. Vous apprendrez également à configurer la flotte de sorte que, lorsque la capacité cible totale à la demande dépasse le nombre de réservations de capacité inutilisées disponibles, la flotte utilise la stratégie d’allocation spécifiée pour sélectionner les groupes d’instances dans lesquels lancer la capacité cible restante.

**Configuration de la flotte EC2**

Dans ce didacticiel, la flotte est configurée comme suit :
+ Capacité cible : 10 instances à la demande
+ Total de réservations de capacité `targeted` non utilisé : 6 (inférieur à la capacité cible à la demande de la flotte de 10 instances à la demande)
+ Nombre de groupes de réservations de capacité : 2 (`us-east-1a` et `us-east-1b`)
+ Nombre de réservations de capacité par groupe : 3
+ Stratégie d’allocation à la demande :`lowest-price`( Lorsque le nombre de réservations de capacité inutilisées est inférieur à la capacité cible à la demande, la flotte détermine les groupes dans lesquels lancer la capacité à la demande restante en fonction de la stratégie d’allocation à la demande.)

  Notez que vous pouvez également utiliser la stratégie d’allocation `prioritized` au lieu de la stratégie d’allocation `lowest-price`.

**Pour lancer des instances à la demande dans les réservations de capacité `targeted`, vous devez effectuer un certain nombre d’étapes, comme suit :**
+ [

## Étape 1 : Créer des réservations de capacité
](#ec2-fleet-odcr-step1)
+ [

## Étape 2 : Création d’un groupe de ressources de Réservation de capacité
](#ec2-fleet-odcr-step2)
+ [

## Étape 3 : Ajouter les réservations de capacité au groupe de ressources de Réservation de capacité
](#ec2-fleet-odcr-step3)
+ [

## (Facultatif) Étape 4 : Afficher les réservations de capacité dans le groupe de ressources
](#ec2-fleet-odcr-step4)
+ [

## Étape 5 : Créer un modèle de lancement qui spécifie que la réservation de capacité cible un groupe de ressources spécifique
](#ec2-fleet-odcr-step5)
+ [

## (Facultatif) Étape 6 : Décrire le modèle de lancement
](#ec2-fleet-odcr-step6)
+ [

## Étape 7 : Créer une flotte EC2
](#ec2-fleet-odcr-step7)
+ [

## (Facultatif) Étape 8 : Afficher le nombre de réservations de capacité non utilisées restantes
](#ec2-fleet-odcr-step8)

## Étape 1 : Créer des réservations de capacité
<a name="ec2-fleet-odcr-step1"></a>

Utilisez la [create-capacity-reservation](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-capacity-reservation.html)commande pour créer les réservations de capacité, trois pour `us-east-1a` et trois autres pour`us-east-1b`. À l’exception de la zone de disponibilité, les autres attributs des réservations de capacité sont identiques.

**3 Capacity Reservations in `us-east-1a`** (3 réservations de capacité sur ).

```
aws ec2 create-capacity-reservation \
    --availability-zone us-east-1a \
    --instance-type c5.xlarge \
    --instance-platform Linux/UNIX \
    --instance-count 3 \
    --instance-match-criteria targeted
```

Exemple d’ID de réservation de capacité en résultant

```
cr-1234567890abcdef1
```

**3 Capacity Reservations in `us-east-1b`** (3 réservations de capacité sur ).

```
aws ec2 create-capacity-reservation \
    --availability-zone us-east-1b \
    --instance-type c5.xlarge \
    --instance-platform Linux/UNIX \
    --instance-count 3 \
    --instance-match-criteria targeted
```

Exemple d’ID de réservation de capacité en résultant

```
cr-54321abcdef567890
```

## Étape 2 : Création d’un groupe de ressources de Réservation de capacité
<a name="ec2-fleet-odcr-step2"></a>

Utilisation de `resource-groups` et du service [create-group](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/create-group.html) (créer un groupe) pour créer un groupe de ressources de Réservation de capacité. Dans cet exemple, le groupe de ressources est nommé `my-cr-group`. Pour plus d’informations sur les raisons pour lesquelles vous devez créer un groupe de ressources, veuillez consulter [Utilisez les réserves de capacité pour réserver de la capacité à la demande dans la flotte EC2](ec2-fleet-on-demand-capacity-reservations.md).

```
aws resource-groups create-group \
    --name my-cr-group \
    --configuration '{"Type":"AWS::EC2::CapacityReservationPool"}' '{"Type":"AWS::ResourceGroups::Generic", "Parameters": [{"Name": "allowed-resource-types", "Values": ["AWS::EC2::CapacityReservation"]}]}'
```

## Étape 3 : Ajouter les réservations de capacité au groupe de ressources de Réservation de capacité
<a name="ec2-fleet-odcr-step3"></a>

Utilisation de `resource-groups` et du service [group-resources](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/group-resources.html) (groupement de ressources) pour ajouter les réservations de capacité créées à l’étape 1 au groupe de ressources de réservations de capacité. Notez que vous devez référencer les réservations de capacité à la demande par leur nomARNs.

```
aws resource-groups group-resources \
    --group my-cr-group \
    --resource-arns \
      arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1 \
      arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890
```

Exemple de sortie

```
{
   "Failed": [], 
   "Succeeded": [ 
   "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1", 
   "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890" 
   ] 
}
```

## (Facultatif) Étape 4 : Afficher les réservations de capacité dans le groupe de ressources
<a name="ec2-fleet-odcr-step4"></a>

Utilisez le `resource-groups` service et la [list-group-resources](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/list-group-resources.html)commande pour éventuellement décrire le groupe de ressources afin d'afficher ses réservations de capacité.

```
aws resource-groups list-group-resources --group my-cr-group
```

Exemple de sortie

```
{
    "ResourceIdentifiers": [
        {
            "ResourceType": "AWS::EC2::CapacityReservation",
            "ResourceArn": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1"
        },
        {
            "ResourceType": "AWS::EC2::CapacityReservation",
            "ResourceArn": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890"
        }
    ]
}
```

## Étape 5 : Créer un modèle de lancement qui spécifie que la réservation de capacité cible un groupe de ressources spécifique
<a name="ec2-fleet-odcr-step5"></a>

Utilisez la [create-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html)commande pour créer un modèle de lancement dans lequel spécifier les réservations de capacité à utiliser. Dans cet exemple, la flotte utilisera les réservations de capacité `targeted`, qui ont été ajoutées à un groupe de ressources. Par conséquent, les données du modèle de lancement spécifient que la réservation de capacité cible un groupe de ressources spécifique. Dans cet exemple, le modèle de lancement est nommé `my-launch-template`. 

```
aws ec2 create-launch-template \
    --launch-template-name my-launch-template \
    --launch-template-data \
        '{"ImageId": "ami-0123456789example",
          "CapacityReservationSpecification": 
            {"CapacityReservationTarget": 
                { "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-group" }
            }
        }'
```

## (Facultatif) Étape 6 : Décrire le modèle de lancement
<a name="ec2-fleet-odcr-step6"></a>

Utilisez la [describe-launch-template-versions](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-launch-template-versions.html)commande pour éventuellement décrire le modèle de lancement afin de visualiser sa configuration.

```
aws ec2 describe-launch-template-versions --launch-template-name my-launch-template
```

Exemple de sortie

```
{
    "LaunchTemplateVersions": [
        {
            "LaunchTemplateId": "lt-01234567890example",
            "LaunchTemplateName": "my-launch-template",
            "VersionNumber": 1,
            "CreateTime": "2021-01-19T20:50:19.000Z",
            "CreatedBy": "arn:aws:iam::123456789012:user/Admin",
            "DefaultVersion": true,
            "LaunchTemplateData": {
                "ImageId": "ami-0947d2ba12ee1ff75",
                "CapacityReservationSpecification": {
                    "CapacityReservationTarget": {
                        "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-group"
                    }
                }
            }
        }
    ]
}
```

## Étape 7 : Créer une flotte EC2
<a name="ec2-fleet-odcr-step7"></a>

Créez une flotte EC2 qui spécifie les informations de configuration pour les instances qu’il lancera. La configuration de flotte EC2 suivante affiche uniquement les configurations pertinentes pour cet exemple. Le modèle de lancement `my-launch-template` est le modèle de lancement que vous avez créé à l’étape 5. Il existe deux groupes d’instances, chacun ayant le même type d’instance (`c5.xlarge`), mais avec des zones de disponibilité différentes (`us-east-1a` et `us-east-1b`). Le prix des groupes d’instances est le même car la tarification est définie pour la Région et non pour la zone de disponibilité. La capacité cible totale est 10 et le type de capacité cible par défaut est `on-demand`. La stratégie d’allocation à la demande est `lowest-price`. La stratégie d’utilisation des réservations de capacité est `use-capacity-reservations-first`.

**Note**  
Le type de flotte doit être `instant`. Les autres types de flotte ne prennent pas en charge `use-capacity-reservations-first`.

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "1"
            },
            "Overrides": [
               {
                   "InstanceType": "c5.xlarge",
                   "AvailabilityZone": "us-east-1a"
               },
               {
                    "InstanceType": "c5.xlarge",
                    "AvailabilityZone": "us-east-1b"
               }
            ]
        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 10,
        "DefaultTargetCapacityType": "on-demand"
    },
    "OnDemandOptions": {
        "AllocationStrategy": "lowest-price",
        "CapacityReservationOptions": {
             "UsageStrategy": "use-capacity-reservations-first"
         }
    },
    "Type": "instant"
}
```

Après avoir créé la flotte `instant` à l’aide de la configuration précédente, les 10 instances suivantes sont lancées pour atteindre la capacité cible :
+ Les réservations de capacité sont utilisées en premier lieu pour lancer 6 instances à la demande comme suit :
  + 3 instances à la demande sont lancées dans les 3 réservations de capacité `c5.xlarge` `targeted` dans `us-east-1a`
  + 3 instances à la demande sont lancées dans les 3 réservations de capacité `c5.xlarge` `targeted` dans `us-east-1b`
+ Pour atteindre la capacité cible, 4 instances à la demande supplémentaires sont lancées dans la capacité à la demande régulière selon la stratégie d’allocation à la demande, qui est `lowest-price` dans cet exemple. Toutefois, étant donné que les groupes ont le même prix (car le prix est défini par Région et non par zone de disponibilité), la flotte lance les 4 instances à la demande restantes dans l’un ou l’autre des groupes.

## (Facultatif) Étape 8 : Afficher le nombre de réservations de capacité non utilisées restantes
<a name="ec2-fleet-odcr-step8"></a>

Une fois la flotte lancée, vous pouvez éventuellement courir [describe-capacity-reservations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservations.html)pour voir combien de réservations de capacité non utilisées restent. Dans cet exemple, vous devriez voir la réponse suivante, qui montre que tous les réservations de capacité de tous les groupes ont été utilisés.

```
{ "CapacityReservationId":  "cr-111",
     "InstanceType":  "c5.xlarge",  
     "AvailableInstanceCount":  0
}

 { "CapacityReservationId":  "cr-222",
     "InstanceType":  "c5.xlarge", 
     "AvailableInstanceCount":  0
}
```

# Didacticiel : Configurer votre flotte EC2 pour lancer des instances dans des blocs de capacité
<a name="ec2-fleet-launch-instances-capacity-blocks-walkthrough"></a>

Ce didacticiel vous guide à travers les étapes que vous devez effectuer pour que votre flotte d’EC2 lance des instances à la demande dans des blocs de capacité. 

Dans la plupart des cas, la capacité cible de la demande de flotte EC2 doit être inférieure ou égale à la capacité disponible de la réserve de blocs de capacité que vous ciblez. Les demandes de capacité cible qui dépassent les limites de la réservation du bloc de capacité ne seront pas satisfaites. Si la demande de capacité cible dépasse les limites de votre réserve de blocs de capacité, vous recevrez une `Insufficient Capacity Exception` pour la capacité qui dépasse les limites de votre réserve de blocs de capacité.

**Note**  
Pour les blocs de capacité, les flottes d’EC2 ne se contenteront pas de lancer des instances à la demande pour le reste de la capacité cible souhaitée.

Si les flottes d’EC2 ne sont pas en mesure d’atteindre la capacité cible demandée dans une réservation de bloc de capacité disponible, les flottes d’EC2 atteindront la capacité maximale et renverront les instances qu’elles ont pu lancer. Vous pouvez répéter l’appel aux flottes d’EC2 jusqu’à ce que toutes les instances soient mises en service.

Après avoir configuré la demande de flottes d’EC2, vous devez attendre la date de début de votre réservation de bloc de capacité. Si vous demandez à la flotte EC2 de se lancer dans un bloc de capacité qui n’a pas encore démarré, vous recevrez une `Insufficient Capacity Error`.

Une fois que votre réservation de bloc de capacité est active, vous pouvez appeler l’API de flotte d’EC2 et mettre en service les instances dans votre bloc de capacité en fonction des paramètres que vous avez sélectionnés. Les instances exécutées dans le bloc de capacité continuent de fonctionner jusqu’à ce que vous les arrêtiez manuellement ou jusqu’à ce qu’Amazon EC2 mette fin aux instances à la fin de la réserve du bloc de capacité.

Pour plus d’informations sur les blocs de capacité, consultez [Blocs de capacité pour ML](ec2-capacity-blocks.md).

**Considérations**
+ Seules les demandes de la flotte EC2 de type `instant` sont prises en charge pour le lancement d’instances dans des blocs de capacité. Pour de plus amples informations, veuillez consulter [Configurer une flotte EC2 de type instant](instant-fleet.md).
+ Les blocs de capacité multiples dans la même demande de flotte EC2 ne sont pas pris en charge.
+ L’utilisation de `OnDemandTargetCapacity` ou `SpotTargetCapacity` lors de la configuration de `capacity-block` en tant que `DefaultTargetCapacity` n’est pas prise en charge.
+ Si `DefaultTargetCapacityType` est défini sur `capacity-block`, vous ne pouvez pas mettre en service `OnDemandOptions::CapacityReservationOptions`. Une exception se produit.

**Pour configurer une flotte EC2 afin de lancer des instances dans des blocs de capacité**

1. **Créer un modèle de lancement.**

   Dans le modèle de lancement, procédez comme suit :
   + Pour `InstanceMarketOptionsRequest`, réglez `MarketType` sur `capacity-block`.
   + Pour cibler la réserve du bloc de capacité, pour `CapacityReservationID`, indiquez l’ID de la réserve du bloc de capacité.

   Notez le nom et la version du modèle de lancement. Vous utiliserez ces informations à l’étape suivante.

   Pour plus d’informations sur la création d’un modèle de lancement, consultez [Créer un modèle de lancement Amazon EC2](create-launch-template.md). 

1. **Configurer la flotte EC2.**

   Créez un fichier, `config.json`, avec la configuration suivante pour votre flotte EC2. Dans l’exemple suivant, remplacez les identificateurs de ressources par vos propres identificateurs de ressources. 

   Pour plus d’informations sur la configuration d’une flotte EC2, consultez [Créer une flotte EC2](create-ec2-fleet.md).

   ```
   { 
       "LaunchTemplateConfigs": [
           {
               "LaunchTemplateSpecification": {
                   "LaunchTemplateName": "CBR-launch-template", 
                   "Version": "1"
               }, 
               "Overrides": [
                   {
                       "InstanceType": "p5.48xlarge", 
                       "AvailabilityZone": "us-east-1a"   
                   },
               ]
           }
       ], 
       "TargetCapacitySpecification": {
           "TotalTargetCapacity": 10, 
           "DefaultTargetCapacityType": "capacity-block"
       },
       "Type": "instant"
   }
   ```

1. **Lancez la flotte.**

   Utilisez la commande [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) suivante.

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

   Pour de plus amples informations, veuillez consulter [Créer une flotte EC2](create-ec2-fleet.md#create-ec2-fleet-procedure).

# Tutoriel : configurez votre flotte EC2 pour lancer des instances dans des réservations de capacité interruptible
<a name="ec2-fleet-launch-instances-interruptible-cr-walkthrough"></a>

Ce didacticiel vous explique les étapes à suivre pour que votre flotte EC2 lance des instances dans des réservations de capacité interruptible.

Les réservations de capacité interruptible représentent la capacité inutilisée qui vous est prêtée par les propriétaires de réservations de capacité à la demande au sein de votre AWS organisation. Ces réservations sont adaptées aux charges de travail interruptibles, car le propriétaire de la capacité peut récupérer la capacité à tout moment moyennant un préavis d'interruption de 2 minutes, après quoi EC2 met fin aux instances. Pour plus d'informations sur les réservations de capacité interruptible, consultez[Réservations de capacité interruptibles](interruptible-capacity-reservations.md).

La capacité cible de la demande de flotte EC2 doit être inférieure ou égale à la capacité disponible de la réservation de capacité interruptible que vous ciblez. Si la demande de capacité cible dépasse la capacité disponible de votre réservation de capacité interruptible, EC2 Fleet lance autant d'instances que possible et indique les instances lancées dans la réponse de l'API.

Les instances exécutées dans le cadre d'une réservation de capacité interruptible continuent de fonctionner jusqu'à ce que vous les arrêtiez ou les résiliiez manuellement, ou jusqu'à ce que le propriétaire de la capacité récupère la capacité. Lorsque le propriétaire de la capacité récupère la capacité, Amazon EC2 envoie une notification EventBridge Amazon 2 minutes avant de mettre fin aux instances.

## Considérations
<a name="ec2-fleet-interruptible-cr-considerations"></a>
+ Seules les demandes de type EC2 Fleet `instant` sont prises en charge pour le lancement d'instances dans le cadre de réservations de capacité interruptible.
+ L'utilisation `OnDemandTargetCapacity` ou `SpotTargetCapacity` le réglage `reserved-capacity` n'`DefaultTargetCapacityType`est pas pris en charge.
+ Lorsque vous spécifiez plusieurs modèles de lancement, chacun ciblant une réservation de capacité interruptible différente, EC2 Fleet fournit des instances pour toutes les réservations correspondantes.
+ Pour les réservations de capacité interruptible, EC2 Fleet ne se contente pas de lancer des instances à la demande ou des instances ponctuelles pour le reste de la capacité cible souhaitée.

## Vérifier les autorisations
<a name="ec2-fleet-interruptible-cr-verify-permissions"></a>

Avant de créer une flotte EC2, vérifiez que vous disposez d'un rôle IAM avec les autorisations requises. Pour de plus amples informations, veuillez consulter [Conditions préalables requises flotte EC2](ec2-fleet-prerequisites.md).

Pour lancer des instances dans le cadre d'une réservation de capacité interruptible, vous devez suivre les étapes suivantes :

## Étape 1 : créer un modèle de lancement
<a name="ec2-fleet-interruptible-cr-step1"></a>

Utilisez la [create-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html)commande pour créer un modèle de lancement qui spécifie la réservation de capacité interruptible à cibler. Dans le modèle de lancement, définissez `MarketType` `interruptible-capacity-reservation` et spécifiez votre réservation `CapacityReservationId` de capacité interruptible.

Exemple de configuration du modèle de lancement :

```
{
    "LaunchTemplateName": "interruptible-cr-launch-template",
    "LaunchTemplateData": {
        "InstanceType": "m5.large",
        "ImageId": "ami-0abcdef1234567890",
        "CapacityReservationSpecification": {
            "CapacityReservationTarget": {
                "CapacityReservationId": "cr-0123456789abcdef0"
            }
        },
        "InstanceMarketOptions": {
            "MarketType": "interruptible-capacity-reservation"
        }
    }
}
```

Exemple de sortie

```
{
    "LaunchTemplate": {
        "LaunchTemplateId": "lt-0123456789example",
        "LaunchTemplateName": "interruptible-cr-launch-template",
        "CreateTime": "2026-03-12T10:00:00.000Z",
        "CreatedBy": "arn:aws:iam::123456789012:user/Admin",
        "DefaultVersionNumber": 1,
        "LatestVersionNumber": 1
    }
}
```

Pour de plus amples informations, veuillez consulter [Créer un modèle de lancement Amazon EC2](create-launch-template.md).

## Étape 2 : Configuration de la flotte EC2
<a name="ec2-fleet-interruptible-cr-step2"></a>

Créez un fichier de configuration pour le parc EC2 qui spécifie le modèle de lancement et la capacité cible. La configuration suivante utilise le modèle de lancement `interruptible-cr-launch-template` que vous avez créé à l'étape 1.

Vous devez spécifier `ReservedCapacityOptions` avec `ReservationType` set to `interruptible-capacity-reservation` lorsque vous utilisez `reserved-capacity` comme`DefaultTargetCapacityType`.

Créez un fichier nommé `config.json` avec le contenu suivant:

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "interruptible-cr-launch-template",
                "Version": "1"
            },
            "Overrides": [
                {
                    "InstanceType": "m5.large",
                    "AvailabilityZone": "us-east-1a"
                }
            ]
        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 10,
        "DefaultTargetCapacityType": "reserved-capacity"
    },
    "ReservedCapacityOptions": {
        "ReservationType": ["interruptible-capacity-reservation"]
    },
    "Type": "instant"
}
```

Principaux paramètres de configuration :


| Paramètre | Description | 
| --- | --- | 
| DefaultTargetCapacityType | Définissez sur reserved-capacity pour indiquer que les instances doivent être lancées dans la capacité réservée. | 
| ReservedCapacityOptions | Spécifie le type de capacité réservée. Pour les réservations de capacité interruptible, réglez surReservationType. ["interruptible-capacity-reservation"] | 
| Type | Doit avoir la valeur instant. Seules les flottes instantanées sont prises en charge pour les réservations de capacité interruptible. | 

## Étape 3 : Lancer la flotte et consulter les résultats
<a name="ec2-fleet-interruptible-cr-step3"></a>

Utilisez la commande [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) pour créer la flotte :

```
aws ec2 create-fleet \
    --cli-input-json file://config.json
```

Après avoir créé le `instant` parc à l'aide de la configuration précédente, EC2 Fleet lance 10 instances dans la réservation de capacité interruptible pour atteindre la capacité cible.

**Note**  
Si le parc ne peut pas atteindre la capacité cible totale, la réponse inclut les instances qui ont été lancées et toute erreur liée à une capacité non atteinte.

Exemple de sortie

```
{
    "FleetId": "fleet-12345678-1234-1234-1234-123456789012",
    "Instances": [
        {
            "LaunchTemplateAndOverrides": {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateId": "lt-0123456789example",
                    "Version": "1"
                },
                "Overrides": {
                    "InstanceType": "m5.large",
                    "AvailabilityZone": "us-east-1a"
                }
            },
            "Lifecycle": "interruptible-capacity-reservation",
            "InstanceIds": [
                "i-0123456789example1",
                "i-0123456789example2",
                "i-0123456789example3",
                "i-0123456789example4",
                "i-0123456789example5",
                "i-0123456789example6",
                "i-0123456789example7",
                "i-0123456789example8",
                "i-0123456789example9",
                "i-0123456789example0"
            ],
            "InstanceType": "m5.large",
            "Platform": "Linux/UNIX"
        }
    ],
    "Errors": []
}
```

Pour de plus amples informations, veuillez consulter [Créer une flotte EC2](create-ec2-fleet.md).

## Nettoyage
<a name="ec2-fleet-interruptible-cr-cleanup"></a>

Pour arrêter d'encourir des frais, mettez fin aux instances lorsqu'elles ne sont plus nécessaires. Notez qu'EC2 met également fin automatiquement aux instances lancées dans le cadre d'une réservation de capacité interruptible lorsque le propriétaire de la capacité récupère la capacité.

## Ressources connexes
<a name="ec2-fleet-interruptible-cr-related-resources"></a>
+ [Réservations de capacité interruptibles](interruptible-capacity-reservations.md)
+ [Réserver de la capacité de calcul à l’aide de EC2 On-Demand Capacity Reservations (Réserves de capacité à la demande EC2)](ec2-capacity-reservations.md)
+ [Travailler avec la flotte EC2](manage-ec2-fleet.md)
+ [Créer une flotte EC2](create-ec2-fleet.md)
+ [Stocker les paramètres de lancement des instances dans les modèles de lancement Amazon EC2](ec2-launch-templates.md)

# Exemple de configurations CLI pour la flotte EC2
<a name="ec2-fleet-examples"></a>

Vous pouvez définir la configuration de votre flotte EC2 dans un fichier JSON, puis référencer ce fichier à l’aide de la commande [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html) pour créer votre flotte, comme suit :

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

Les exemples suivants illustrent les configurations de lancement pour différents cas d’utilisation d’EC2 Fleet. Pour plus d’informations sur les paramètres de configuration, consultez la section [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-fleet.html).

**Topics**
+ [

## Exemple 1 : Lancer instances Spot en tant qu’option d’achat par défaut
](#ec2-fleet-config1)
+ [

## Exemple 2 : Lancer instances à la demande en tant qu’option d’achat par défaut
](#ec2-fleet-config2)
+ [

## Exemple 3 : Lancer instances à la demande en tant que capacité principale
](#ec2-fleet-config3)
+ [

## Exemple 4 : lancez des instances à la demande en utilisant diverses réserves de capacité
](#ec2-fleet-config5)
+ [

## Exemple 5 : Lancer des instances à la demande en utilisant des réserves de capacité lorsque la capacité cible totale est supérieure au nombre de réserves de capacité inutilisés
](#ec2-fleet-config6)
+ [

## Exemple 6 : lancez des instances à la demande en utilisant les réserves de capacité ciblées
](#ec2-fleet-config7)
+ [

## Exemple 7 : Configurer le rééquilibrage de capacité pour lancer les instances Spot de remplacement
](#ec2-fleet-config8)
+ [

## Exemple 8 : lancer des instances Spot dans une flotte optimisée pour la capacité
](#ec2-fleet-config9)
+ [

## Exemple 9 : lancer des instances Spot dans une flotte optimisée pour la capacité avec des priorités
](#ec2-fleet-config10)
+ [

## Exemple 10 : Lancer des instances ponctuelles dans une price-capacity-optimized flotte
](#ec2-fleet-config11)
+ [

## Exemple 11 : configurer la sélection de type d’instance basée sur des attributs
](#ec2-fleet-config12)

Pour plus d’exemples de CLI pour des flottes de types`instant`, consultez[Configurer une flotte EC2 de type instant](instant-fleet.md).

## Exemple 1 : Lancer instances Spot en tant qu’option d’achat par défaut
<a name="ec2-fleet-config1"></a>

L’exemple suivant spécifie les paramètres minimum requis dans une flotte EC2 : un modèle de lancement, une capacité cible et une option d’achat par défaut. Le modèle de lancement est identifié par son ID de modèle de lancement et son numéro de version. La capacité cible du parc d’instances est de 2 instances et l’option d’achat par défaut est `spot`, ce qui entraîne le lancement par le parc d’instances de 2 Instances Spot.

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateId": "lt-0e8c754449b27161c",
                "Version": "1"
            }

        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 2,
        "DefaultTargetCapacityType": "spot"
    }
}
```

## Exemple 2 : Lancer instances à la demande en tant qu’option d’achat par défaut
<a name="ec2-fleet-config2"></a>

L’exemple suivant spécifie les paramètres minimum requis dans une flotte EC2 : un modèle de lancement, une capacité cible et une option d’achat par défaut. Le modèle de lancement est identifié par son ID de modèle de lancement et son numéro de version. La capacité cible du parc d’instances est de 2 instances et l’option d’achat par défaut est `on-demand`, ce qui entraîne le lancement par le parc d’instances de 2 Instances à la demande.

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateId": "lt-0e8c754449b27161c",
                "Version": "1"
            }

        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 2,
        "DefaultTargetCapacityType": "on-demand"
    }
}
```

## Exemple 3 : Lancer instances à la demande en tant que capacité principale
<a name="ec2-fleet-config3"></a>

L’exemple suivant spécifie la capacité cible totale de 2 instances pour la flotte d’instances et une capacité cible de 1 instance à la demande. L’option d’achat par défaut est `spot`. Le flotte d’instances lance 1 instance à la demande comme spécifié, mais a besoin de lancer une instance supplémentaire pour assurer la capacité cible totale. L’option d’achat pour la différence est calculée comme `TotalTargetCapacity` - `OnDemandTargetCapacity` = `DefaultTargetCapacityType`, ce qui entraîne le lancement d’1 instance Spot par la flotte.

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateId": "lt-0e8c754449b27161c",
                "Version": "1"
            }

        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 2,
        "OnDemandTargetCapacity": 1,
        "DefaultTargetCapacityType": "spot"
    }
}
```

## Exemple 4 : lancez des instances à la demande en utilisant diverses réserves de capacité
<a name="ec2-fleet-config5"></a>

Vous pouvez configurer une flotte pour qu’elle utilise d’abord Réservations de capacité à la demande lors du lancement d’Instances à la demande en définissant la stratégie d’utilisation des réservations de capacité sur `use-capacity-reservations-first`. Cet exemple montre comment la flotte sélectionne les réservations de capacité à utiliser lorsqu’il y a plus de réservations de capacité que nécessaire pour atteindre la capacité cible.

Dans cet exemple, la configuration de la flotte est la suivante :
+ Capacité cible : 12 instances à la demande
+ Total de réservations de capacité non utilisé : 15 (supérieur à la capacité cible à la demande de la flotte de 12 instances à la demande)
+ Nombre de groupes de réservations de capacité : 3 (`m5.large`, `m4.xlarge`, et `m4.2xlarge`)
+ Nombre de réservations de capacité par groupe : 5
+ Stratégie d’allocation à la demande : `lowest-price` (Lorsqu’il y a plusieurs réservations de capacité inutilisées dans plusieurs groupes d’instances, la flotte détermine les groupes dans lesquels lancer les instances à la demande en fonction de la stratégie d’allocation à la demande.)

  Notez que vous pouvez également utiliser la stratégie d’allocation `prioritized` au lieu de la stratégie d’allocation `lowest-price`.

**Réserve de capacité**

Le compte a les 15 réservations de capacité suivants inutilisés dans 3 groupes différents. Le nombre de Réservations de capacité dans chaque pool est indiqué par `AvailableInstanceCount`.

```
{
    "CapacityReservationId": "cr-111", 
    "InstanceType": "m5.large", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1a", 
    "AvailableInstanceCount": 5, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}

{
    "CapacityReservationId": "cr-222", 
    "InstanceType": "m4.xlarge", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1a", 
    "AvailableInstanceCount": 5, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}

{
    "CapacityReservationId": "cr-333", 
    "InstanceType": "m4.2xlarge", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1a", 
    "AvailableInstanceCount":5, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}
```

**Fleet configuration** (Configuration de la flotte)

La configuration de flotte suivante affiche uniquement les configurations pertinentes pour cet exemple. La capacité totale cible est 12 et le type de capacité cible par défaut est `on-demand`. La stratégie d’allocation à la demande est `lowest-price`. La stratégie d’utilisation des réservations de capacité est `use-capacity-reservations-first`. 

Dans cet exemple, le prix des instance à la demande est :
+ `m5.large` – 0,096 dollars par heure
+ `m4.xlarge` – 0,20 dollars par heure
+ `m4.2xlarge` – 0,40 dollars par heure

**Note**  
Le type de flotte doit être `instant`. Les autres types de flotte ne prennent pas en charge `use-capacity-reservations-first`.

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateId": "lt-abc1234567example",
                "Version": "1"
            },
            "Overrides": [
                {
                  "InstanceType": "m5.large",
                  "AvailabilityZone": "us-east-1a",
                  "WeightedCapacity": 1
                },
                {
                  "InstanceType": "m4.xlarge",
                  "AvailabilityZone": "us-east-1a",
                  "WeightedCapacity": 1
                },
                {
                  "InstanceType": "m4.2xlarge",
                  "AvailabilityZone": "us-east-1a",
                  "WeightedCapacity": 1
                }
              ]

        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 12,
        "DefaultTargetCapacityType": "on-demand"
    },
    "OnDemandOptions": {
        "AllocationStrategy": "lowest-price",
        "CapacityReservationOptions": {
            "UsageStrategy": "use-capacity-reservations-first"
        }
    },
    "Type": "instant"
}
```

Après avoir créé la flotte `instant` à l’aide de la configuration précédente, les 12 instances suivantes sont lancées pour atteindre la capacité cible :
+ 5 instances à la demande `m5.large` dans `us-east-1a` – `m5.large` dans `us-east-1a` est le prix le plus bas, et il y a 5 réservations de capacité `m5.large` disponibles inutilisés 
+ 5 instances à la demande `m4.xlarge` dans us-east-1a – `m4.xlarge` dans `us-east-1a` est le prix suivant le plus bas, et il y a 5 réservations de capacité `m4.xlarge` disponibles inutilisés 
+ 2 instances à la demande `m4.2xlarge` dans us-est-1a – `m4.2xlarge` dans `us-east-1a` est le troisième prix le plus bas, et il y a 5 réservations de capacité `m4.2xlarge` disponibles inutilisés dont seulement 2 sont nécessaires pour atteindre la capacité cible

Une fois la flotte lancée, vous pouvez courir [describe-capacity-reservations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservations.html)pour voir combien de réservations de capacité inutilisées restent. Dans cet exemple, vous devriez voir la réponse suivante, qui montre que tous les réservations de capacité `m5.large` et `m4.xlarge` ont été utilisés, avec 3 réservations de capacité `m4.2xlarge` restants inutilisés.

```
{
    "CapacityReservationId": "cr-111",
    "InstanceType": "m5.large",  
    "AvailableInstanceCount": 0
}

{
    "CapacityReservationId": "cr-222",
    "InstanceType": "m4.xlarge", 
    "AvailableInstanceCount": 0
}

{
    "CapacityReservationId": "cr-333",
    "InstanceType": "m4.2xlarge", 
    "AvailableInstanceCount": 3
}
```

## Exemple 5 : Lancer des instances à la demande en utilisant des réserves de capacité lorsque la capacité cible totale est supérieure au nombre de réserves de capacité inutilisés
<a name="ec2-fleet-config6"></a>

Vous pouvez configurer une flotte pour qu’elle utilise d’abord Réservations de capacité à la demande lors du lancement d’Instances à la demande en définissant la stratégie d’utilisation des réservations de capacité sur `use-capacity-reservations-first`. Cet exemple illustre comment la flotte sélectionne les grouesp d’instances dans lesquels lancer des instances à la demande lorsque la capacité cible totale dépasse le nombre de réservations de capacité non utilisées disponibles.

Dans cet exemple, la configuration de la flotte est la suivante :
+ Capacité cible : 16 instances à la demande
+ Total de réservations de capacité non utilisé : 15 (inférieur à la capacité cible à la demande de la flotte de 16 instances à la demande)
+ Nombre de groupes de réservations de capacité : 3 (`m5.large`, `m4.xlarge`, et `m4.2xlarge`)
+ Nombre de réservations de capacité par groupe : 5
+ Stratégie d’allocation à la demande :`lowest-price`( Lorsque le nombre de réservations de capacité inutilisées est inférieur à la capacité cible à la demande, la flotte détermine les groupes dans lesquels lancer la capacité à la demande restante en fonction de la stratégie d’allocation à la demande.)

  Notez que vous pouvez également utiliser la stratégie d’allocation `prioritized` au lieu de la stratégie d’allocation `lowest-price`.

**Réserve de capacité**

Le compte a les 15 réservations de capacité suivants inutilisés dans 3 groupes différents. Le nombre de Réservations de capacité dans chaque pool est indiqué par `AvailableInstanceCount`.

```
{
    "CapacityReservationId": "cr-111", 
    "InstanceType": "m5.large", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1a", 
    "AvailableInstanceCount": 5, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}

{
    "CapacityReservationId": "cr-222", 
    "InstanceType": "m4.xlarge", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1a", 
    "AvailableInstanceCount": 5, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}

{
    "CapacityReservationId": "cr-333", 
    "InstanceType": "m4.2xlarge", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1a", 
    "AvailableInstanceCount":5, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}
```

**Fleet configuration** (Configuration de la flotte)



La configuration de flotte suivante affiche uniquement les configurations pertinentes pour cet exemple. La capacité cible totale est 16 et le type de capacité cible par défaut est `on-demand`. La stratégie d’allocation à la demande est `lowest-price`. La stratégie d’utilisation des réservations de capacité est `use-capacity-reservations-first`. 

Dans cet exemple, le prix des instance à la demande est :
+ m5.large – 0,096 USD par heure
+ m4.xlarge – 0,20 USD par heure
+ m4.2xlarge – 0,40 USD par heure

**Note**  
Le type de flotte doit être `instant`. Les autres types de flotte ne prennent pas en charge `use-capacity-reservations-first`.

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateId": "lt-0e8c754449b27161c",
                "Version": "1"
            },
            "Overrides": [
                {
                  "InstanceType": "m5.large",
                  "AvailabilityZone": "us-east-1a",
                  "WeightedCapacity": 1
                },
                {
                  "InstanceType": "m4.xlarge",
                  "AvailabilityZone": "us-east-1a",
                  "WeightedCapacity": 1
                },
                {
                  "InstanceType": "m4.2xlarge",
                  "AvailabilityZone": "us-east-1a",
                  "WeightedCapacity": 1
                }
              ]

        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 16,
        "DefaultTargetCapacityType": "on-demand"
    },
    "OnDemandOptions": {
        "AllocationStrategy": "lowest-price"
        "CapacityReservationOptions": {
            "UsageStrategy": "use-capacity-reservations-first"
        }
    },
    "Type": "instant",
}
```

Après avoir créé la flotte `instant` à l’aide de la configuration précédente, les 16 instances suivantes sont lancées pour atteindre la capacité cible :
+ 6 instances à la demande `m5.large` dans `us-east-1a` – `m5.large` dans `us-east-1a` est le prix le plus bas, et il y a 5 réservations de capacité `m5.large` disponibles inutilisés Les réservations de capacité sont utilisées en premier afin de lancer 5 instances à la demande. Après l’utilisation des réservations de capacité `m4.xlarge` and `m4.2xlarge` restantes, une instance à la demande supplémentaire est lancée pour atteindre la capacité cible, conformément à la stratégie d’allocation à la demande, qui est `lowest-price` dans cet exemple.
+ 5 instances à la demande `m4.xlarge` dans `us-east-1a` – `m4.xlarge` dans `us-east-1a` est le prix suivant le plus bas, et il y a 5 réservations de capacité `m4.xlarge` disponibles inutilisés 
+ 5 instances à la demande `m4.2xlarge` dans `us-east-1a` – `m4.2xlarge` dans `us-east-1a` est le troisième prix le plus bas, et il y a 5 réservations de capacité `m4.2xlarge` disponibles inutilisés 

Une fois la flotte lancée, vous pouvez courir [describe-capacity-reservations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservations.html)pour voir combien de réservations de capacité inutilisées restent. Dans cet exemple, vous devriez voir la réponse suivante, qui montre que tous les réservations de capacité de tous les groupes ont été utilisés.

```
{
    "CapacityReservationId": "cr-111",
    "InstanceType": "m5.large",  
    "AvailableInstanceCount": 0
}

{
    "CapacityReservationId": "cr-222",
    "InstanceType": "m4.xlarge", 
    "AvailableInstanceCount": 0
}

{
    "CapacityReservationId": "cr-333",
    "InstanceType": "m4.2xlarge", 
    "AvailableInstanceCount": 0
}
```

## Exemple 6 : lancez des instances à la demande en utilisant les réserves de capacité ciblées
<a name="ec2-fleet-config7"></a>

Vous pouvez configurer une flotte pour qu’elle utilise `targeted` d’abord les réservations de capacité à la demande lors du lancement d’instances à la demande en paramétrant la stratégie d’utilisation des réservations de capacité sur `use-capacity-reservations-first`. Cet exemple illustre comment lancer des instances à la demande dans réservations de capacité `targeted`, où les attributs des réservations de capacité sont les mêmes, à l’exception de leurs zones de disponibilité (`us-east-1a` et `us-east-1b`). Il illustre également comment la flotte sélectionne les groupes d’instances dans lesquels lancer des instances à la demande lorsque la capacité cible totale dépasse le nombre de réservations de capacité non utilisées disponibles.

Dans cet exemple, la configuration de la flotte est la suivante :
+ Capacité cible : 10 instances à la demande
+ Total de réservations de capacité `targeted` non utilisé : 6 (inférieur à la capacité cible à la demande de la flotte de 10 instances à la demande)
+ Nombre de groupes de réservations de capacité : 2 (`us-east-1a` et `us-east-1b`)
+ Nombre de réservations de capacité par groupe : 3
+ Stratégie d’allocation à la demande :`lowest-price`( Lorsque le nombre de réservations de capacité inutilisées est inférieur à la capacité cible à la demande, la flotte détermine les groupes dans lesquels lancer la capacité à la demande restante en fonction de la stratégie d’allocation à la demande.)

  Notez que vous pouvez également utiliser la stratégie d’allocation `prioritized` au lieu de la stratégie d’allocation `lowest-price`.

Pour obtenir une démonstration pas à pas des procédures que vous devez effectuer pour exécuter cet exemple, veuillez consulter [Didacticiel : configurer la flotte EC2 pour lancer des instances à la demande en utilisant des réserves de capacité ciblées](ec2-fleet-launch-on-demand-instances-using-targeted-capacity-reservations-walkthrough.md).

**Réserve de capacité**

Le compte a les 6 réservations de capacité suivants inutilisés dans 2 groupes différents. Dans cet exemple, les groupes diffèrent selon leurs zones de disponibilité. Le nombre de Réservations de capacité dans chaque pool est indiqué par `AvailableInstanceCount`.

```
{
    "CapacityReservationId": "cr-111", 
    "InstanceType": "c5.xlarge", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1a", 
    "AvailableInstanceCount": 3, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}

{
    "CapacityReservationId": "cr-222", 
    "InstanceType": "c5.xlarge", 
    "InstancePlatform": "Linux/UNIX", 
    "AvailabilityZone": "us-east-1b", 
    "AvailableInstanceCount": 3, 
    "InstanceMatchCriteria": "open", 
    "State": "active"
}
```

**Fleet configuration** (Configuration de la flotte)

La configuration de flotte suivante affiche uniquement les configurations pertinentes pour cet exemple. La capacité cible totale est 10 et le type de capacité cible par défaut est `on-demand`. La stratégie d’allocation à la demande est `lowest-price`. La stratégie d’utilisation des réservations de capacité est `use-capacity-reservations-first`. 

Dans cet exemple, le prix des instance à la demande pour `c5.xlarge` dans `us-east-1` est 0,17 dollars par heure.

**Note**  
Le type de flotte doit être `instant`. Les autres types de flotte ne prennent pas en charge `use-capacity-reservations-first`.

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "1"
            },
            "Overrides": [
               {
                   "InstanceType": "c5.xlarge",
                   "AvailabilityZone": "us-east-1a"
               },
               {
                    "InstanceType": "c5.xlarge",
                    "AvailabilityZone": "us-east-1b"
               }
            ]
        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 10,
        "DefaultTargetCapacityType": "on-demand"
    },
    "OnDemandOptions": {
        "AllocationStrategy": "lowest-price",
        "CapacityReservationOptions": {
             "UsageStrategy": "use-capacity-reservations-first"
         }
    },
    "Type": "instant"
}
```

Après avoir créé la flotte `instant` à l’aide de la configuration précédente, les 10 instances suivantes sont lancées pour atteindre la capacité cible :
+ Les réservations de capacité sont utilisées en premier lieu pour lancer 6 instances à la demande comme suit :
  + 3 instances à la demande sont lancées dans les 3 réservations de capacité `c5.xlarge` `targeted` dans `us-east-1a`
  + 3 instances à la demande sont lancées dans les 3 réservations de capacité `c5.xlarge` `targeted` dans `us-east-1b`
+ Pour atteindre la capacité cible, 4 instances à la demande supplémentaires sont lancées dans la capacité à la demande régulière selon la stratégie d’allocation à la demande, qui est `lowest-price` dans cet exemple. Toutefois, étant donné que les groupes ont le même prix (car le prix est défini par Région et non par zone de disponibilité), la flotte lance les 4 instances à la demande restantes dans l’un ou l’autre des groupes.

Une fois la flotte lancée, vous pouvez courir [describe-capacity-reservations](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-capacity-reservations.html)pour voir combien de réservations de capacité inutilisées restent. Dans cet exemple, vous devriez voir la réponse suivante, qui montre que tous les réservations de capacité de tous les groupes ont été utilisés.

```
{
    "CapacityReservationId": "cr-111",
    "InstanceType": "c5.xlarge",  
    "AvailableInstanceCount": 0
}

{
    "CapacityReservationId": "cr-222",
    "InstanceType": "c5.xlarge", 
    "AvailableInstanceCount": 0
}
```

## Exemple 7 : Configurer le rééquilibrage de capacité pour lancer les instances Spot de remplacement
<a name="ec2-fleet-config8"></a>

L’exemple suivant configure la flotte EC2 pour lancer une instance Spot de remplacement lorsqu’Amazon EC2 émet une recommandation de rééquilibrage pour une instance Spot dans la flotte. Pour configurer le remplacement automatique de Instances Spot, pour `ReplacementStrategy`, spécifiez `launch-before-terminate`. Pour configurer le délai entre le lancement des nouvelles instances Spot de remplacement et le moment où les anciennes instances Spot sont automatiquement supprimées, pour `termination-delay`, spécifiez une valeur en secondes. Pour de plus amples informations, veuillez consulter [Options de configuration](ec2-fleet-capacity-rebalance.md#ec2-fleet-capacity-rebalance-config-options).

**Note**  
Nous vous recommandons d’utiliser `launch-before-terminate` uniquement si vous pouvez prédire en combien de temps les procédures d’arrêt de vos instances seront terminées, de sorte que les anciennes instances ne soient terminées qu’une fois ces procédures terminées. Toutes les instances en cours d’exécution vous sont facturées.

L’efficacité de la stratégie de rééquilibrage de capacité dépend du nombre de groupes de capacités Spot spécifiés dans la demande de flotte EC2. Nous vous recommandons de configurer le parc avec un ensemble diversifié de types d’instance et de zones de disponibilité, et pour `AllocationStrategy`, spécifiez `capacity-optimized`. Pour plus d’informations sur ce que vous devez prendre en compte lors de la configuration d’un Flotte EC2 pour le rééquilibrage de capacité, reportez-vous à la section [Utilisez le rééquilibrage des capacités dans la flotte EC2 et le parc Spot pour remplacer les instances ponctuelles à risque](ec2-fleet-capacity-rebalance.md).

```
{
    "ExcessCapacityTerminationPolicy": "termination",
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "LaunchTemplate",
                "Version": "1"
            },
                 "Overrides": [
                       {
                           "InstanceType": "c3.large",
                           "WeightedCapacity": 1,
                            "Placement": {
                               "AvailabilityZone": "us-east-1a"
                           }
                       },
                       {
                           "InstanceType": "c4.large",
                           "WeightedCapacity": 1,
                            "Placement": {
                               "AvailabilityZone": "us-east-1a"
                           }
                       },
                       {
                           "InstanceType": "c5.large",
                           "WeightedCapacity": 1,
                            "Placement": {
                               "AvailabilityZone": "us-east-1a"
                           }
                       }
                ] 
          }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 5,
        "DefaultTargetCapacityType": "spot"
    },
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized",
        "MaintenanceStrategies": {
            "CapacityRebalance": {
                "ReplacementStrategy": "launch-before-terminate",
                "TerminationDelay": "720"
            }
        }
    }
}
```

## Exemple 8 : lancer des instances Spot dans une flotte optimisée pour la capacité
<a name="ec2-fleet-config9"></a>

L’exemple suivant montre comment configurer une flotte EC2 avec une stratégie d’allocation Spot qui optimise la capacité. Pour optimiser la capacité, vous devez définir `AllocationStrategy` sur `capacity-optimized`.

Dans l’exemple suivant, les trois spécifications de lancement spécifient trois groupes de capacités Spot. La capacité cible est de 50 instances Spot. La flotte EC2 tente de lancer 50 instances Spot dans le groupe de capacités Spot avec une capacité optimale pour le nombre d’instances qui sont lancées.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized",
        },
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "1"
            },
                 "Overrides": [
                       {
                           "InstanceType": "r4.2xlarge",
                           "Placement": {
                               "AvailabilityZone": "us-west-2a"
                           },
                      },
                       {
                           "InstanceType": "m4.2xlarge",
                           "Placement": {
                               "AvailabilityZone": "us-west-2b"
                           },
                       }, 
                       {
                           "InstanceType": "c5.2xlarge",
                           "Placement": {
                               "AvailabilityZone": "us-west-2b"
                           }
                       }
                 ] 
           }
    ],
    "TargetCapacitySpecification": {
            "TotalTargetCapacity": 50,
            "DefaultTargetCapacityType": "spot"

    }
}
```

## Exemple 9 : lancer des instances Spot dans une flotte optimisée pour la capacité avec des priorités
<a name="ec2-fleet-config10"></a>

L’exemple suivant montre comment configurer une flotte EC2 avec une stratégie d’allocation Spot qui optimise la capacité tout en utilisant la priorité sur la base du meilleur effort.

Lors de l’utilisation de la stratégie d’allocation `capacity-optimized-prioritized`, vous pouvez utiliser le paramètre `Priority` pour spécifier les priorités des groupes de capacités Spot, où plus le nombre est faible, plus la priorité est élevée. Vous pouvez également définir la même priorité pour plusieurs groupes de capacités Spot si vous les privilégiez également. Si vous ne définissez pas de priorité pour un groupe, le groupe sera considéré comme le dernier en termes de priorité.

Pour hiérarchiser les groupes de capacités Spot, vous devez définir `AllocationStrategy` sur `capacity-optimized-prioritized`. La flotte EC2 optimisera d’abord la capacité, mais respectera les priorités sur la base du meilleur effort (par exemple, si le respect des priorités n’affecte pas de manière significative la capacité de la flotte EC2 à fournir une capacité optimale). C’est une bonne option pour les charges de travail pour lesquelles la possibilité de perturbation doit être minimisée, mais la priorité de certains types d’instances est également importante.

Dans l’exemple suivant, les trois spécifications de lancement spécifient trois groupes de capacités Spot. Chaque groupe est classé par ordre de priorité, où plus le nombre est faible, plus la priorité est élevée. La capacité cible est de 50 instances Spot. La flotte EC2 tente de lancer 50 instances Spot dans le groupe de capacités Spot avec la priorité la plus élevée sur la base du meilleur effort, mais optimise d’abord la capacité.

```
{
    "SpotOptions": {
        "AllocationStrategy": "capacity-optimized-prioritized"
        },
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "1"
            },
                 "Overrides": [
                        {
                           "InstanceType": "r4.2xlarge",    
                           "Priority": 1,
                           "Placement": {
                               "AvailabilityZone": "us-west-2a"
                           },
                      },
                       {
                           "InstanceType": "m4.2xlarge",
                           "Priority": 2,
                           "Placement": {
                               "AvailabilityZone": "us-west-2b"
                           },
                       }, 
                       {
                           "InstanceType": "c5.2xlarge",
                           "Priority": 3,
                           "Placement": {
                               "AvailabilityZone": "us-west-2b"
                           }
                       }
                  ] 
             }
    ],
    "TargetCapacitySpecification": {
            "TotalTargetCapacity": 50,
            "DefaultTargetCapacityType": "spot"
}
```

## Exemple 10 : Lancer des instances ponctuelles dans une price-capacity-optimized flotte
<a name="ec2-fleet-config11"></a>

L’exemple suivant montre comment configurer une flotte EC2 avec une stratégie d’allocation Spot qui optimise la capacité et le prix le plus bas. Pour optimiser la capacité tout en tenant compte du prix, vous devez définir le Spot `AllocationStrategy` sur `price-capacity-optimized`.

Dans l’exemple suivant, les trois spécifications de lancement spécifient trois groupes de capacités Spot. La capacité cible est de 50 instances Spot. La flotte EC2 tente de lancer 50 instances Spot dans le groupe de capacités Spot avec une capacité optimale pour le nombre d’instances qui sont lancées, tout en choisissant également le groupe le moins cher.

```
{
    "SpotOptions": {
        "AllocationStrategy": "price-capacity-optimized",
        "MinTargetCapacity": 2,
        "SingleInstanceType": true
    },
    "OnDemandOptions": {
        "AllocationStrategy": "lowest-price"
    },
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "1"
            },
                 "Overrides": [
                       {
                           "InstanceType": "r4.2xlarge",
                           "Placement": {
                               "AvailabilityZone": "us-west-2a"
                           },
                      },
                       {
                           "InstanceType": "m4.2xlarge",
                           "Placement": {
                               "AvailabilityZone": "us-west-2b"
                           },
                       }, 
                       {
                           "InstanceType": "c5.2xlarge",
                           "Placement": {
                               "AvailabilityZone": "us-west-2b"
                           }
                       }
                 ] 
           }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": 50,
        "OnDemandTargetCapacity":0,
        "SpotTargetCapacity":50,
        "DefaultTargetCapacityType": "spot"
    },
    "Type": "instant"
}
```

## Exemple 11 : configurer la sélection de type d’instance basée sur des attributs
<a name="ec2-fleet-config12"></a>

L’exemple suivant montre comment configurer une flotte EC2 pour qu’elle utilise la sélection de type d’instance basée sur des attributs pour identifier les types d’instance. Pour spécifier les attributs d’instance requis, vous devez les spécifier dans la structure `InstanceRequirements`.

Dans l’exemple suivant, deux attributs d’instance sont spécifiés :
+ `VCpuCount`— Un minimum de 2 V CPUs est spécifié. Comme aucun maximum n’est spécifié, il n’y a pas de limite maximale.
+ `MemoryMiB` : au moins 4 Mio de mémoire sont spécifiés. Comme aucun maximum n’est spécifié, il n’y a pas de limite maximale.

Tous les types d'instance dotés de 2 v ou plus CPUs et de 4 MiB ou plus de mémoire seront identifiés. Toutefois, la protection des prix et la stratégie d’allocation peuvent exclure certains types d’instances lorsque [la flotte EC2 alloue la flotte](ec2-fleet-attribute-based-instance-type-selection.md#how-ef-uses-abs).

Pour obtenir une liste et une description de tous les attributs possibles que vous pouvez spécifier, consultez le [InstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceRequirements.html)manuel *Amazon EC2 API* Reference.

```
{
	"SpotOptions": {
		"AllocationStrategy": "price-capacity-optimized"
	},
	"LaunchTemplateConfigs": [{
		"LaunchTemplateSpecification": {
			"LaunchTemplateName": "my-launch-template",
			"Version": "1"
		},
		"Overrides": [{
			"InstanceRequirements": {
				"VCpuCount": {
					"Min": 2
				},
				"MemoryMiB": {
					"Min": 4
				}
			}
		}]
	}],
	"TargetCapacitySpecification": {
		"TotalTargetCapacity": 20,
		"DefaultTargetCapacityType": "spot"
	},
	"Type": "instant"
}
```

# Exemples de configurations CLI : Spot Fleet
<a name="spot-fleet-examples"></a>

Vous pouvez définir la configuration de votre parc Spot dans un fichier JSON, puis référencer ce fichier à l'aide de la [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html) AWS CLI commande pour créer votre parc, comme suit :

```
aws ec2 request-spot-fleet --spot-fleet-request-config file://file_name.json
```

Les exemples suivants illustrent les configurations de lancement pour différents cas d’utilisation de Spot Fleet. Pour plus d'informations sur les paramètres de configuration, consultez [request-spot-fleet](https://docs.aws.amazon.com/cli/latest/reference/ec2/request-spot-fleet.html). Pour plus d’informations sur la création du parc d’instances Spot, veuillez consulter [Créer une flotte Spot](create-spot-fleet.md).

**Note**  
Pour le parc d’instances Spot, vous ne pouvez pas spécifier d’ID d’interface réseau dans un modèle ou une spécification de lancement. Veillez à omettre le paramètre `NetworkInterfaceID` dans votre modèle ou spécification de lancement.

**Topics**
+ [

## Exemple 1 : lancement d’instances Spot en utilisant la zone de disponibilité la moins chère de la région
](#fleet-config1)
+ [

## Exemple 2 : lancement d’instances Spot en utilisant la zone de disponibilité la moins chère d’une liste
](#fleet-config2)
+ [

## Exemple 3 : lancement d’instances Spot en utilisant le type d’instance le moins cher d’une liste
](#fleet-config3)
+ [

## Exemple 4 : Remplacement du prix pour la demande
](#fleet-config4)
+ [

## Exemple 5 : lancement d’un parc d’instances Spot en utilisant la stratégie d’allocation diversifiée
](#fleet-config5)
+ [

## Exemple 6 : lancement d’un parc d’instances Spot en utilisant la pondération d’instance
](#fleet-config6)
+ [

## Exemple 7 : lancement d’un parc d’instances Spot en utilisant la capacité à la demande
](#fleet-config7)
+ [

## Exemple 8 : Configurer le rééquilibrage de capacité pour lancer les instances Spot de remplacement
](#fleet-config8)
+ [

## Exemple 9 : lancer des instances Spot dans une flotte optimisée pour la capacité
](#fleet-config9)
+ [

## Exemple 10 : lancer des instances Spot dans une flotte optimisée pour la capacité avec des priorités
](#fleet-config10)
+ [

## Exemple 11 : lancement d’instances Spot dans une flotte priceCapacityOptimized
](#fleet-config11)
+ [

## Exemple 12 : configurer la sélection de type d’instance basée sur des attributs
](#fleet-config12)

## Exemple 1 : lancement d’instances Spot en utilisant la zone de disponibilité la moins chère de la région
<a name="fleet-config1"></a>

L’exemple suivant spécifie une seule spécification de lancement sans Zone de disponibilité ou sous-réseau. Le parc d’instances Spot lance les instances dans la zone de disponibilité ayant le prix le moins élevé qui a un sous-réseau par défaut. Le prix que vous payez ne dépasse pas le prix à la demande.

```
{
  "TargetCapacity": 20,
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
      {
          "ImageId": "ami-1a2b3c4d",
          "KeyName": "my-key-pair",
          "SecurityGroups": [
              {
                  "GroupId": "sg-1a2b3c4d"
              }
          ],
          "InstanceType": "m3.medium",
          "IamInstanceProfile": {
              "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
          }
      }
  ]
}
```

## Exemple 2 : lancement d’instances Spot en utilisant la zone de disponibilité la moins chère d’une liste
<a name="fleet-config2"></a>

Les exemples suivants spécifient deux spécifications de lancement avec différents sous-réseaux ou zones de disponibilité, mais avec les mêmes types d’instance et AMI.

**Zones de disponibilité**

Le parc d’instances Spot lance les instances dans le sous-réseau par défaut de la zone de disponibilité ayant le prix le moins élevé que vous avez spécifié.

```
{
  "TargetCapacity": 20,
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
      {
          "ImageId": "ami-1a2b3c4d",
          "KeyName": "my-key-pair",
          "SecurityGroups": [
              {
                  "GroupId": "sg-1a2b3c4d"
              }
          ],
          "InstanceType": "m3.medium",
          "Placement": {
              "AvailabilityZone": "us-west-2a, us-west-2b"
          },
          "IamInstanceProfile": {
              "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
          }
      }
  ]
}
```

**Sous-réseaux**

Vous pouvez spécifier des sous-réseaux par défaut ou personnalisés, les derniers pouvant être issus d’un VPC par défaut ou personnalisé. Le service d’instances Spot lance les instances sur n’importe quel réseau se trouvant dans la zone de disponibilité ayant le prix le moins élevé.

Vous ne pouvez pas spécifier plusieurs sous-réseaux d’une même zone de disponibilité dans une demande de parc d’instances Spot.

```
{
  "TargetCapacity": 20,
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
      {
          "ImageId": "ami-1a2b3c4d",
          "KeyName": "my-key-pair",
          "SecurityGroups": [
              {
                  "GroupId": "sg-1a2b3c4d"
              }
          ],
          "InstanceType": "m3.medium",
          "SubnetId": "subnet-a61dafcf, subnet-65ea5f08",
          "IamInstanceProfile": {
              "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
          }
      }
  ]
}
```

Si les instances sont lancées dans un VPC par défaut, elles reçoivent une IPv4 adresse publique par défaut. Si les instances sont lancées dans un VPC autre que celui par défaut, elles ne reçoivent pas d'adresse IPv4 publique par défaut. Utilisez une interface réseau dans la spécification de lancement pour attribuer une IPv4 adresse publique aux instances lancées dans un VPC autre que celui par défaut. Lorsque vous spécifiez une interface réseau, vous devez inclure l’ID de sous-réseau et l’ID du groupe de sécurité à l’aide de l’interface réseau.

```
  ...       
      {
          "ImageId": "ami-1a2b3c4d",
          "KeyName": "my-key-pair",
          "InstanceType": "m3.medium",
          "NetworkInterfaces": [
              {
                  "DeviceIndex": 0,
                  "SubnetId": "subnet-1a2b3c4d",
                  "Groups": [ "sg-1a2b3c4d" ],
                  "AssociatePublicIpAddress": true
              }
          ],
          "IamInstanceProfile": {
              "Arn": "arn:aws:iam::123456789012:instance-profile/my-iam-role"
          }
      }
  ...
```

## Exemple 3 : lancement d’instances Spot en utilisant le type d’instance le moins cher d’une liste
<a name="fleet-config3"></a>

Les exemples suivants spécifient deux configurations de lancement avec différents types d’instance, mais la même AMI et la même zone de disponibilité ou le même sous-réseau. Le parc d’instances Spot lance les instances en utilisant le type d’instance spécifié offrant le prix le plus bas.

**Zone de disponibilité**

```
{
  "TargetCapacity": 20,
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
      {
          "ImageId": "ami-1a2b3c4d",
          "SecurityGroups": [
              {
                  "GroupId": "sg-1a2b3c4d"
              }
          ],
          "InstanceType": "c5.4xlarge",
          "Placement": {
            "AvailabilityZone": "us-west-2b"
          }
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "SecurityGroups": [
              {
                  "GroupId": "sg-1a2b3c4d"
              }
          ],
          "InstanceType": "r3.8xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2b"
          }
      }
  ]
}
```

**Sous-réseau**

```
{
  "TargetCapacity": 20,
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
      {
          "ImageId": "ami-1a2b3c4d",
          "SecurityGroups": [
              {
                  "GroupId": "sg-1a2b3c4d"
              }
          ],
          "InstanceType": "c5.4xlarge",
          "SubnetId": "subnet-1a2b3c4d"
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "SecurityGroups": [
              {
                  "GroupId": "sg-1a2b3c4d"
              }
          ],
          "InstanceType": "r3.8xlarge",
          "SubnetId": "subnet-1a2b3c4d"
      }
  ]
}
```

## Exemple 4 : Remplacement du prix pour la demande
<a name="fleet-config4"></a>

Nous vous avons recommandé d’utiliser le prix maximum par défaut, qui correspond au prix à la demande. Si vous préférez, vous pouvez indiquer un prix maximum pour la demande du flotte, et les prix maximum des spécifications de lancement individuelles.

Les exemples suivants indiquent le prix maximum pour la demande du flotte, et les prix maximum pour deux des trois spécifications de lancement. Le prix maximum de la demande de flotte est utilisé pour toutes les spécifications de lancement qui ne spécifient aucun prix maximum. Le parc d’instances Spot lance les instances en utilisant le type d’instance offrant le prix le plus bas.

**Zone de disponibilité**

```
{
  "SpotPrice": "1.00",
  "TargetCapacity": 30,
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "c3.2xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2b"
          },
          "SpotPrice": "0.10"
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "c3.4xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2b"
          },
          "SpotPrice": "0.20"
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "c3.8xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2b"
          }
      }
    ]
}
```

**Sous-réseau**

```
{
  "SpotPrice": "1.00",
  "TargetCapacity": 30,
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "c3.2xlarge",
          "SubnetId": "subnet-1a2b3c4d",
          "SpotPrice": "0.10"
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "c3.4xlarge",
          "SubnetId": "subnet-1a2b3c4d",
          "SpotPrice": "0.20"
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "c3.8xlarge",
          "SubnetId": "subnet-1a2b3c4d"
      }
  ]
}
```

## Exemple 5 : lancement d’un parc d’instances Spot en utilisant la stratégie d’allocation diversifiée
<a name="fleet-config5"></a>

L’exemple suivant utilise la stratégie d’allocation `diversified`. Les spécifications de lancement ont différents types d’instance, mais la même AMI et la même zone de disponibilité ou le même sous-réseau. Le parc d’instances Spot répartit les 30 instances entre les trois spécifications de lancement de sorte qu’il existe 10 instances de chaque type. Pour de plus amples informations, veuillez consulter [Utilisez des stratégies d’allocation pour déterminer la manière dont les flottes d’instances EC2 ou Spot utilisent les capacités Spot et Spot](ec2-fleet-allocation-strategy.md).

**Zone de disponibilité**

```
{
  "SpotPrice": "0.70", 
  "TargetCapacity": 30,
  "AllocationStrategy": "diversified",
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "c4.2xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2b"
          }
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "m3.2xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2b"
          }
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "r3.2xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2b"
          }
      }
  ]
}
```

**Sous-réseau**

```
{
    "SpotPrice": "0.70", 
    "TargetCapacity": 30,
    "AllocationStrategy": "diversified",
    "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
    "LaunchSpecifications": [
        {
            "ImageId": "ami-1a2b3c4d",
            "InstanceType": "c4.2xlarge",
            "SubnetId": "subnet-1a2b3c4d"
        },
        {
            "ImageId": "ami-1a2b3c4d",
            "InstanceType": "m3.2xlarge",
            "SubnetId": "subnet-1a2b3c4d"
        },
        {
            "ImageId": "ami-1a2b3c4d",
            "InstanceType": "r3.2xlarge",
            "SubnetId": "subnet-1a2b3c4d"
        }
    ]
}
```

Une bonne pratique pour augmenter les chances qu’une demande au comptant puisse être satisfaite par une capacité EC2 en cas de panne dans l’une des zones de disponibilité est de diversifier ces dernières. Pour ce scénario, incluez chaque zone disponibilité à votre disposition dans les spécifications de lancement. Et, au lieu d’utiliser le même sous-réseau à chaque fois, utilisez trois sous-réseaux uniques (chacun correspondant à une zone différente). 

**Zone de disponibilité**

```
{
  "SpotPrice": "0.70", 
  "TargetCapacity": 30,
  "AllocationStrategy": "diversified",
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "c4.2xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2a"
          }
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "m3.2xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2b"
          }
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "r3.2xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2c"
          }
      }
  ]
}
```

**Sous-réseau**

```
{
    "SpotPrice": "0.70", 
    "TargetCapacity": 30,
    "AllocationStrategy": "diversified",
    "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
    "LaunchSpecifications": [
        {
            "ImageId": "ami-1a2b3c4d",
            "InstanceType": "c4.2xlarge",
            "SubnetId": "subnet-1a2b3c4d"
        },
        {
            "ImageId": "ami-1a2b3c4d",
            "InstanceType": "m3.2xlarge",
            "SubnetId": "subnet-2a2b3c4d"
        },
        {
            "ImageId": "ami-1a2b3c4d",
            "InstanceType": "r3.2xlarge",
            "SubnetId": "subnet-3a2b3c4d"
        }
    ]
}
```

## Exemple 6 : lancement d’un parc d’instances Spot en utilisant la pondération d’instance
<a name="fleet-config6"></a>

Les exemples suivants utilisent la pondération d’instance, ce qui signifie que le prix est déterminé par heure d’unité, et non par heure d’instance. Chaque configuration de lancement répertorie un type d’instance différent et une pondération différente. Le parc d’instances Spot sélectionne le type d’instance ayant le prix par heure d’unité le plus bas. Le parc d’instances Spot calcule le nombre d’instances Spot à lancer en divisant la capacité cible par la pondération d’instance. Si le résultat n’est pas un nombre entier, le parc d’instances Spot l’arrondit à l’entier suivant afin que la taille de votre flotte ne soit pas inférieure à sa capacité cible.

Si la demande `r3.2xlarge` est satisfaite, le parc d’instances Spot met en service 4 de ces instances. Divisez 20 par 6 pour un total de 3,33 instances, puis arrondissez à 4 instances.

Si la demande `c3.xlarge` est satisfaite, le parc d’instances Spot met en service 7 de ces instances. Divisez 20 par 3 pour un total de 6,66 instances, puis arrondissez à 7 instances.

Pour de plus amples informations, veuillez consulter [Utilisez la pondération des instances pour gérer les coûts et les performances de votre flotte EC2 ou parc d’instances Spot](ec2-fleet-instance-weighting.md).

**Zone de disponibilité**

```
{
  "SpotPrice": "0.70",
  "TargetCapacity": 20,
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "r3.2xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2b"
          },
          "WeightedCapacity": 6
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "c3.xlarge",
          "Placement": {
              "AvailabilityZone": "us-west-2b"
          },
          "WeightedCapacity": 3
      }
    ]
}
```

**Sous-réseau**

```
{
  "SpotPrice": "0.70",
  "TargetCapacity": 20,
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "LaunchSpecifications": [
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "r3.2xlarge",
          "SubnetId": "subnet-1a2b3c4d",
          "WeightedCapacity": 6
      },
      {
          "ImageId": "ami-1a2b3c4d",
          "InstanceType": "c3.xlarge",
          "SubnetId": "subnet-1a2b3c4d",
          "WeightedCapacity": 3
      }
  ]
}
```

## Exemple 7 : lancement d’un parc d’instances Spot en utilisant la capacité à la demande
<a name="fleet-config7"></a>

Pour garantir que vous avez toujours la capacité d’instance, vous pouvez inclure une demande de capacité à la demande dans votre demande de parc d’instances Spot . S’il y a la capacité nécessaire, la demande à la demande est toujours satisfaite. Le solde de la capacité cible est assuré en tant que Spot s’il existe une capacité et une disponibilité.

L’exemple suivant spécifie la capacité cible souhaitée de 10 instances, dont 5 correspondent à une capacité à la demande. La capacité Spot n’est pas spécifiée : elle est impliquée dans le solde de la capacité cible moins la capacité à la demande. Amazon EC2 lance 5 unités de capacité à la demande et 5 unités de capacité (10 - 5 = 5) Spot s’il existe une capacité Amazon EC2 et une disponibilité. 

```
{
  "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
  "AllocationStrategy": "lowestPrice",
  "TargetCapacity": 10,
  "SpotPrice": null,
  "ValidFrom": "2018-04-04T15:58:13Z",
  "ValidUntil": "2019-04-04T15:58:13Z",
  "TerminateInstancesWithExpiration": true,
  "LaunchSpecifications": [],
  "Type": "maintain",
  "OnDemandTargetCapacity": 5,
  "LaunchTemplateConfigs": [
    {
      "LaunchTemplateSpecification": {
        "LaunchTemplateId": "lt-0dbb04d4a6cca5ad1",
        "Version": "2"
      },
      "Overrides": [
        {
          "InstanceType": "t2.medium",
          "WeightedCapacity": 1,
          "SubnetId": "subnet-d0dc51fb"
        }
      ]
    }
  ]
}
```

## Exemple 8 : Configurer le rééquilibrage de capacité pour lancer les instances Spot de remplacement
<a name="fleet-config8"></a>

L’exemple suivant configure le parc d’instances Spot pour lancer une instance Spot de remplacement lorsqu’Amazon EC2 émet une recommandation de rééquilibrage pour une instance Spot de la flotte. Pour configurer le remplacement automatique de Instances Spot, pour `ReplacementStrategy`, spécifiez `launch-before-terminate`. Pour configurer le délai entre le lancement des nouvelles instances Spot de remplacement et le moment où les anciennes instances Spot sont automatiquement supprimées, pour `termination-delay`, spécifiez une valeur en secondes. Pour de plus amples informations, veuillez consulter [Options de configuration](ec2-fleet-capacity-rebalance.md#ec2-fleet-capacity-rebalance-config-options).

**Note**  
Nous vous recommandons d’utiliser `launch-before-terminate` uniquement si vous pouvez prédire la durée de la procédure d’arrêt de votre instance. Cela garantit que les anciennes instances ne sont résiliées qu’une fois les procédures d’arrêt terminées. Toutes les instances en cours d’exécution vous sont facturées.

L’efficacité de la stratégie de rééquilibrage de capacité dépend du nombre de groupes de capacités Spot spécifiés dans la demande de parc d’instances Spot. Nous vous recommandons de configurer le parc avec un ensemble diversifié de types d’instance et de zones de disponibilité, et pour `AllocationStrategy`, spécifiez `capacityOptimized`. Pour plus d’informations sur ce que vous devez prendre en compte lors de la configuration d’un parc d’instances Spot pour le rééquilibrage de capacité, consultez la rubrique [Utilisez le rééquilibrage des capacités dans la flotte EC2 et le parc Spot pour remplacer les instances ponctuelles à risque](ec2-fleet-capacity-rebalance.md).

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "capacityOptimized",
        "IamFleetRole": "arn:aws:iam::123456789012:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateName": "LaunchTemplate",
                    "Version": "1"
                },
                 "Overrides": [
                       {
                           "InstanceType": "c3.large",
                           "WeightedCapacity": 1,
                           "Placement": {
                               "AvailabilityZone": "us-east-1a"
                           }
                       },
                       {
                           "InstanceType": "c4.large",
                           "WeightedCapacity": 1,
                           "Placement": {
                               "AvailabilityZone": "us-east-1a"
                           }
                       },
                       {
                           "InstanceType": "c5.large",
                           "WeightedCapacity": 1,
                           "Placement": {
                               "AvailabilityZone": "us-east-1a"
                           }
                       }
                ] 
          }
    ],
        "TargetCapacity": 5,
        "SpotMaintenanceStrategies": {
            "CapacityRebalance": {
                "ReplacementStrategy": "launch-before-terminate",
                "TerminationDelay": "720"
            }
        }
    }
}
```

## Exemple 9 : lancer des instances Spot dans une flotte optimisée pour la capacité
<a name="fleet-config9"></a>

L’exemple suivant montre comment configurer un parc d’instances Spot avec une stratégie d’allocation Spot qui optimise la capacité. Pour optimiser la capacité, vous devez définir `AllocationStrategy` sur `capacityOptimized`.

Dans l’exemple suivant, les trois spécifications de lancement spécifient trois groupes de capacités Spot. La capacité cible est de 50 instances Spot. Le parc d’instances Spot tente de lancer 50 instances Spot dans le groupe de capacités Spot avec une capacité optimale pour le nombre d’instances qui sont lancées.

```
{
    "TargetCapacity": "50",
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "capacityOptimized",
    },
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "1"
            },
            "Overrides": [
                {
                    "InstanceType": "r4.2xlarge",  
                    "AvailabilityZone": "us-west-2a"
                },
                {
                    "InstanceType": "m4.2xlarge",
                    "AvailabilityZone": "us-west-2b"
                }, 
                {
                    "InstanceType": "c5.2xlarge",
                    "AvailabilityZone": "us-west-2b"
                }
            ] 
        }
    ]
}
```

## Exemple 10 : lancer des instances Spot dans une flotte optimisée pour la capacité avec des priorités
<a name="fleet-config10"></a>

L’exemple suivant montre comment configurer un parc d’instances Spot avec une stratégie d’allocation Spot qui optimise la capacité tout en utilisant la priorité sur la base du meilleur effort.

Lors de l’utilisation de la stratégie d’allocation `capacityOptimizedPrioritized`, vous pouvez utiliser le paramètre `Priority` pour spécifier les priorités des groupes de capacités Spot, où plus le nombre est faible, plus la priorité est élevée. Vous pouvez également définir la même priorité pour plusieurs groupes de capacités Spot si vous les privilégiez également. Si vous ne définissez pas de priorité pour un groupe, le groupe sera considéré comme le dernier en termes de priorité.

Pour hiérarchiser les groupes de capacités Spot, vous devez définir `AllocationStrategy` sur `capacityOptimizedPrioritized`. Le parc d’instances Spot optimisera la capacité d’abord, mais respectera les priorités sur la base du meilleur effort (par exemple, si le respect des priorités n’affecte pas de manière significative la capacité du parc d’instances Spot à fournir une capacité optimale). C’est une bonne option pour les charges de travail pour lesquelles la possibilité de perturbation doit être minimisée, mais la priorité de certains types d’instances est également importante.

Dans l’exemple suivant, les trois spécifications de lancement spécifient trois groupes de capacités Spot. Chaque groupe est classé par ordre de priorité, où plus le nombre est faible, plus la priorité est élevée. La capacité cible est de 50 instances Spot. Le parc d’instances Spot tente de lancer 50 instances Spot dans le groupe de capacités Spot avec la priorité la plus élevée sur la base du meilleur effort, mais optimise d’abord la capacité.

```
{
    "TargetCapacity": "50",
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "capacityOptimizedPrioritized"
    },
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "my-launch-template",
                "Version": "1"
            },
            "Overrides": [
                {
                    "InstanceType": "r4.2xlarge",    
                   "Priority": 1,
                    "AvailabilityZone": "us-west-2a"
                },
                {
                           "InstanceType": "m4.2xlarge",
                           "Priority": 2,
                           "AvailabilityZone": "us-west-2b"
                }, 
                {
                           "InstanceType": "c5.2xlarge",
                           "Priority": 3,
                           "AvailabilityZone": "us-west-2b"
                }
            ] 
        }
    ]
}
```

## Exemple 11 : lancement d’instances Spot dans une flotte priceCapacityOptimized
<a name="fleet-config11"></a>

L’exemple suivant montre comment configurer un parc d’instances Spot avec une stratégie d’allocation Spot qui optimise la capacité et le prix le plus bas. Pour optimiser la capacité tout en tenant compte du prix, vous devez définir le Spot `AllocationStrategy` sur `priceCapacityOptimized`.

Dans l’exemple suivant, les trois spécifications de lancement spécifient trois groupes de capacités Spot. La capacité cible est de 50 instances Spot. Le parc d’instances Spot tente de lancer 50 instances Spot dans le groupe de capacités Spot avec une capacité optimale pour le nombre d’instances qui sont lancées, tout en choisissant également le groupe le moins cher.

```
{
    "SpotFleetRequestConfig": {
        "AllocationStrategy": "priceCapacityOptimized",
        "OnDemandAllocationStrategy": "lowestPrice",
        "ExcessCapacityTerminationPolicy": "default",
        "IamFleetRole": "arn:aws:iam::111111111111:role/aws-ec2-spot-fleet-tagging-role",
        "LaunchTemplateConfigs": [
            {
                "LaunchTemplateSpecification": {
                    "LaunchTemplateId": "lt-0123456789example",
                    "Version": "1"
                },
                "Overrides": [
                     {
                           "InstanceType": "r4.2xlarge",  
                           "AvailabilityZone": "us-west-2a"
                      },
                      {
                           "InstanceType": "m4.2xlarge",
                           "AvailabilityZone": "us-west-2b"
                      }, 
                      {
                           "InstanceType": "c5.2xlarge",
                           "AvailabilityZone": "us-west-2b"
                      }
                ]
            }
        ],
        "TargetCapacity": 50,
        "Type": "request"
    }
}
```

## Exemple 12 : configurer la sélection de type d’instance basée sur des attributs
<a name="fleet-config12"></a>

L’exemple suivant montre comment configurer un parc d’instances Spot pour qu’il utilise la sélection de type d’instance basée sur des attributs pour identifier les types d’instance. Pour spécifier les attributs d’instance requis, vous devez les spécifier dans la structure `InstanceRequirements`.

Dans l’exemple suivant, deux attributs d’instance sont spécifiés :
+ `VCpuCount`— Un minimum de 2 V CPUs est spécifié. Comme aucun maximum n’est spécifié, il n’y a pas de limite maximale.
+ `MemoryMiB` : au moins 4 Mio de mémoire sont spécifiés. Comme aucun maximum n’est spécifié, il n’y a pas de limite maximale.

Tous les types d'instance dotés de 2 v ou plus CPUs et de 4 MiB ou plus de mémoire seront identifiés. Toutefois, la protection des prix et la stratégie d’allocation peuvent exclure certains types d’instances lorsque [le parc d’instances Spot alloue la flotte](ec2-fleet-attribute-based-instance-type-selection.md#how-ef-uses-abs).

Pour obtenir une liste et une description de tous les attributs possibles que vous pouvez spécifier, consultez le [InstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceRequirements.html)manuel *Amazon EC2 API* Reference.

```
{
	"AllocationStrategy": "priceCapacityOptimized",
	"TargetCapacity": 20,
	"Type": "request",
	"LaunchTemplateConfigs": [{
		"LaunchTemplateSpecification": {
			"LaunchTemplateName": "my-launch-template",
			"Version": "1"
		},
		"Overrides": [{
			"InstanceRequirements": {
				"VCpuCount": {
					"Min": 2
				},
				"MemoryMiB": {
					"Min": 4
				}
			}
		}]
	}]
}
```

# Quotas pour les flottes d’instances EC2 et Spot
<a name="fleet-quotas"></a>

Vous Compte AWS disposez de quotas par défaut, anciennement appelés limites, pour chaque AWS service. Sauf indication contraire, chaque quota est spécifique à une région.

Les quotas Amazon EC2 habituels s’appliquent aux instances lancées par une flotte EC2 ou un parc d’instances Spot, tels que les [limites d’instance Spot](using-spot-limits.md) et les [limites de volume](volume_limits.md).

En outre, vous disposez Compte AWS des quotas suivants relatifs à EC2 Fleet et Spot Fleet :


****  

| Description du quota | Quota | 
| --- | --- | 
| Le nombre de flottes EC2 et de parc d’instances Spot par région de type maintain et request dans les états active, deleted\$1running et cancelled\$1running | 1 000 ¹ ² ³ | 
| Le nombre de flottes EC2 de type instant | Illimité | 
| Le nombre de groupes de capacité Spot (combinaison unique de type d’instance et de sous-réseau) pour les flottes EC2 et les parcs d’instances Spot de type maintain et request | 300 ¹ | 
| Le nombre de groupes de capacité Spot (combinaison unique de type d’instance et de sous-réseau) pour les flottes EC2 de type instant | Illimité | 
| Taille des données utilisateur dans une spécification de lancement | 16 Ko ² | 
| Capacité cible par flotte EC2 ou parc d’instances Spot | 10 000 | 
| Capacité cible pour tous les Flottes EC2 et Parcs d’instances Spot d’une région | 100 000 ¹ | 
|  Une demande de flotte EC2 ou une demande de parc d’instances Spot ne peut pas couvrir plusieurs régions.  |  | 
| Une demande de flotte EC2 ou de parc d’instances Spot ne peut pas couvrir différents sous-réseaux de la même zone de disponibilité. |  | 

¹ Ces quotas s’appliquent à vos Flottes EC2 et à vos Parcs d’instances Spot.

² Ces quotas sont finis. Vous ne pouvez pas demander d’augmentation pour ces quotas.

³ Après avoir supprimé une flotte EC2 ou annulé une demande de parc Spot, et si vous avez spécifié que la flotte ne doit *pas* mettre fin à ses instances ponctuelles lorsque vous avez supprimé ou annulé la demande, la demande de flotte entre dans l’état `deleted_running` (Flotte EC2) ou `cancelled_running` (Flotte d’instances Spot) et les instances continuent à être exécutées jusqu’à ce qu’elles soient interrompues ou jusqu’à ce que vous les mettiez hors service manuellement. Si vous résiliez les instances, la demande de parc d’instances entre dans l’état `deleted_terminating` (Flotte EC2) ou `cancelled_terminating` (parc d’instances Spot) et ne compte pas dans ce quota. Pour plus d’informations, consultez [Supprimer une demande de Flotte EC2 et les instances du parc](delete-fleet.md) et [Annuler (supprimer) une demande de parc d’instances Spot](cancel-spot-fleet.md).

## Demander une augmentation de quota pour la capacité cible
<a name="fleet-quota-increase-request"></a>

S’il vous faut un quota par défaut supérieur à la capacité cible, demandez une augmentation de quota.

**Demander une augmentation de quota pour la capacité cible**

1. Ouvrez le formulaire Support Center [Create Case](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-ec2-fleet).

1. Sélectionnez **Service Limit increase** (Augmentation des limites de service).

1. Pour **Limit type** (Type de limite), choisissez **EC2 Fleet** (Flotte EC2).

1. Pour **Région**, choisissez la AWS région dans laquelle vous souhaitez demander l'augmentation du quota.

1. Pour **Limit** (Limite), choisissez **Target Fleet Capacity per Fleet (in units)** (Capacité cible de la flotte par flotte [en unités]) ou **Target Fleet Capacity per Region (in units)** (Capacité de flotte cible par région [en unités]), selon le quota que vous souhaitez augmenter.

1. Pour **New limit value** (Nouvelle valeur de la limite), saisissez la nouvelle valeur.

1. Pour demander l’augmentation d’un autre quota, choisissez **Add another request** (Ajouter une demande supplémentaire), et répétez les étapes 4 à 6.

1. Pour **Use case description** (Description du cas d’utilisation), indiquez la raison pour laquelle vous demandez une augmentation de quota.

1. Sous **Contact options** (Options de contact), spécifiez la langue de contact et la méthode de contact que vous préférez.

1. Sélectionnez **Soumettre**.