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
instantsont prises en charge lors de l'utilisationReservedCapacityOptions. -
Vous devez spécifier explicitement les types de réservation de capacité à cibler dans la
ReservationTypesliste. 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) pourp5.48xlargeus-east-1a -
Un ODCR (
cr-abcdef1234567890a) pourp4d.48xlargeus-east-1b -
Un bloc de capacité (
cr-0123456789abcdef0) pourp5.48xlargeus-east-1a -
Une réservation de capacité interruptible (
cr-9876543210fedcba9) pourp5.48xlargeinus-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-namemy-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 sonton-demand-capacity-reservation,capacity-blocketinterruptible-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 pourprioritizedsuivre l'ordre de remplacement de votre type d'instance. -
ReservedCapacityFallbackOptions— ParamétrezMarketTypes["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 :
-
ODCR :
p5.48xlargeréservations d'abord (type d'instance ayant la priorité la plus élevée), puisp4d.48xlargeréservations. Dans chaque type d'instance, s'il existe plusieurs ODCR, l'un d'eux est sélectionné au hasard. -
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. -
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. -
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 dans
OnDemandOptions.
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é.