Réservez des capacités dans des zones de disponibilité spécifiques avec des réservations de capacité - Amazon EC2 Auto Scaling

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.

Réservez des capacités dans des zones de disponibilité spécifiques avec des réservations de capacité

La réserve de capacité à la demande d’Amazon EC2 vous permet de réserver de la capacité de calcul dans une zone de disponibilité spécifique. Pour commencer à utiliser des réserves de capacité, vous devez créer une réserve de capacité dans une zone de disponibilité spécifique. Vous pouvez ensuite lancer des instances dans la capacité réservée, afficher son utilisation de capacité en temps réel, et augmenter ou diminuer ses capacités en fonction de vos besoins.

Les réserves de capacité sont configurées comme open ou targeted. Si la réserve de capacité est open, toutes les nouvelles instances et les instances existantes dont les attributs correspondent s’exécutent automatiquement dans la capacité de la Réservation de capacité. Si la réserve de capacité est targeted, les instances doivent la cibler spécifiquement pour s’exécuter dans la capacité réservée.

Cette rubrique indique comment créer un groupe Auto Scaling qui lance des instances à la demande dans les réserves de capacité targeted. Cela vous permet de mieux contrôler le moment où vous devez utiliser des réserves de capacité spécifiques.

Les étapes de base sont les suivantes :

  1. Créez des réserves de capacité dans plusieurs zones de disponibilité ayant le même type d’instance, la même plateforme et le même nombre d’instances.

  2. Réservations de capacité de groupe à l'aide de AWS Resource Groups.

  3. Créez un groupe Auto Scaling avec un modèle de lancement qui cible le groupe de ressources, en utilisant les mêmes zones de disponibilité que les réserves de capacité.

Étape 1 : créer des réserves de capacité

La première étape consiste à créer une réserve de capacité dans chaque zone de disponibilité dans laquelle votre groupe Auto Scaling sera déployé.

Note

Vous ne pouvez créer des réserves targeted que lorsque vous créez les réserves de capacité pour la première fois.

Console
Pour créer vos réserves de capacité
  1. Ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/.

  2. Choisissez Réserves de capacité, puis Créer Réserve de capacité.

  3. Sur la page Créer une réserve de capacité, faites attention aux paramètres suivants dans la section Détails de l’instance. Le type d’instance, la plateforme et la zone de disponibilité des instances que vous lancez doivent correspondre au type d’instance, à la plateforme et à la zone de disponibilité que vous spécifiez ici ou la réserve de capacité ne s’applique pas.

    1. Pour le Type d’instance, choisissez le type d’instance à lancer dans la capacité réservée.

    2. Pour la Plateforme, choisissez le système d’exploitation pour vos instances.

    3. Pour la zone de disponibilité, choisissez la première zone de disponibilité dans laquelle vous souhaitez réserver de la capacité.

    4. Pour la capacité totale, choisissez le nombre d’instances dont vous avez besoin. Calculez le nombre total d’instances dont vous avez besoin pour votre groupe Auto Scaling, divisé par le nombre de zones de disponibilité que vous prévoyez d’utiliser.

  4. Dans Détails de réserve de capacité, pour l’élément La réservation de capacité se termine, choisissez l’une des options suivantes :

    • À une heure précise — Annulez automatiquement la réservation de capacité à la date et à l'heure spécifiées.

    • Manuellement : réservez la capacité jusqu'à ce que vous l'annuliez explicitement.

  5. Pour l’éligibilité des instances, choisissez Ciblée : uniquement les instances qui ciblent la réserve de capacité.

  6. (Facultatif) Pour les balises, indiquez les balises à associer à la réserve de capacité.

  7. Choisissez Créer.

  8. Notez l’identifiant de la réserve de capacité qui vient d’être créée. Vous en aurez besoin pour configurer le groupe de réserves de capacité.

