View a markdown version of this page

Tutoriel : configurer votre flotte EC2 pour lancer des instances dans plusieurs types de réservation de capacité à l'aide d'un groupe de ressources de réservation de capacité - 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 votre flotte EC2 pour lancer des instances dans plusieurs types de réservation de capacité à l'aide d'un groupe de ressources de réservation de capacité

Ce didacticiel explique les étapes à suivre pour configurer une flotte EC2 qui lance des instances sur plusieurs types de réservation de capacité (réservations de On-Demand capacité (ODCR), blocs de capacité pour le ML et réservations de capacité interruptibles, à l'aide d'un seul groupe de ressources de réservation de capacité.

Vous allez apprendre à créer un groupe de ressources de réservation de capacité contenant différents types de réservation de capacité, à configurer votre flotte EC2 pour hiérarchiser les types de réservation de capacité dans un ordre spécifique, et éventuellement à revenir à la On-Demand capacité lorsque la capacité réservée est insuffisante pour atteindre votre objectif.

Considérations

  • Seules les demandes de type EC2 Fleet instant sont prises en charge lors de l'utilisationReservedCapacityOptions.

  • Vous devez spécifier explicitement les types de réservation de capacité à cibler dans la ReservationTypes liste. EC2 Fleet lance des instances uniquement dans les types de réservation de capacité que vous spécifiez.

  • ReservedCapacityOptionss'exclut mutuellement avecOnDemandOptions.CapacityReservationOptions. Vous ne pouvez pas utiliser les deux dans la même demande EC2 Fleet.

Ce didacticiel part du principe que vous disposez déjà des réservations de capacité suivantes sur votre compte :

  • Un ODCR (cr-1234567890abcdef1) pour p5.48xlarge us-east-1a

  • Un ODCR (cr-abcdef1234567890a) pour p4d.48xlarge us-east-1b

  • Un bloc de capacité (cr-0123456789abcdef0) pour p5.48xlarge us-east-1a

  • Une réservation de capacité interruptible (cr-9876543210fedcba9) pour p5.48xlarge inus-east-1a, partagée avec vous par un autre compte de votre organisation

Vérifier les autorisations

Avant de créer une flotte EC2, vérifiez que vous disposez d'un rôle IAM avec les autorisations requises. Pour de plus amples informations, veuillez consulter Conditions préalables requises flotte EC2.

Étape 1 : Création d'un groupe de ressources de réservation de capacité

Créez un groupe de ressources de réservation de capacité pour conserver les réservations de capacité ciblées par votre flotte EC2. Configurez le groupe de manière à ce qu'il accepte les réservations de capacité de n'importe quel type d'instance et de type de réservation de capacité, ce qui permet au groupe de détenir une combinaison de types de réservation de capacité. Pour obtenir des instructions détaillées, consultez la section Groupes de réservation de capacité.

Note

Lorsque vous créez le groupe, ne spécifiez pas les reservation-type paramètres instance-type ou dans la AWS::EC2::CapacityReservationPool configuration. L'omission de ces paramètres permet au groupe d'accepter les réservations de capacité de n'importe quel type d'instance et de type de réservation de capacité.

Étape 2 : ajouter des réservations de capacité au groupe

Ajoutez vos réservations de capacité au groupe de ressources sur les réservations de capacité. Vous pouvez ajouter n'importe quelle combinaison d'ODCR, de blocs de capacité pour le ML, de réservations de capacité interruptibles et UltraServer de blocs de capacité. Pour ce didacticiel, ajoutez les quatre réservations de capacité répertoriées au début de ce didacticiel. Pour obtenir des instructions détaillées, consultez la section Groupes de réservation de capacité.

Étape 3 : créer un modèle de lancement

Utilisez la commande create-launch-template pour créer un modèle de lancement qui cible le groupe de ressources Capacity Reservation. Lorsque vous l'utilisez ReservedCapacityOptions dans la configuration de votre flotte EC2, vous n'avez pas besoin d'en définir un MarketType dans le modèle de lancement. EC2 Fleet le définit automatiquement pour chaque type de réservation de capacité.

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

Étape 4 : Création d'une flotte EC2

Créez une flotte EC2 qui cible plusieurs types de réservation de capacité dans votre groupe de ressources de réservation de capacité. La configuration clé est ReservedCapacityOptions la suivante :

  • ReservationTypes— Une liste ordonnée des types de réservation de capacité à cibler. EC2 Fleet utilise les types dans cet ordre. Les valeurs valides sont on-demand-capacity-reservation, capacity-block et interruptible-capacity-reservation.

  • AllocationStrategy— Comment les types d'instances sont classés par ordre de priorité au sein de chaque type de réservation de capacité. Définissez sur pour prioritized suivre l'ordre de remplacement de votre type d'instance.

  • ReservedCapacityFallbackOptions— Paramétrez MarketTypes ["on-demand"] pour lancer On-Demand les instances lorsque la capacité réservée est insuffisante. Si vous ne spécifiez pas d'options de repli, EC2 Fleet ne revient à aucun autre type de marché une fois que les types de réservation de capacité spécifiés sont épuisés.

Créez un fichier nommé config.json avec le contenu suivant. Dans l’exemple suivant, remplacez les identificateurs de ressources par vos propres identificateurs de ressources.

{ "LaunchTemplateConfigs": [ { "LaunchTemplateSpecification": { "LaunchTemplateName": "my-cr-resource-group-template", "Version": "1" }, "Overrides": [ { "InstanceType": "p5.48xlarge", "AvailabilityZone": "us-east-1a", "Priority": 1 }, { "InstanceType": "p4d.48xlarge", "AvailabilityZone": "us-east-1b", "Priority": 2 } ] } ], "TargetCapacitySpecification": { "TotalTargetCapacity": 100, "DefaultTargetCapacityType": "reserved-capacity" }, "ReservedCapacityOptions": { "ReservationTypes": ["on-demand-capacity-reservation", "capacity-block", "interruptible-capacity-reservation"], "ReservedCapacityFallbackOptions": { "MarketTypes": ["on-demand"] }, "AllocationStrategy": "prioritized" }, "Type": "instant" }

Utilisez la commande create-fleet pour lancer la flotte :

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

Pour de plus amples informations, veuillez consulter Créer une flotte EC2.

Comment EC2 Fleet résout les réservations de capacité

Sur la base de la configuration précédente, EC2 Fleet tente de lancer des instances dans l'ordre suivant :

  1. ODCR  : p5.48xlarge réservations d'abord (type d'instance ayant la priorité la plus élevée), puis p4d.48xlarge réservations. Dans chaque type d'instance, s'il existe plusieurs ODCR, l'un d'eux est sélectionné au hasard.

  2. Blocs de capacité — S'il ne reste aucune capacité disponible dans tous les ODCR, EC2 Fleet cible les blocs de capacité. p5.48xlargeréservations d'abordp4d.48xlarge, puis sélectionnées au hasard dans chaque type d'instance.

  3. Réservations de capacité interruptible — S'il ne reste aucune capacité disponible dans tous les blocs de capacité, EC2 Fleet cible les réservations de capacité interruptibles. p5.48xlargeréservations d'abordp4d.48xlarge, puis sélectionnées au hasard dans chaque type d'instance.

  4. On-Demand repli  : si la capacité réservée est insuffisante pour atteindre l'objectif de 100 instances, la capacité restante est lancée en tant qu' On-Demand instances. EC2 Fleet lance ces On-Demand instances conformément à la stratégie d'allocation que vous spécifiez dansOnDemandOptions.

