

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.

# Didacticiel : configurer la flotte EC2 pour lancer des instances à la demande en utilisant des réserves de capacité ciblées
<a name="ec2-fleet-launch-on-demand-instances-using-targeted-capacity-reservations-walkthrough"></a>

Ce didacticiel vous guide à travers toutes les étapes que vous devez effectuer pour que votre flotte EC2 lance des instances à la demande dans les réservations de capacité `targeted`.

Vous verrez qu’il est possible de configurer une flotte EC2 pour qu’elle utilise d’abord la réservations de capacité `targeted` lors du lancement d’instances à la demande. Vous apprendrez également à configurer la flotte de sorte que, lorsque la capacité cible totale à la demande dépasse le nombre de réservations de capacité inutilisées disponibles, la flotte utilise la stratégie d’allocation spécifiée pour sélectionner les groupes d’instances dans lesquels lancer la capacité cible restante.

**Configuration de la flotte EC2**

Dans ce didacticiel, la flotte est configurée comme suit :
+ Capacité cible : 10 instances à la demande
+ Total de réservations de capacité `targeted` non utilisé : 6 (inférieur à la capacité cible à la demande de la flotte de 10 instances à la demande)
+ Nombre de groupes de réservations de capacité : 2 (`us-east-1a` et `us-east-1b`)
+ Nombre de réservations de capacité par groupe : 3
+ Stratégie d’allocation à la demande :`lowest-price`( Lorsque le nombre de réservations de capacité inutilisées est inférieur à la capacité cible à la demande, la flotte détermine les groupes dans lesquels lancer la capacité à la demande restante en fonction de la stratégie d’allocation à la demande.)

  Notez que vous pouvez également utiliser la stratégie d’allocation `prioritized` au lieu de la stratégie d’allocation `lowest-price`.