Répétez cette procédure pour chaque zone de disponibilité que vous souhaitez activer pour votre groupe Auto Scaling, en modifiant uniquement la valeur de l’option Zone de disponibilité.

AWS CLI
Pour créer vos réserves de capacité

Utilisez la create-capacity-reservationcommande suivante pour créer les réservations de capacité. Remplacez les valeurs d’exemple de --availability-zone, --instance-type, --instance-platform, et --instance-count.

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éserve de capacité en résultant

{ "CapacityReservation": { "CapacityReservationId": "cr-1234567890abcdef1", "OwnerId": "123456789012", "CapacityReservationArn": "arn:aws:ec2:us-east-1:123456789012:capacity-reservation/cr-1234567890abcdef1", "InstanceType": "c5.xlarge", "InstancePlatform": "Linux/UNIX", "AvailabilityZone": "us-east-1a", "Tenancy": "default", "TotalInstanceCount": 3, "AvailableInstanceCount": 3, "EbsOptimized": false, "EphemeralStorage": false, "State": "active", "StartDate": "2023-07-26T21:36:14+00:00", "EndDateType": "unlimited", "InstanceMatchCriteria": "targeted", "CreateDate": "2023-07-26T21:36:14+00:00" } }

Notez l’identifiant de la réserve de capacité qui vient d’être créée. Vous en aurez besoin pour configurer le groupe de réserves de capacité.

Répétez cette commande pour chaque zone de disponibilité que vous souhaitez activer pour votre groupe Auto Scaling, en modifiant uniquement la valeur de l’option --availability-zone.

Étape 2 : créer un groupe de réserve de capacité

Lorsque vous avez fini de créer les réservations de capacité, vous pouvez les regrouper à l'aide du service AWS Resource Groups. AWS Resource Groups prend en charge plusieurs types de groupes pour différents usages. Amazon EC2 utilise un groupe spécialisé, connu sous le nom de groupe de ressources lié à un service, pour cibler un groupe de réserves de capacité. Pour interagir avec ce groupe de ressources lié à un service, vous pouvez utiliser le AWS CLI ou un kit SDK, mais pas la console. Pour plus d’informations sur les groupes de ressources liés à un service, consultez la section Configurations de service pour les groupes de ressources dans le Guide de l’utilisateur sur les groupes de ressources AWS .

Pour créer un groupe de réservation de capacité à l'aide du AWS CLI

Utilisez la commande create-group pour créer un groupe de ressources qui ne peut contenir que des réserves de capacité. Dans cet exemple, le groupe de ressources est nommé my-cr-group.

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"]}]}'

Voici un exemple de réponse.

{ "Group": { "GroupArn": "arn:aws:resource-groups:us-east-1:123456789012:group/my-cr-group", "Name": "my-cr-group" }, "GroupConfiguration": { "Configuration": [ { "Type": "AWS::EC2::CapacityReservationPool" }, { "Type": "AWS::ResourceGroups::Generic", "Parameters": [ { "Name": "allowed-resource-types", "Values": [ "AWS::EC2::CapacityReservation" ] } ] } ], "Status": "UPDATE_COMPLETE" } }

Notez L’ARN du groupe de ressources. Vous en aurez besoin pour configurer le modèle de lancement de votre groupe Auto Scaling.

Pour associer vos réserves de capacité au nouveau groupe à l’aide du AWS CLI

Utilisez la commande group-resources suivante pour associer les réserves de capacité au groupe de réserves de capacité nouvellement créé. Pour l’option --resource-arns, indiquez les réserves de capacité à l’aide de leurs ARN. Construisez les ARN à l’aide de la région appropriée, de votre identifiant de compte et des identifiants de réserve que vous avez notés précédemment. Dans cet exemple, les réserves avec les identifiants cr-1234567890abcdef1 et cr-54321abcdef567890 sont regroupées dans le groupe intitulé my-cr-group.