Note

EC2 Fleet résout d'abord le type de réservation de capacité, puis le type d'instance au sein de chaque type de réservation de capacité. Chaque type de réservation de capacité est complètement épuisé avant que EC2 Fleet ne passe au type suivant dans la liste ordonnée.

(Facultatif) Étape 5 : vérification des propriétés de l'instance

Utilisez la commande describe-instances pour vérifier le type de réservation de capacité consommé par chaque instance. Les instances lancées par la flotte présentent les propriétés suivantes.

Propriété On-Demand Valeur de réservation de capacité Valeur du bloc de capacité Valeur de réservation de capacité interruptible On-Demand valeur
instance-lifecycle null capacity-block interruptible-capacity-reservation null
capacity-reservation-id Numéro de réservation de capacité consommé Numéro de réservation de capacité consommé Numéro de réservation de capacité consommé Absent
capacity-reservation-specification ARN du groupe ARN du groupe ARN du groupe Absent

Vous pouvez filtrer les instances par groupe de ressources de réservation de capacité à l'aide de la commande suivante :

aws ec2 describe-instances \ --filters "Name=capacity-reservation-specification.capacity-reservation-target.capacity-reservation-resource-group-arn,Values=arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-resource-group"

Nettoyage

Pour ne plus encourir de frais, mettez fin aux instances lorsqu'elles ne sont plus nécessaires. Notez que les instances lancées dans des blocs de capacité sont automatiquement résiliées à la fin de la réservation de blocs de capacité. Les instances lancées dans le cadre de réservations de capacité interruptibles sont automatiquement résiliées si le propriétaire de la capacité récupère la capacité.