Uso de Capacity Blocks para cargas de trabajo de machine learning - Amazon EC2 Auto Scaling

Uso de Capacity Blocks para cargas de trabajo de machine learning

Capacity Blocks lo ayuda a reservar instancias de GPU que tienen una alta demanda para el futuro a fin de respaldar sus cargas de trabajo de machine learning (ML) de corta duración.

Para obtener información general sobre Capacity Blocks y su funcionamiento, consulte Capacity Blocks para ML en la Guía del usuario de Amazon EC2.

Para comenzar a utilizar Capacity Blocks, cree una reserva de capacidad en una zona de disponibilidad específica. Los Capacity Blocks se entregan como reservas de capacidad de targeted en una única zona de disponibilidad. Al crear la plantilla de inicialización, especifique el ID de reserva y el tipo de instancia del bloque de capacidad. A continuación, actualice su grupo de escalado automático para usar la plantilla de lanzamiento que creó y la zona de disponibilidad del bloque de capacidad. Cuando comience su reserva de bloque de capacidad, utilice el escalado programado para lanzar la misma cantidad de instancias que su reserva de bloque de capacidad.

importante

Los Capacity Blocks solo están disponibles para determinados tipos de instancias de Amazon EC2 y Regiones de AWS. Para obtener más información, consulte Requisitos previos en la Guía del usuario de Amazon EC2.

Directrices operativas

A continuación, se detallan las directrices operativas básicas que se deben seguir al utilizar un bloque de capacidad con un grupo de escalado automático.

  • Reduzca horizontalmente su grupo de escalado automático a cero más de 30 minutos antes de la hora de finalización de la reserva del bloque de capacidad. Amazon EC2 terminará todas las instancias que sigan ejecutándose 30 minutos antes de la hora de finalización del bloque de capacidad.

  • Le recomendamos que utilice el escalado programado para escalar horizontalmente (añadir instancias) y reducir horizontalmente (eliminar instancias) en los momentos de reserva adecuados. Para obtener más información, consulte Escalado programado para Amazon EC2 Auto Scaling.

  • Añada enlaces de ciclo de vida según sea necesario para cerrar correctamente la aplicación dentro de las instancias al reducir horizontalmente. Deje tiempo suficiente para que se complete la acción del ciclo de vida antes de que Amazon EC2 comience a terminar sus instancias por la fuerza 30 minutos antes de la hora de finalización de la reserva de bloques de capacidad. Para obtener más información, consulte Enlaces de ciclo de vida de Amazon EC2 Auto Scaling.

  • Asegúrese de que el grupo de escalado automático apunte a la versión correcta de la plantilla de lanzamiento durante toda la reserva. Recomendamos apuntar a una versión específica de la plantilla de lanzamiento en lugar de la versión $Default o $Latest.

nota

Si deja una instancia de bloque de capacidad en ejecución hasta el final de la reserva y Amazon EC2 la recupera, las actividades de escalado de su grupo de escalado automático indican que era «taken out of service in response to an EC2 health check that indicated it had been terminated or stopped», aunque se haya reclamado deliberadamente al final del bloque de capacidad. Del mismo modo, Amazon EC2 Auto Scaling intentará reemplazar la instancia de la misma manera que lo hace con cualquier instancia que no supere una comprobación de estado. Para obtener más información, consulte Comprobaciones de estado para instancias en un grupo de escalado automático.

Especificación de un bloque de capacidad en la plantilla de lanzamiento

Para crear una plantilla de inicialización que se dirija a un bloque de capacidad específico para su grupo de escalado automático, use uno de los siguientes métodos:

