View a markdown version of this page

Tutoriel : configurer EC2 Fleet pour lancer des On-Demand instances à l'aide de réservations de capacité ciblées - Amazon Elastic Compute Cloud

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Tutoriel : configurer EC2 Fleet pour lancer des On-Demand instances à l'aide de réservations de capacité ciblées

Ce didacticiel vous explique toutes les étapes à suivre pour que votre flotte EC2 lance des On-Demand instances dans targeted Capacity Reservations.

Vous allez apprendre à configurer une flotte pour qu'elle utilise d'abord les réservations de targeted On-Demand capacité lors du lancement d' On-Demand instances. Vous allez également apprendre à configurer la flotte de telle sorte que, lorsque la capacité On-Demand cible totale dépasse le nombre de réservations de capacité non utilisées disponibles, la flotte utilise la stratégie d'allocation spécifiée pour sélectionner les pools 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 On-Demand instances

  • Nombre total targeted de réservations de capacité non utilisées : 6 (moins que la capacité On-Demand cible de 10 On-Demand instances de la flotte)

  • 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

  • On-Demand stratégie d'allocation : lowest-price (Lorsque le nombre de réservations de capacité inutilisées est inférieur à la capacité On-Demand cible, la flotte détermine les pools dans lesquels lancer la On-Demand capacité restante en fonction de la stratégie On-Demand d'allocation.)

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

Étape 1 : Créer des réservations de capacité

Utilisation de la commande create-reservation-capacity (créer une réservation de capacité) pour créer les réservations de capacité, trois pourus-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é

Utilisation de resource-groups et du service create-group (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éservations de capacité pour réserver la On-Demand capacité de la flotte EC2.

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é

Utilisation de resource-groups et du service group-resources (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 On-Demand de capacité par leur ARN.

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

Utilisez le resource-groups et le service list-group-resources (Listes-groupe-ressources) pour éventuellement décrire le groupe de ressources et 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

Utilisation de la commande create-launch-template (créer un modèle de lancement) 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

Utilisez la commande describe-launch-template-versions pour décrire éventuellement le modèle de lancement afin d’en visualiser la 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

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 On-Demand d'allocation estlowest-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 d'abord utilisées pour lancer 6 On-Demand instances comme suit :

    • 3 On-Demand instances sont lancées dans les 3 réservations c5.xlarge targeted de capacité dans us-east-1a

    • 3 On-Demand instances sont lancées dans les 3 réservations c5.xlarge targeted de capacité dans us-east-1b

  • Pour atteindre la capacité cible, 4 On-Demand instances supplémentaires sont lancées à On-Demand capacité normale conformément à la stratégie On-Demand d'allocation, qui est présentée lowest-price dans cet exemple. Cependant, comme le prix des pools est le même (parce que le prix est par région et non par zone de disponibilité), la flotte lance les 4 On-Demand instances restantes dans l'un des pools.

(Facultatif) Étape 8 : Afficher le nombre de réservations de capacité non utilisées restantes

Une fois la flotte lancée, vous pouvez exécuter describe-capacity-reservations (décrire les réservations de capacité) pour voir combien il reste de réservations de capacité inutilisés. 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 }