View a markdown version of this page

Lancement d'instances avec provisionnement synchrone - 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.

Lancement d'instances avec provisionnement synchrone

Vous pouvez utiliser l' LaunchInstances API pour lancer de manière synchrone un nombre spécifique d'instances dans votre groupe Auto Scaling. L'API lance des instances dans la zone de disponibilité ou le sous-réseau que vous spécifiez et renvoie immédiatement les informations relatives à l'instance IDs ou à l'erreur.

Conditions préalables

Avant de pouvoir utiliser l' LaunchInstances API, vous devez disposer des éléments suivants :

  • Un groupe Auto Scaling qui utilise un modèle de lancement (les configurations de lancement ne sont pas prises en charge)

  • Vous devez disposer d'autorisations pour les actions IAM suivantes :

    • autoscaling:LaunchInstances

    • ec2:CreateFleet

    • ec2:DescribeLaunchTemplateVersions

Lancer des instances avec un provisionnement synchrone

Vous pouvez lancer des instances avec un provisionnement synchrone via le. AWS CLI

AWS CLI

Pour lancer des instances avec un provisionnement synchrone :

aws autoscaling launch-instances \ --auto-scaling-group-name group-name \ --requested-capacity number \ [--availability-zones zone-name] \ [--subnet-ids subnet-id] \ [--availability-zone-ids zone-id] \ [--retry-strategy none|retry-with-group-configuration] \ [--client-token token]

Exemples

Lancement d'instances dans une zone de disponibilité spécifique

aws autoscaling launch-instances \ --auto-scaling-group-name my-asg \ --requested-capacity 3 \ --availability-zones us-east-1a \ --retry-strategy retry-with-group-configuration

Lancement d'instances dans un sous-réseau spécifique

aws autoscaling launch-instances \ --auto-scaling-group-name my-asg \ --requested-capacity 2 \ --subnet-ids subnet-12345678 \ --retry-strategy none \ --client-token my-unique-token-123

Gestion des réponses

Exemple de réponse réussie :

{ "AutoScalingGroupName": "my-asg", "ClientToken": "my-unique-token-123", "Instances": [ { "InstanceType": "m5.xlarge", "AvailabilityZone": "us-east-1a", "AvailabilityZoneId": "use1-az1", "SubnetId": "subnet-12345678", "MarketType": "OnDemand", "InstanceIds": ["i-0123456789abcdef0", "i-0fedcba9876543210"] } ], "Errors": [] }

Exemple de réponse comportant des erreurs

{ "AutoScalingGroupName": "my-asg", "ClientToken": "my-unique-token-123", "Instances": [], "Errors": [ { "InstanceType": "m5.large", "AvailabilityZone": "us-east-1a", "AvailabilityZoneId": "use1-az1", "SubnetId": "subnet-12345678", "MarketType": "OnDemand", "ErrorCode": "InsufficientInstanceCapacity", "ErrorMessage": "There is not enough capacity to fulfill your request for instance type 'm5.large' in 'us-east-1a'" } ] }

Gérer les échecs de lancement et les nouvelles tentatives

Lorsque l' LaunchInstances API rencontre des échecs, vous pouvez mettre en œuvre des stratégies de nouvelle tentative à l'aide de jetons d'idempotencie et de politiques de nouvelle tentative appropriées.

Vous pouvez utiliser le paramètre client-token pour réessayer les demandes. Vous pouvez également utiliser les stratégies de nouvelle tentative suivantes :

  • RetryStrategy: none(par défaut) - Si l'appel d'API échoue, la capacité souhaitée du groupe Auto Scaling reste inchangée et aucune nouvelle tentative automatique n'est effectuée.

  • RetryStrategy: retry-with-group-configuration- Si l'appel d'API échoue, la capacité souhaitée du groupe Auto Scaling est augmentée du montant demandé, et Auto Scaling réessaiera automatiquement de lancer des instances en utilisant la configuration et les processus standard du groupe.

Le comportement des nouvelles tentatives RetryStrategy: retry-with-group-configuration dépend du type d'échec :

  • Erreurs de validation : la capacité souhaitée n'est pas augmentée car l'opération ne peut pas se poursuivre. Par exemple, des paramètres non valides ou des configurations non prises en charge.

  • Erreurs de capacité : la capacité souhaitée est augmentée et Auto Scaling réessaiera de lancer des instances de manière asynchrone en utilisant les processus de dimensionnement habituels du groupe.

Utilisation de jetons clients pour l'idempuissance

Le client-token paramètre garantit des opérations idempotentes et permet de réessayer en toute sécurité les demandes de lancement.

Comportements clés :

  • Les jetons clients ont une durée de vie de 8 heures à compter de la demande initiale

  • Une nouvelle tentative avec le même jeton client dans les 8 heures renvoie la réponse mise en cache au lieu de lancer de nouvelles instances

  • Après 8 heures, le même jeton client lancera une nouvelle opération de lancement