View a markdown version of this page

Lanzamiento de instancias con aprovisionamiento sincrónico - Amazon EC2 Auto Scaling

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Lanzamiento de instancias con aprovisionamiento sincrónico

Puede usar la LaunchInstances API para lanzar sincrónicamente un número específico de instancias en su grupo de Auto Scaling. La API lanza las instancias en la zona de disponibilidad o la subred que especifique y devuelve inmediatamente la información de la instancia IDs o del error.

Requisitos previos

Para poder usar la LaunchInstances API, debes tener:

  • Un grupo de Auto Scaling que usa una plantilla de lanzamiento (no se admiten las configuraciones de lanzamiento)

  • Debe tener permisos para las siguientes acciones de IAM:

    • autoscaling:LaunchInstances

    • ec2:CreateFleet

    • ec2:DescribeLaunchTemplateVersions

Lance instancias con aprovisionamiento sincrónico

Puede lanzar instancias con aprovisionamiento sincrónico a través de. AWS CLI

AWS CLI

Para lanzar instancias con aprovisionamiento sincrónico:

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]

Ejemplos

Lanzar instancias en una zona de disponibilidad específica

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

Lanzar instancias en una subred específica

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

Gestionar las respuestas

Ejemplo de una respuesta exitosa:

{ "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": [] }

Ejemplo de una respuesta con errores

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

Gestione los errores de lanzamiento y los reintentos

Cuando la LaunchInstances API detecte errores, puedes implementar estrategias de reintentos utilizando los tokens de idempotencia y las políticas de reintentos adecuadas.

Puedes usar el parámetro client-token para reintentar las solicitudes. También puedes usar las siguientes estrategias de reintento:

  • RetryStrategy: none(predeterminado): si la llamada a la API falla, la capacidad deseada del grupo de Auto Scaling permanece sin cambios y no se produce ningún reintento automático.

  • RetryStrategy: retry-with-group-configuration- Si la llamada a la API falla, la capacidad deseada del grupo de Auto Scaling aumentará en la cantidad solicitada y Auto Scaling volverá a intentar lanzar instancias automáticamente utilizando la configuración y los procesos estándar del grupo.

El comportamiento de los reintentos RetryStrategy: retry-with-group-configuration depende del tipo de error:

  • Errores de validación: la capacidad deseada no se ha incrementado porque la operación no puede continuar. Por ejemplo, parámetros no válidos o configuraciones no compatibles.

  • Errores de capacidad: se ha aumentado la capacidad deseada y Auto Scaling volverá a intentar lanzar las instancias de forma asíncrona mediante los procesos de escalado normales del grupo.

Uso de fichas de cliente para la idempotencia

El client-token parámetro garantiza las operaciones idempotentes y permite reintentos seguros de las solicitudes de lanzamiento.

Comportamientos clave:

  • Los tokens de los clientes tienen una vida útil de 8 horas a partir de la solicitud inicial

  • Al volver a intentarlo con el mismo token de cliente en un plazo de 8 horas, se devuelve la respuesta en caché en lugar de lanzar nuevas instancias

  • Transcurridas 8 horas, el mismo token de cliente iniciará una nueva operación de lanzamiento