

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.

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