Console
Especificación de un bloque de capacidad en la plantilla de lanzamiento (consola)
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En la barra de navegación superior, seleccione la Región de AWS en la que creó su bloque de capacidad.

  3. En el panel de navegación, en Instances, seleccione Launch Templates.

  4. Seleccione Crear plantilla de lanzamiento y cree la plantilla de lanzamiento. Incluya el ID de la Imagen de máquina de Amazon (AMI), el tipo de instancia y cualquier otra configuración de plantilla de lanzamiento, según sea necesario.

  5. Expanda la sección Detalles avanzados para ver la configuración avanzada.

  6. En Opción de compra, elija Bloques de capacidad.

  7. En Reserva de capacidad, elija Destino por ID y, a continuación, en Reserva de capacidad - Destino por ID, elija el ID de reserva de capacidad de un bloque de capacidad existente.

  8. Cuando haya terminado, seleccione Crear plantilla de lanzamiento.

    Para obtener ayuda para crear un grupo de escalado automático con una plantilla de lanzamiento, consulte Creación de un grupo de Auto Scaling mediante una plantilla de lanzamiento.

AWS CLI
Especificación de un bloque de capacidad en la plantilla de lanzamiento (AWS CLI)

Utilice el siguiente comando create-launch-template para crear una plantilla de lanzamiento que especifique un ID de reserva de bloque de capacidad existente. Reemplace cada marcador de posición de entrada del usuario con información propia.

aws ec2 create-launch-template --launch-template-name my-template-for-capacity-block \ --version-description AutoScalingVersion1 --region us-east-2 \ --launch-template-data file://config.json
sugerencia

Si este comando produce un error, asegúrese de haber actualizado la AWS CLI localmente a la versión más reciente.

Contenido de config.json.

{ "ImageId": "ami-04d5cc9b88example", "InstanceType": "p4d.24xlarge", "SecurityGroupIds": [ "sg-903004f88example" ], "KeyName": "MyKeyPair", "InstanceMarketOptions": { "MarketType": "capacity-block" }, "CapacityReservationSpecification": { "CapacityReservationTarget": { "CapacityReservationId": "cr-02168da1478b509e0" } } }

A continuación, se muestra un ejemplo del resultado.

{ "LaunchTemplate": { "LaunchTemplateId": "lt-068f72b724example", "LaunchTemplateName": "my-template-for-capacity-block", "CreateTime": "2023-10-27T15:12:44.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }

Puede usar el siguiente comando describe-launch-template-versions para verificar el ID de reserva del bloque de capacidad asociado a la plantilla de lanzamiento.

aws ec2 describe-launch-template-versions --launch-template-names my-template-for-capacity-block \ --region us-east-2

A continuación, se muestra un resultado de ejemplo para una plantilla de lanzamiento que especifica una reserva de bloque de capacidad.

{ "LaunchTemplateVersions": [ { "LaunchTemplateId": "lt-068f72b724example", "LaunchTemplateName": "my-template-for-capacity-block", "VersionNumber": 1, "CreateTime": "2023-10-27T15:12:44.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersion": true, "LaunchTemplateData": { "ImageId": "ami-04d5cc9b88example", "InstanceType": "p5.48xlarge", "SecurityGroupIds": [ "sg-903004f88example" ], "KeyName": "MyKeyPair", "InstanceMarketOptions": { "MarketType": "capacity-block" }, "CapacityReservationSpecification": { "CapacityReservationTarget": { "CapacityReservationId": "cr-02168da1478b509e0" } } } } ] }

Limitaciones

  • La compatibilidad con Capacity Blocks solo está disponible si su grupo de escalado automático tiene una configuración compatible. No se admiten grupos de instancias mixtas ni grupos en caliente.

  • Solo puede dirigirse a un bloque de capacidad a la vez.

  • Para conocer los requisitos previos y las recomendaciones para el uso de instancias P5, consulte Introducción a las instancias P5 en la Guía del usuario de Amazon EC2.

  • Amazon EKS admite el uso de Capacity Blocks para complementar sus cargas de trabajo de machine learning (ML) de corta duración en clústeres de Amazon EKS. Para obtener más información, consulte Capacity Blocks para ML en la Guía del usuario de Amazon EKS.

  • Puede usar Capacity Blocks con los tipos de instancias y regiones admitidos. Sin embargo, las reservas de capacidad bajo demanda ofrecen flexibilidad para reservar capacidad para otros tipos de instancias y regiones. Para ver un tutorial que muestra cómo utilizar la opción de reserva de capacidad bajo demanda, consulte Capacidad reservada en zonas de disponibilidad específicas con reserva de capacidad .