aws resource-groups group-resources \ --group my-cr-group \ --resource-arns \ arn:aws:ec2:region:account-id:capacity-reservation/cr-1234567890abcdef1 \ arn:aws:ec2:region:account-id:capacity-reservation/cr-54321abcdef567890

Voici un exemple de réponse.

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

Pour plus d’informations sur la modification ou la suppression du groupe de ressources, consultez le Guide de référence d’API de groupes de ressources AWS.

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

Console
Pour créer un modèle de lancement
  1. Ouvrez la console Amazon EC2 à l'adresse https://console.aws.amazon.com/ec2/.

  2. Dans le volet de navigation, sous Instances, choisissez Modèles de lancement.

  3. Choisissez Create launch template (Créer un modèle de lancement). Saisissez un nom et une description pour la version initiale du modèle de lancement.

  4. Sous Auto Scaling guidance (Guide Auto Scaling), activez la case à cocher.

  5. Créez le modèle de lancement. Choisissez une AMI et un type d’instance qui correspond aux réserves de capacité que vous prévoyez d’utiliser, et éventuellement, une paire de clés, un ou plusieurs groupes de sécurité, et des volumes EBS ou des volumes de stockage d’instances supplémentaires pour vos instances.

  6. Développez la section Détails avancés et procédez comme suit :

    1. Pour la réserve de capacité, choisissez Cibler par groupe.

    2. Pour la Réserve de capacité - Cibler par groupe, choisissez le groupe de réserves de capacité que vous avez créé dans la section précédente, puis cliquez sur Enregistrer.

  7. Choisissez Create launch template (Créer un modèle de lancement).

  8. Sur la page de confirmation, choisissez Create Auto Scaling group (Créer un groupe Auto Scaling).

AWS CLI
Pour créer un modèle de lancement

Utilisez la create-launch-templatecommande suivante pour créer un modèle de lancement qui indique que la réservation de capacité cible un groupe de ressources spécifique. Remplacez la valeur d’exemple de --launch-template-name. Remplacez c5.xlarge par le type d’instance que vous avez utilisé dans la réserve de capacité et ami-0123456789EXAMPLE par l’identifiant de l’AMI que vous souhaitez utiliser. Remplacez arn:aws:resource-groups:region:account-id:group/my-cr-group par l’ARN du groupe de ressources que vous avez créé au début de la section précédente.

aws ec2 create-launch-template \ --launch-template-name my-launch-template \ --launch-template-data \ '{"InstanceType": "c5.xlarge", "ImageId": "ami-0123456789EXAMPLE", "CapacityReservationSpecification": {"CapacityReservationTarget": { "CapacityReservationResourceGroupArn": "arn:aws:resource-groups:region:account-id:group/my-cr-group" } } }'

Voici un exemple de réponse.