**Pour lancer des instances à la demande dans les réservations de capacité `targeted`, vous devez effectuer un certain nombre d’étapes, comme suit :**
+ [Étape 1 : Créer des réservations de capacité](#ec2-fleet-odcr-step1)
+ [Étape 2 : Création d’un groupe de ressources de Réservation de capacité](#ec2-fleet-odcr-step2)
+ [Étape 3 : Ajouter les réservations de capacité au groupe de ressources de Réservation de capacité](#ec2-fleet-odcr-step3)
+ [(Facultatif) Étape 4 : Afficher les réservations de capacité dans le groupe de ressources](#ec2-fleet-odcr-step4)
+ [Étape 5 : Créer un modèle de lancement qui spécifie que la réservation de capacité cible un groupe de ressources spécifique](#ec2-fleet-odcr-step5)
+ [(Facultatif) Étape 6 : Décrire le modèle de lancement](#ec2-fleet-odcr-step6)
+ [Étape 7 : Créer une flotte EC2](#ec2-fleet-odcr-step7)
+ [(Facultatif) Étape 8 : Afficher le nombre de réservations de capacité non utilisées restantes](#ec2-fleet-odcr-step8)

## Étape 1 : Créer des réservations de capacité
<a name="ec2-fleet-odcr-step1"></a>

Utilisez la [create-capacity-reservation](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-capacity-reservation.html)commande pour créer les réservations de capacité, trois pour `us-east-1a` et trois autres pour`us-east-1b`. À l’exception de la zone de disponibilité, les autres attributs des réservations de capacité sont identiques.

**3 Capacity Reservations in `us-east-1a`** (3 réservations de capacité sur ).

```
aws ec2 create-capacity-reservation \
    --availability-zone us-east-1a \
    --instance-type c5.xlarge \
    --instance-platform Linux/UNIX \
    --instance-count 3 \
    --instance-match-criteria targeted
```

Exemple d’ID de réservation de capacité en résultant

```
cr-1234567890abcdef1
```

**3 Capacity Reservations in `us-east-1b`** (3 réservations de capacité sur ).

```
aws ec2 create-capacity-reservation \
    --availability-zone us-east-1b \
    --instance-type c5.xlarge \
    --instance-platform Linux/UNIX \
    --instance-count 3 \
    --instance-match-criteria targeted
```

Exemple d’ID de réservation de capacité en résultant

```
cr-54321abcdef567890
```

## Étape 2 : Création d’un groupe de ressources de Réservation de capacité
<a name="ec2-fleet-odcr-step2"></a>

Utilisation de `resource-groups` et du service [create-group](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/create-group.html) (créer un groupe) pour créer un groupe de ressources de Réservation de capacité. Dans cet exemple, le groupe de ressources est nommé `my-cr-group`. Pour plus d’informations sur les raisons pour lesquelles vous devez créer un groupe de ressources, veuillez consulter [Utilisez les réserves de capacité pour réserver de la capacité à la demande dans la flotte EC2](ec2-fleet-on-demand-capacity-reservations.md).

```
aws resource-groups create-group \
    --name {{my-cr-group}} \
    --configuration '{"Type":"AWS::EC2::CapacityReservationPool"}' '{"Type":"AWS::ResourceGroups::Generic", "Parameters": [{"Name": "allowed-resource-types", "Values": ["AWS::EC2::CapacityReservation"]}]}'
```

## Étape 3 : Ajouter les réservations de capacité au groupe de ressources de Réservation de capacité
<a name="ec2-fleet-odcr-step3"></a>

Utilisation de `resource-groups` et du service [group-resources](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/group-resources.html) (groupement de ressources) pour ajouter les réservations de capacité créées à l’étape 1 au groupe de ressources de réservations de capacité. Notez que vous devez référencer les réservations de capacité à la demande par leur nomARNs.

```
aws resource-groups group-resources \
    --group {{my-cr-group}} \
    --resource-arns \
      arn:aws:ec2:{{us-east-1}}:{{123456789012}}:capacity-reservation/{{cr-1234567890abcdef1}} \
      arn:aws:ec2:{{us-east-1}}:{{123456789012}}:capacity-reservation/{{cr-54321abcdef567890}}
```

Exemple de sortie

```
{
   "Failed": [], 
   "Succeeded": [ 
   "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1", 
   "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890" 
   ] 
}
```

## (Facultatif) Étape 4 : Afficher les réservations de capacité dans le groupe de ressources
<a name="ec2-fleet-odcr-step4"></a>

Utilisez le `resource-groups` service et la [list-group-resources](https://docs.aws.amazon.com/cli/latest/reference/resource-groups/list-group-resources.html)commande pour éventuellement décrire le groupe de ressources afin d'afficher ses réservations de capacité.

```
aws resource-groups list-group-resources --group {{my-cr-group}}
```

Exemple de sortie

```
{
    "ResourceIdentifiers": [
        {
            "ResourceType": "AWS::EC2::CapacityReservation",
            "ResourceArn": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1"
        },
        {
            "ResourceType": "AWS::EC2::CapacityReservation",
            "ResourceArn": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-54321abcdef567890"
        }
    ]
}
```

## Étape 5 : Créer un modèle de lancement qui spécifie que la réservation de capacité cible un groupe de ressources spécifique
<a name="ec2-fleet-odcr-step5"></a>

Utilisez la [create-launch-template](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-launch-template.html)commande pour créer un modèle de lancement dans lequel spécifier les réservations de capacité à utiliser. Dans cet exemple, la flotte utilisera les réservations de capacité `targeted`, qui ont été ajoutées à un groupe de ressources. Par conséquent, les données du modèle de lancement spécifient que la réservation de capacité cible un groupe de ressources spécifique. Dans cet exemple, le modèle de lancement est nommé `my-launch-template`. 

```
aws ec2 create-launch-template \
    --launch-template-name {{my-launch-template}} \
    --launch-template-data \
        '{"ImageId": "ami-{{0123456789example}}",
          "CapacityReservationSpecification": 
            {"CapacityReservationTarget": 
                { "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:{{us-east-1}}:{{123456789012}}:group/{{my-cr-group}}" }
            }
        }'
```

## (Facultatif) Étape 6 : Décrire le modèle de lancement
<a name="ec2-fleet-odcr-step6"></a>

Utilisez la [describe-launch-template-versions](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-launch-template-versions.html)commande pour éventuellement décrire le modèle de lancement afin de visualiser sa configuration.

```
aws ec2 describe-launch-template-versions --launch-template-name {{my-launch-template}}
```

Exemple de sortie

```
{
    "LaunchTemplateVersions": [
        {
            "LaunchTemplateId": "lt-01234567890example",
            "LaunchTemplateName": "my-launch-template",
            "VersionNumber": 1,
            "CreateTime": "2021-01-19T20:50:19.000Z",
            "CreatedBy": "arn:aws:iam::123456789012:user/Admin",
            "DefaultVersion": true,
            "LaunchTemplateData": {
                "ImageId": "ami-0947d2ba12ee1ff75",
                "CapacityReservationSpecification": {
                    "CapacityReservationTarget": {
                        "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-group"
                    }
                }
            }
        }
    ]
}
```

## Étape 7 : Créer une flotte EC2
<a name="ec2-fleet-odcr-step7"></a>

Créez une flotte EC2 qui spécifie les informations de configuration pour les instances qu’il lancera. La configuration de flotte EC2 suivante affiche uniquement les configurations pertinentes pour cet exemple. Le modèle de lancement `my-launch-template` est le modèle de lancement que vous avez créé à l’étape 5. Il existe deux groupes d’instances, chacun ayant le même type d’instance (`c5.xlarge`), mais avec des zones de disponibilité différentes (`us-east-1a` et `us-east-1b`). Le prix des groupes d’instances est le même car la tarification est définie pour la Région et non pour la zone de disponibilité. La capacité cible totale est 10 et le type de capacité cible par défaut est `on-demand`. La stratégie d’allocation à la demande est `lowest-price`. La stratégie d’utilisation des réservations de capacité est `use-capacity-reservations-first`.

**Note**  
Le type de flotte doit être `instant`. Les autres types de flotte ne prennent pas en charge `use-capacity-reservations-first`.

```
{
    "LaunchTemplateConfigs": [
        {
            "LaunchTemplateSpecification": {
                "LaunchTemplateName": "{{my-launch-template}}",
                "Version": "1"
            },
            "Overrides": [
               {
                   "InstanceType": "{{c5.xlarge}}",
                   "AvailabilityZone": "{{us-east-1a}}"
               },
               {
                    "InstanceType": "{{c5.xlarge}}",
                    "AvailabilityZone": "{{us-east-1b}}"
               }
            ]
        }
    ],
    "TargetCapacitySpecification": {
        "TotalTargetCapacity": {{10}},
        "DefaultTargetCapacityType": "{{on-demand}}"
    },
    "OnDemandOptions": {
        "AllocationStrategy": "{{lowest-price}}",
        "CapacityReservationOptions": {
             "UsageStrategy": "use-capacity-reservations-first"
         }
    },
    "Type": "instant"
}
```

Après avoir créé la flotte `instant` à l’aide de la configuration précédente, les 10 instances suivantes sont lancées pour atteindre la capacité cible :
+ Les réservations de capacité sont utilisées en premier lieu pour lancer 6 instances à la demande comme suit :
  + 3 instances à la demande sont lancées dans les 3 réservations de capacité `c5.xlarge` `targeted` dans `us-east-1a`
  + 3 instances à la demande sont lancées dans les 3 réservations de capacité `c5.xlarge` `targeted` dans `us-east-1b`
+ Pour atteindre la capacité cible, 4 instances à la demande supplémentaires sont lancées dans la capacité à la demande régulière selon la stratégie d’allocation à la demande, qui est `lowest-price` dans cet exemple. Toutefois, étant donné que les groupes ont le même prix (car le prix est défini par Région et non par zone de disponibilité), la flotte lance les 4 instances à la demande restantes dans l’un ou l’autre des groupes.

## (Facultatif) Étape 8 : Afficher le nombre de réservations de capacité non utilisées restantes
<a name="ec2-fleet-odcr-step8"></a>

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

```
{ "CapacityReservationId":  "cr-111",
     "InstanceType":  "c5.xlarge",  
     "AvailableInstanceCount":  0
}

 { "CapacityReservationId":  "cr-222",
     "InstanceType":  "c5.xlarge", 
     "AvailableInstanceCount":  0
}
```