{ "LaunchTemplate": { "LaunchTemplateId": "lt-0dd77bd41dEXAMPLE", "LaunchTemplateName": "my-launch-template", "CreateTime": "2023-07-26T21:42:48+00:00", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }

Étape 4 : créer un groupe Auto Scaling

Console

Créez votre groupe Auto Scaling comme d’habitude, mais lorsque vous choisissez vos sous-réseaux VPC, sélectionnez un sous-réseau dans chaque zone de disponibilité qui correspond aux réserves de capacité targeted que vous avez créées. Ensuite, lorsque votre groupe Auto Scaling lance une instance à la demande dans l’une de ces zones de disponibilité, l’instance est exécutée dans la capacité réservée pour cette zone de disponibilité. Si le groupe de ressources n’a plus de réserves de capacité avant que la capacité souhaitée ne soit atteinte, nous lançons tout ce qui dépasse la capacité réservée en tant que capacité à la demande normale.

Pour créer un simple groupe Auto Scaling
  1. Ouvrez la console Amazon EC2 à l’adresse https://console.aws.amazon.com/ec2/ et choisissez Groupes Auto Scaling dans le panneau de navigation.

  2. Dans la barre de navigation en haut de l'écran, choisissez le même Région AWS que celui que vous avez utilisé lors de la création du modèle de lancement.

  3. Choisissez Créer un groupe Auto Scaling.

  4. Dans la page Choisir un modèle de lancement ou une configuration, dans Nom du groupe Auto Scaling, entrez un nom pour le groupe Auto Scaling.

  5. Dans Launch template (Modèle de lancement), choisissez un modèle de lancement existant.

  6. Pour Version du modèle de lancement, indiquez si le groupe Auto Scaling utilise la version par défaut, la version la plus récente ou une version spécifique du modèle de lancement lors de l'évolutivité horizontale.

  7. Sur la page Choisir les options de lancement, ignorez la section Exigences relatives au type d’instance pour utiliser le type d’instance EC2 indiqué dans le modèle de lancement.

  8. Sous Network (Réseau), pour VPC, choisissez un VPC. Le groupe Auto Scaling doit être créé dans le même VPC que le groupe de sécurité que vous avez spécifié dans votre modèle de lancement. Si vous n’avez pas indiqué de groupe de sécurité dans votre modèle de lancement, vous pouvez choisir un VPC qui dispose d’un sous-réseau dans les mêmes zones de disponibilité que vos réserves de capacité.

  9. Pour les des sous-réseaux et les sous-réseaux, choisissez les sous-réseaux de chaque zone de disponibilité que vous souhaitez inclure, en fonction des zones de disponibilité dans lesquelles se trouvent vos réserves de capacité.

  10. Choisissez Next (Suivant) deux fois.

  11. Sur la page Configurer la taille du groupe et les politiques de mise à l’échelle, pour la capacité souhaitée, saisissez le nombre initial d’instances à lancer. Lorsque vous modifiez ce nombre pour une valeur en dehors des limites de capacité minimale ou maximale, vous devez mettre à jour les valeurs de Minimum capacity (Capacité minimale) ou Maximum capacity (Capacité maximale). Pour plus d’informations, consultez Définissez des limites de mise à l’échelle pour votre groupe Auto Scaling.

  12. Choisissez Skip to review (Passer à la révision).

  13. Sur la page Vérifier, sélectionnez Créer un groupe Auto Scaling.

AWS CLI
Pour créer un simple groupe Auto Scaling

Utilisez la create-auto-scaling-groupcommande suivante et spécifiez le nom et la version de votre modèle de lancement comme valeur de l'--launch-templateoption. Remplacez les valeurs d’exemple de --auto-scaling-group-name, --min-size, --max-size, et --vpc-zone-identifier.

Pour l’option --availability-zones, indiquez les zones de disponibilité pour lesquelles vous avez créé des réserves de capacité. Par exemple, si vos réserves de capacité indiquent les zones de disponibilité us-east-1a et us-east-1b, vous devez créer votre groupe Auto Scaling dans les mêmes zones. Ensuite, lorsque votre groupe Auto Scaling lance une instance à la demande dans l’une de ces zones de disponibilité, l’instance est exécutée dans la capacité réservée pour cette zone de disponibilité. Si le groupe de ressources n’a plus de réserves de capacité avant que la capacité souhaitée ne soit atteinte, nous lançons tout ce qui dépasse la capacité réservée en tant que capacité à la demande normale.

aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name my-asg \ --launch-template LaunchTemplateName=my-launch-template,Version='1' \ --min-size 6 \ --max-size 6 \ --vpc-zone-identifier "subnet-5f46ec3b,subnet-0ecac448" \ --availability-zones us-east-1a us-east-1b

Pour un exemple d'implémentation, consultez le AWS CloudFormation modèle dans le GitHub référentiel d' AWS exemples suivant : https://github.com/aws-samples/ aws-auto-scaling-backed - by-on-demand-capacity -reservations/.

Les rubriques connexes suivantes peuvent vous être utiles pour en savoir plus sur les réserves de capacité.