

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.

# Reducción de la latencia de las aplicaciones con tiempos de arranque prolongados mediante grupos de calentamiento
<a name="ec2-auto-scaling-warm-pools"></a>

Un grupo de calentamiento le permite reducir la latencia de las aplicaciones que tienen tiempos de arranque excepcionalmente prolongados, por ejemplo, porque las instancias tienen que escribir cantidades masivas de datos en el disco. Con los grupos de calentamiento, ya no tiene que aprovisionar en exceso los grupos de Auto Scaling para administrar la latencia con el fin de mejorar el rendimiento de las aplicaciones. Para obtener más información, consulte la siguiente entrada del blog [Scaling your applications faster with EC2 Auto Scaling Warm Pools](https://aws.amazon.com/blogs/compute/scaling-your-applications-faster-with-ec2-auto-scaling-warm-pools/).

**importante**  
Crear un grupo de calentamiento cuando no es necesario puede generar costos innecesarios. Si el primer tiempo de arranque de la aplicación no causa problemas de latencia detectables, probablemente no sea necesario que use un grupo de calentamiento.

**Topics**
+ [Conceptos clave](#warm-pool-core-concepts)
+ [Requisitos previos](#warm-pool-prerequisites)
+ [Actualización de las instancias de un grupo en caliente](#update-warm-pool)
+ [Recursos relacionados](#warm-pools-related-resources)
+ [Limitaciones](#warm-pools-limitations)
+ [Uso de enlaces de ciclo de vida](warm-pool-instance-lifecycle.md)
+ [Creación de un grupo en caliente para un grupo de escalado automático](create-warm-pool.md)
+ [Visualización del estado de la comprobación de estado](warm-pools-health-checks-monitor-view-status.md)
+ [AWS CLI ejemplos de cómo trabajar con piscinas calientes](examples-warm-pools-aws-cli.md)

## Conceptos clave
<a name="warm-pool-core-concepts"></a>

Antes de empezar, familiarícese con los siguientes conceptos clave:

**Grupo de calentamiento**  
Un grupo de calentamiento es un grupo de instancias de EC2 inicializadas previamente que se encuentra junto a un grupo de escalado automático. Siempre que la aplicación tenga que escalarse horizontalmente, el grupo de escalado automático puede recurrir al grupo de calentamiento para satisfacer su nueva capacidad deseada. Esto ayuda a garantizar que las instancias estén listas para comenzar a atender rápidamente el tráfico de las aplicaciones, lo que acelera la respuesta a un evento de escalado horizontal. A medida que las instancias salgan del grupo de calentamiento, cuentan para alcanzar la capacidad deseada del grupo. Esto se conoce como *arranque en caliente*.   
Mientras las instancias se encuentran en el grupo de preparación, las políticas de escalado solo escalan horizontalmente si el valor de la métrica de las instancias con estado `InService` es mayor que el umbral superior de la alarma de la política de escalado (que es el mismo que la utilización de objetivo de una política de escalado de seguimiento de objetivo).

**Tamaño del grupo de calentamiento**  
De forma predeterminada, el tamaño del grupo de calentamiento se calcula como la diferencia entre la capacidad máxima del grupo de escalado automático y la capacidad deseada. Por ejemplo, si la capacidad deseada de su grupo de escalado automático es 6, y la capacidad máxima es 10, el tamaño del grupo de calentamiento será 4 cuando configure el grupo de calentamiento por primera vez y el grupo se inicialice.   
Para especificar la capacidad máxima del grupo de calentamiento por separado, utilice la opción de especificación personalizada (`MaxGroupPreparedCapacity`) y establezca un valor personalizado que sea mayor que la capacidad actual del grupo. Si especifica un valor personalizado, el tamaño del grupo de calentamiento se calcula como la diferencia entre el valor personalizado y la capacidad actual deseada del grupo. Por ejemplo, si la capacidad deseada de su grupo de escalado automático es 6, si la capacidad máxima es 20, y si el valor personalizado es 8, el tamaño del grupo de calentamiento será 2 cuando configure el grupo de calentamiento por primera vez y el grupo se inicialice.   
Es posible que solo necesite usar la especificación personalizada (`MaxGroupPreparedCapacity`) cuando trabaje con grupos de escalado automático grandes para administrar la rentabilidad de tener un grupo de calentamiento. Por ejemplo, un grupo de escalado automático con 1000 instancias, una capacidad máxima de 1500 (para proporcionar una capacidad adicional para picos de tráfico de emergencia), y un grupo de calentamiento de 100 instancias podría servirle para alcanzar sus objetivos mejor que mantener 500 instancias reservadas para el uso futuro dentro del grupo de calentamiento.

**Tamaño mínimo de grupo de calentamiento**  
Considere la opción de usar la configuración de tamaño mínimo (`MinSize`) para establecer de forma estática el número mínimo de instancias que se mantendrán en el grupo en caliente. No hay un tamaño mínimo establecido de manera predeterminada. La configuración `MinSize` es útil cuando se especifica `MaxGroupPreparedCapacity` para garantizar que se mantenga una cantidad mínima de instancias en el grupo en caliente, incluso cuando la capacidad deseada del grupo de escalado automático sea mayor que `MaxGroupPreparedCapacity`.

**Estado de la instancia del grupo de calentamiento**  
Puede mantener las instancias en el grupo de calentamiento en uno de tres estados: `Stopped`, `Running` o `Hibernated`. Mantener las instancias en un estado `Stopped` es una manera efectiva de minimizar los costos. Con las instancias detenidas, solo paga por los volúmenes que utiliza y las direcciones IP elásticas adjuntas a las instancias.  
También puede mantener las instancias en un estado `Hibernated` para detener instancias sin eliminar el contenido de la memoria (RAM). Cuando se hiberna una instancia, esto indica al sistema operativo que guarde el contenido de la RAM en el volumen raíz de Amazon EBS. Cuando se reinicia la instancia, el volumen raíz se restaura a su estado anterior y el contenido de la RAM se vuelve a cargar. Mientras las instancias están en hibernación, solo paga por los volúmenes de EBS, incluido el almacenamiento del contenido de la RAM y las direcciones IP elásticas adjuntas a las instancias.  
Mantener las instancias en un estado `Running` dentro del grupo de calentamiento también es posible, pero se desaconseja encarecidamente evitar incurrir en cargos innecesarios. Cuando las instancias se detienen o hibernan, ahorra el costo de las mismas instancias. Solo paga por las instancias cuando se están ejecutando.

**Enlaces de ciclo de vida**  
Los [enlaces de ciclo de vida](warm-pool-instance-lifecycle.md) se usan para poner instancias en estado de espera a fin de poder realizar acciones personalizadas en las instancias. Las acciones personalizadas se realizan a medida que se lanzan las instancias o antes de que finalicen.  
En la configuración de un grupo en caliente, los enlaces de ciclo de vida retrasan la detención o la hibernación de las instancias, así como su puesta en servicio, durante un evento de escalado horizontal hasta que hayan terminado de inicializarse. Si agrega un grupo de calentamiento al grupo de escalado automático sin un enlace de ciclo de vida, las instancias que tardan mucho tiempo en finalizar la inicialización se podrían detener o hibernar y, a continuación, poner en servicio durante un evento de escalado horizontal antes de que estén listas.

**Política de reutilización de instancias**  
De forma predeterminada, Amazon EC2 Auto Scaling termina las instancias cuando se escala el grupo de escalado automático. A continuación, lanza nuevas instancias en el grupo de calentamiento para reemplazar las instancias que se terminaron.   
Si desea devolver instancias al grupo de calentamiento, puede especificar una política de reutilización de instancias. Esto le permite reutilizar instancias que ya están configuradas para atender el tráfico de aplicaciones. Para asegurarse de que el grupo de calentamiento no esté sobreaprovisionado, Amazon EC2 Auto Scaling puede terminar instancias del grupo de calentamiento para reducir su tamaño cuando es mayor de lo necesario en función de su configuración. Al terminar instancias en el grupo de calentamiento, utiliza la [política de terminación predeterminada](ec2-auto-scaling-termination-policies.md#default-termination-policy) para elegir qué instancias terminará primero.   
Si desea hibernar instancias durante la reducción horizontal y hay instancias existentes en el grupo de escalado automático, deben cumplir los requisitos de hibernación de instancias. Si no lo hacen, cuando las instancias regresen al grupo de calentamiento, volverán a detenerse en lugar de hibernar.
Actualmente, solo puede especificar una política de reutilización de instancias mediante la AWS CLI o un SDK. Esta característica no está disponible desde la consola.

## Requisitos previos
<a name="warm-pool-prerequisites"></a>

Antes de crear un grupo en caliente para su grupo de escalado automático, decida cómo utilizará los enlaces de ciclo de vida para inicializar nuevas instancias con un estado inicial adecuado.

Para realizar acciones personalizadas en las instancias mientras están en estado de espera debido a un enlace de ciclo de vida, tiene dos opciones:
+ Para escenarios sencillos en los que desea ejecutar comandos en las instancias durante el lanzamiento, puede incluir un script de datos de usuario al crear una plantilla de lanzamiento o una configuración de lanzamiento para el grupo de escalado automático. Los scripts de datos de usuario son solo scripts de intérprete de comandos normales o directivas cloud-init que ejecutan cloud-init cuando se inician las instancias. El script también puede controlar cuándo las instancias realizan la transición al siguiente estado utilizando el ID de la instancia en la que se ejecuta. Si aún no lo ha hecho, actualice el script para recuperar el ID de instancia de la instancia de los metadatos de instancia. Para obtener más información, consulte [Metadatos de instancia de acceso](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html) en la *Guía del usuario de Amazon EC2*.
**sugerencia**  
Para ejecutar scripts de datos de usuario cuando se reinicia una instancia, estos datos deben tener el formato multiparte MIME y especificar lo siguiente en la sección `#cloud-config` de los datos de usuario:  

  ```
  #cloud-config
  cloud_final_modules:
   - [scripts-user, always]
  ```
+ Para situaciones avanzadas en las que necesite un servicio, como AWS Lambda hacer algo cuando las instancias entren o salgan de la piscina caliente, puede crear un enlace de ciclo de vida para su grupo de Auto Scaling y configurar el servicio de destino para que realice acciones personalizadas basadas en las notificaciones del ciclo de vida. Para obtener más información, consulte [Destinos de notificación admitidos](warm-pool-instance-lifecycle.md#warm-pools-supported-notification-targets).

**Preparación de instancias para la hibernación**  
Para preparar instancias de escalado automático para utilizar el estado de grupo `Hibernated`, cree una nueva plantilla o una configuración de inicialización que esté configurada correctamente para admitir la hibernación de instancias, como se describe en el tema [Requisitos previos de la hibernación](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html) de la *Guía del usuario de Amazon EC2*. A continuación, asocie la nueva plantilla de lanzamiento o configuración de lanzamiento con el grupo de escalado automático e inicie una actualización de instancias para reemplazar las instancias asociadas con una plantilla de lanzamiento o configuración de lanzamiento anterior. Para obtener más información, consulte [Uso de una actualización de instancias para actualizar instancias en un grupo de escalado automático](asg-instance-refresh.md).

## Actualización de las instancias de un grupo en caliente
<a name="update-warm-pool"></a>

Para actualizar las instancias de un grupo en caliente, cree una nueva plantilla de lanzamiento o configuración de lanzamiento y asóciela al grupo de escalado automático. Las nuevas instancias se lanzan con la nueva AMI y otras actualizaciones especificadas en la plantilla de lanzamiento o configuración de lanzamiento, pero las instancias existentes no resultan afectadas.

Puede iniciar una actualización de instancias para hacer una actualización de su grupo a fin de forzar el lanzamiento de instancias de reemplazo de grupo en caliente que utilicen la nueva plantilla de lanzamiento o configuración de lanzamiento. Una actualización de instancia reemplaza primero las instancias `InService`. Luego reemplaza las instancias en el grupo de calentamiento. Para obtener más información, consulte [Uso de una actualización de instancias para actualizar instancias en un grupo de escalado automático](asg-instance-refresh.md).

## Recursos relacionados
<a name="warm-pools-related-resources"></a>

Puede visitar nuestro [GitHubrepositorio para ver](https://github.com/aws-samples/amazon-ec2-auto-scaling-group-examples) ejemplos de enlaces de ciclo de vida para piscinas cálidas. 

## Limitaciones
<a name="warm-pools-limitations"></a>
+ Limitaciones de los grupos en caliente para un grupo de escalado automático con tipos de instancias mixtos:
  + Los grupos en caliente no son compatibles con los grupos de instancias mixtos ponderados. Si su grupo de escalado automático usa la ponderación de instancias, no puede agregar un grupo en caliente.
  + Los grupos en caliente no son compatibles con las instancias de spot en grupos de instancias mixtos. Su política de instancias mixtas debe configurarse para las instancias bajo demanda solo cuando utilice grupos en caliente.
  + Si utiliza grupos en caliente con grupos de instancias mixtos en estado de hibernación, debe configurar `HibernationOptions` en su plantilla de lanzamiento. 
+ Amazon EC2 Auto Scaling puede poner una instancia en un estado `Stopped` o `Hibernated` solo si tiene un volumen de Amazon EBS como dispositivo raíz. Las instancias que utilizan almacenes de instancias para el dispositivo raíz no se pueden detener o hibernar.
+ Amazon EC2 Auto Scaling puede colocar una instancia en un estado `Hibernated` solo si cumple todos los requisitos enumerados en el tema [Requisitos previos de la hibernación](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html) de la *Guía del usuario de Amazon EC2*. 
+ Si el grupo de calentamiento se agota cuando hay un evento de escalado horizontal, las instancias se iniciarán directamente en el grupo de escalado automático (un *arranque en frío*). También puede experimentar arranques en frío si no queda capacidad en una zona de disponibilidad.
+ Si una instancia del grupo de calentamiento encuentra un problema durante el proceso de inicialización, que le impide que alcance el estado `InService`, la instancia se considerará una inicialización fallida y se cancelará. Esto se aplica independientemente de la causa subyacente, como un error de capacidad insuficiente o cualquier otro factor.
+ Si intenta utilizar un grupo de calentamiento con un grupo de nodos administrados de Amazon Elastic Kubernetes Service (Amazon EKS), puede que las instancias que aún estén inicializándose se registren con el clúster de Amazon EKS. Como resultado, puede que el clúster programe trabajos en una instancia que se está preparando para detenerse o hibernarse.
+ Del mismo modo, si intenta utilizar un grupo de calentamiento con un clúster de Amazon ECS, las instancias pueden registrarse en el clúster antes de que terminen de inicializarse. Para resolver este problema, debe configurar una plantilla de lanzamiento o una configuración de lanzamiento que incluya una variable de configuración de agente especial en los datos de usuario. Para obtener más información, consulte [Uso de un grupo de calentamiento para el grupo de escalado automático](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/asg-capacity-providers.html#using-warm-pool) en la *Guía para desarrolladores de Amazon Elastic Container Service*.

# Uso de enlaces de ciclo de vida con un grupo de calentamiento en un grupo de escalado automático
<a name="warm-pool-instance-lifecycle"></a>

Las instancias del grupo de calentamiento mantienen su propio ciclo de vida independiente para ayudarlo a crear las acciones personalizadas adecuadas para cada transición. Este ciclo de vida está diseñado para ayudarlo a invocar acciones en un servicio de destino (por ejemplo, una función Lambda) mientras aún se está inicializando una instancia y antes de ponerla en servicio. 

**nota**  
Las operaciones de la API que utiliza para agregar y administrar enlaces de ciclo de vida y completar acciones de ciclo de vida no se modifican. Solo se modifica el ciclo de vida de la instancia. 

Para obtener más información acerca de cómo agregar un enlace de ciclo de vida, consulte [Incorporación de los enlaces de ciclo de vida en su grupo de escalado automático](adding-lifecycle-hooks.md). Para obtener más información sobre cómo completar una acción de ciclo de vida, consulte [Cómo completar una acción del ciclo de vida en un grupo de escalado automático](completing-lifecycle-hooks.md).

Es posible que necesite un enlace de ciclo de vida para las instancias que entran en el grupo de calentamiento por uno de los siguientes motivos:
+ Desea lanzar instancias de EC2 desde una AMI que tarda mucho tiempo en finalizar la inicialización.
+ Desea ejecutar scripts de datos de usuario para arrancar las instancias de EC2.

Es posible que necesite un enlace de ciclo de vida para las instancias que salen del grupo de calentamiento por uno de los siguientes motivos:
+ Puede utilizar más tiempo para preparar instancias de EC2 para su uso. Por ejemplo, para que la aplicación pueda funcionar correctamente, es posible que tenga servicios que deban iniciarse cuando se reinicia una instancia.
+ Desea rellenar previamente los datos de caché para que un nuevo servidor no se lance con una caché vacía.
+ Desea registrar nuevas instancias como instancias administradas con su servicio de administración de configuraciones.

## Transiciones de estado del ciclo de vida para las instancias de un grupo de calentamiento
<a name="lifecycle-state-transitions"></a>

Como parte de su ciclo de vida, una instancia de Auto Scaling puede pasar por muchos estados.

En el diagrama a continuación, se muestra la transición entre los estados de Auto Scaling cuando utiliza un grupo de calentamiento:

![\[Transiciones de estado de ciclo de vida de instancias de un grupo de calentamiento.\]](http://docs.aws.amazon.com/es_es/autoscaling/ec2/userguide/images/warm-pools-lifecycle-diagram.png)


¹ Este estado varía según la configuración del estado del grupo de calentamiento. Si el estado del grupo se configura en `Running`, este estado es `Warmed:Running` en su lugar. Si el estado del grupo se configura en `Hibernated`, este estado es `Warmed:Hibernated` en su lugar.

Cuando agregue enlaces de ciclo de vida, tenga en cuenta lo siguiente:
+ Cuando se configura un enlace de ciclo de vida para la acción de ciclo de vida `autoscaling:EC2_INSTANCE_LAUNCHING`, una instancia recién lanzada se detiene primero para realizar una acción personalizada cuando alcanza el estado `Warmed:Pending:Wait`, y nuevamente cuando la instancia se reinicia y alcanza el estado `Pending:Wait`.
+ Cuando se configura un enlace de ciclo de vida para la acción de ciclo de vida `EC2_INSTANCE_TERMINATING`, una instancia que termina hace una pausa para realizar una acción personalizada cuando alcanza el estado `Terminating:Wait`. Sin embargo, si especifica una política de reutilización de instancias para devolver instancias al grupo de calentamiento en reducción horizontal en lugar de terminarlas, una instancia que vuelve al grupo de calentamiento se pausa para llevar a cabo una acción personalizada en el estado `Warmed:Pending:Wait` para la acción del ciclo de vida `EC2_INSTANCE_TERMINATING`.
+ Si la demanda de la aplicación agota el grupo de calentamiento, Amazon EC2 Auto Scaling puede lanzar instancias directamente en el grupo de escalado automático siempre y cuando el grupo aún no haya alcanzado su capacidad máxima. Si las instancias se lanzan directamente en el grupo, solo se detendrán para realizar una acción personalizada en el estado `Pending:Wait`.
+ Para controlar cuánto tiempo permanece una instancia en un estado de espera antes de pasar al siguiente estado, configure la acción personalizada para usar el comando **complete-lifecycle-action**. Con los enlaces del ciclo de vida, las instancias se mantienen en estado de espera hasta que se notifica a Amazon EC2 Auto Scaling que la acción del ciclo de vida se ha completado o hasta que finaliza el tiempo de espera (que, de forma predeterminada, es de una hora). 

A continuación, se resume el flujo de un evento de escalado horizontal.

![\[Diagrama de flujo de un evento de escalado horizontal.\]](http://docs.aws.amazon.com/es_es/autoscaling/ec2/userguide/images/warm-pools-scale-out-event-diagram.png)


Cuando las instancias alcanzan un estado de espera, Amazon EC2 Auto Scaling envía una notificación. En la EventBridge sección de esta guía encontrará ejemplos de estas notificaciones. Para obtener más información, consulte [Ejemplos de eventos y patrones de grupos en caliente](warm-pools-eventbridge-events.md).

## Destinos de notificación admitidos
<a name="warm-pools-supported-notification-targets"></a>

Amazon EC2 Auto Scaling proporciona soporte para definir cualquiera de los siguientes como destinos de notificación para notificaciones de ciclo de vida:
+ EventBridge reglas
+ Temas de Amazon SNS 
+ Colas de Amazon SQS
+ AWS Lambda funciones

**importante**  
Si tiene un script de datos de usuario (cloud-init) en la plantilla de lanzamiento o en la configuración de lanzamiento que configura las instancias cuando se lanzan, no es necesario que reciba notificaciones para llevar a cabo acciones personalizadas en las instancias que se están iniciando o reiniciando.

Las secciones que se indican a continuación contienen vínculos a la documentación que describe cómo configurar los destinos de notificación:

**EventBridge reglas**: para ejecutar código cuando Amazon EC2 Auto Scaling ponga una instancia en estado de espera, puede crear EventBridge una regla y especificar una función Lambda como destino. Para invocar distintas funciones Lambda basadas en distintas notificaciones de ciclo de vida, puede crear varias reglas y asociar cada regla con un patrón de evento específico y una función Lambda. Para obtener más información, consulte [Crea EventBridge reglas para los eventos de piscina caliente](warm-pool-events-eventbridge-rules.md).

**Temas de Amazon SNS**: para recibir una notificación cuando una instancia se coloca en estado de espera, puede crear un tema de Amazon SNS y, a continuación, configurar el filtro de mensajes de Amazon SNS para entregar notificaciones de ciclo de vida de forma diferente según un atributo de mensaje. Para obtener más información, consulte [Recepción de notificaciones mediante Amazon SNS](prepare-for-lifecycle-notifications.md#sns-notifications).

**Colas de Amazon SQS**: para configurar un punto de entrega para las notificaciones de ciclo de vida en el que un consumidor relevante pueda recogerlas y procesarlas, puede crear una cola de Amazon SQS y un consumidor de colas que procese los mensajes de la cola de SQS. Si desea que el consumidor de la cola procese las notificaciones de ciclo de vida de forma diferente en función de un atributo de mensaje, también debe configurar el consumidor de la cola para analizar el mensaje y, a continuación, actuar sobre el mensaje cuando un atributo específico coincide con el valor deseado. Para obtener más información, consulte [Recepción de notificaciones mediante Amazon SQS](prepare-for-lifecycle-notifications.md#sqs-notifications).

**AWS Lambda funciones**: para ejecutar código personalizado cuando Amazon EC2 Auto Scaling ponga una instancia en estado de espera, puede especificar una función Lambda como destino de la notificación. La función Lambda se invoca con datos de notificación del ciclo de vida, lo que le permite realizar acciones personalizadas, como la configuración de instancias, la configuración de aplicaciones o la integración con otros AWS servicios. Debe configurar la política basada en recursos de la función de Lambda para permitir al rol vinculado al servicio de Auto Scaling que invoque la función. Para obtener más información, consulte [Enrute las notificaciones directamente a AWS Lambda](prepare-for-lifecycle-notifications.md#lambda-notification).

# Creación de un grupo en caliente para un grupo de escalado automático
<a name="create-warm-pool"></a>

En este tema, se describe cómo crear un grupo en caliente para su grupo de escalado automático. 

**importante**  
Antes de continuar, complete los [requisitos previos](ec2-auto-scaling-warm-pools.md#warm-pool-prerequisites) para crear un grupo en caliente y confirme que ha creado un enlace de ciclo de vida para su grupo de escalado automático.

## Creación de un grupo de calentamiento
<a name="create-a-warm-pool"></a>

Utilice el siguiente procedimiento a fin de crear un grupo en caliente para el grupo de escalado automático.

**Para crear un grupo de calentamiento (consola)**

1. Abra la consola Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)y seleccione **Auto Scaling Groups** en el panel de navegación.

1. Seleccione la casilla de verificación situada junto a un grupo existente.

   Se abre un panel dividido en la parte inferior de la página. 

1. Elija la pestaña **Instance management** (Administración de instancias). 

1. En **Warm pool (Grupo de calentamiento)**, elija **Create warm pool (Crear grupo de calentamiento)**. 

1. Para configurar un grupo de calentamiento, haga lo siguiente:

   1. En**Warm pool instance state (Estado de la instancia del grupo de calentamiento)**, elija el estado al que desea mover las instancias cuando entren al grupo de calentamiento. El valor predeterminado es `Stopped`. 

   1. En **Minimum warm pool size (Tamaño mínimo de grupo de calentamiento)**, ingrese el número mínimo de instancias que se van a mantener en el grupo de calentamiento.

   1. Para la **reutilización de instancias**, seleccione la casilla **Reutilización el reducir horizontalmente** para permitir que las instancias del grupo de escalado automático vuelvan al grupo de calentamiento que se redujo horizontalmente. 

   1. En **Tamaño del grupo de calentamiento**, elija una de las opciones disponibles: 
      + **Especificación predeterminada**: el tamaño del grupo de calentamiento está determinado por la diferencia entre la capacidad máxima y deseada del grupo de escalado automático. Esta opción optimiza la administración del grupo de calentamiento. Después de crear el grupo de calentamiento, su tamaño se puede actualizar fácilmente con solo ajustar la capacidad máxima del grupo.
      + **Especificación personalizada**: el tamaño del grupo de calentamiento está determinado por la diferencia entre un valor personalizado y la capacidad deseada del grupo de escalado automático. Esta opción le brinda flexibilidad para administrar el tamaño de su grupo de calentamiento independientemente de la capacidad máxima del grupo. 

1. Consulte la sección **Tamaño estimado del grupo de calentamiento en función de la configuración actual** para confirmar cómo se aplica la especificación predeterminada o personalizada al tamaño del grupo de calentamiento. Recuerde que el tamaño del grupo de calentamiento depende de la capacidad deseada del grupo de escalado automático, que cambiará si el grupo escala.

1. Seleccione **Crear**. 

## Selección del tipo de instancia con grupos de instancias mixtos
<a name="warm-pool-mixed-instance-types"></a>

Auto Scaling prioriza los tipos de instancias que ya están en el grupo en caliente durante los eventos de escalado cuando su grupo está configurado con una política de instancias mixtas. Comportamiento de lanzamiento:

1. Auto Scaling intenta lanzar instancias mediante los tipos de instancia disponibles en el grupo en caliente.

1. Si el inicio en caliente falla, Auto Scaling intentará el lanzamiento en frío utilizando todos los tipos de instancias restantes de la política de instancias mixtas.

**Example**  
**Ejemplo**  
Configure su grupo de escalado automático con 10 tipos de instancias, mientras que su grupo en caliente contiene 6 de esos tipos de instancias. Durante el escalado horizontal, Auto Scaling primero prueba los 6 tipos de instancias del grupo en caliente. Si no funciona, Auto Scaling prueba todos los tipos de instancias configurados mediante un lanzamiento en frío.

De esta forma, podrá aprovechar al máximo el rendimiento cuando sea posible y, al mismo tiempo, mantener la flexibilidad de su configuración completa de instancias mixtas.

## Eliminación de un grupo de calentamiento
<a name="delete-warm-pool"></a>

Cuando ya no necesite el grupo de calentamiento, utilice el siguiente procedimiento para eliminarlo.

**Para eliminar el grupo de calentamiento (consola)**

1. Abra la consola Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)y seleccione **Auto Scaling Groups** en el panel de navegación.

1. Seleccione la casilla de verificación situada junto a un grupo existente.

   Se abre un panel dividido en la parte inferior de la página. 

1. Elija la pestaña **Instance management** (Administración de instancias). 

1. En **Warm pool** (Grupo de preparación), elija **Actions** (Acciones), **Delete** (Eliminar).

1. Cuando se le pida confirmación, seleccione **Eliminar**. 

# Visualización del estado de la comprobación de estado y el motivo de los errores de la comprobación de estado
<a name="warm-pools-health-checks-monitor-view-status"></a>

Las comprobaciones de estado permiten que Amazon EC2 Auto Scaling determine cuándo una instancia no tiene un estado correcto y debe terminarse. Para instancias de un grupo de calentamiento que se mantienen en un estado `Stopped`, emplea la información que Amazon EBS tiene de la disponibilidad de una instancia `Stopped` para identificar las instancias con un estado incorrecto. Para esto, llama a la API `DescribeVolumeStatus` para determinar el estado del volumen de EBS asociado a la instancia. Para las instancias de un grupo de calentamiento que se mantienen en un estado `Running`, se basa en las comprobaciones de estado de EC2 para determinar el estado de la instancia. Aunque no existe un periodo de gracia de comprobación de estado de las instancias de un grupo de calentamiento, Amazon EC2 Auto Scaling no comienza a comprobar el estado de la instancia hasta que finalice el enlace de ciclo de vida. 

Cuando se comprueba que una instancia tiene un estado incorrecto, Amazon EC2 Auto Scaling elimina automáticamente la instancia en mal estado y crea una nueva para reemplazarla. Por lo general, las instancias se terminan unos minutos después de no superar la comprobación de estado. Para obtener más información, consulte [Visionado del motivo de los errores de una comprobación de estado](replace-unhealthy-instance.md).

También se admiten comprobaciones de estado personalizadas. Esto puede resultar útil si tiene su propio sistema de comprobación de estado que pueda detectar el estado de una instancia y enviar esta información a Amazon EC2 Auto Scaling. Para obtener más información, consulte [Configuración de una comprobación de estado personalizada para el grupo de escalado automático](set-up-a-custom-health-check.md).

En la consola de Amazon EC2 Auto Scaling puede ver el estado (correcto o incorrecto) de las instancias de un grupo de calentamiento. También puede ver su estado de salud utilizando la AWS CLI o una de las SDKs. 

**Para ver el estado de las instancias de un grupo de calentamiento (consola)**

1. Abra la consola Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)y seleccione **Auto Scaling Groups** en el panel de navegación.

1. Seleccione la casilla situada junto al grupo de escalado automático. 

   Se abre un panel dividido en la parte inferior de la página **Auto Scaling groups** (Grupos de Auto Scaling). 

1. En la pestaña **Instance management (Administración de instancia)**, en **Warm pool instances (Instancias de grupo de calentamiento)**, la columna **Lifecycle (Ciclo de vida)** muestra el estado de las instancias.

   La columna **Health status (Estado)** muestra la evaluación que Amazon EC2 Auto Scaling ha realizado sobre el estado de la instancia.
**nota**  
El estado de las nuevas instancias es correcto. Hasta que no finalice el enlace de ciclo de vida, no se comprueba el estado de una instancia.

**Para ver el motivo de los errores de una comprobación de estado (consola)**

1. Abra la consola Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)y seleccione **Auto Scaling Groups** en el panel de navegación.

1. Seleccione la casilla situada junto al grupo de escalado automático. 

   Se abre un panel dividido en la parte inferior de la página **Auto Scaling groups** (Grupos de Auto Scaling). 

1. En la pestaña **Activity (Actividad)**, en **Activity history (Historial de actividad)**, la columna **Status (Estado)** muestra si su grupo de escalado automático ha lanzado o terminado las instancias correctamente.

   Si terminó cualquier instancia en mal estado, la columna **Cause (Causa)** muestra la fecha y la hora de la terminación y el motivo del error de la comprobación de estado. Por ejemplo, “At 2021-04-01T21:48:35Z an instance was taken out of service in response to EBS volume health check failure” (El 01/04/2021T21:48:35Z, se dejó fuera de servicio una instancia en respuesta a un error en la comprobación de estado del volumen de EBS). 

**Para ver el estado de las instancias de un grupo de calentamiento (AWS CLI)**  
Vea la piscina caliente de un grupo de Auto Scaling mediante el siguiente [describe-warm-pool](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-warm-pool.html)comando.

```
aws autoscaling describe-warm-pool --auto-scaling-group-name my-asg
```

Resultado de ejemplo.

```
{
    "WarmPoolConfiguration": {
        "MinSize": 0,
        "PoolState": "Stopped"
    },
    "Instances": [
        {
            "InstanceId": "i-0b5e5e7521cfaa46c",
            "InstanceType": "t2.micro",
            "AvailabilityZone": "us-west-2a",
            "LifecycleState": "Warmed:Stopped",
            "HealthStatus": "Healthy",
            "LaunchTemplate": {
                "LaunchTemplateId": "lt-08c4cd42f320d5dcd",
                "LaunchTemplateName": "my-template-for-auto-scaling",
                "Version": "1"
            }
        },
        {
            "InstanceId": "i-0e21af9dcfb7aa6bf",
            "InstanceType": "t2.micro",
            "AvailabilityZone": "us-west-2a",
            "LifecycleState": "Warmed:Stopped",
            "HealthStatus": "Healthy",
            "LaunchTemplate": {
                "LaunchTemplateId": "lt-08c4cd42f320d5dcd",
                "LaunchTemplateName": "my-template-for-auto-scaling",
                "Version": "1"
            }
        }
    ]
}
```

**Para ver el motivo de los errores de una comprobación de estado (AWS CLI)**  
Use el siguiente comando [describe-scaling-activities](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-scaling-activities.html). 

```
aws autoscaling describe-scaling-activities --auto-scaling-group-name my-asg
```

A continuación se muestra un ejemplo de respuesta, donde `Description` indica que el grupo de escalado automático ha terminado una instancia, y `Cause` indica el motivo del error en la comprobación de estado. 

Las actividades de escalado se ordenan por hora de inicio. En primer lugar, se describen las actividades aún en curso. 

```
{
  "Activities": [
    {
      "ActivityId": "4c65e23d-a35a-4e7d-b6e4-2eaa8753dc12",
      "AutoScalingGroupName": "my-asg",
      "Description": "Terminating EC2 instance: i-04925c838b6438f14",
      "Cause": "At 2021-04-01T21:48:35Z an instance was taken out of service in response to EBS volume health check failure.",
      "StartTime": "2021-04-01T21:48:35.859Z",
      "EndTime": "2021-04-01T21:49:18Z",
      "StatusCode": "Successful",
      "Progress": 100,
      "Details": "{\"Subnet ID\":\"subnet-5ea0c127\",\"Availability Zone\":\"us-west-2a\"...}",
      "AutoScalingGroupARN": "arn:aws:autoscaling:us-west-2:123456789012:autoScalingGroup:283179a2-f3ce-423d-93f6-66bb518232f7:autoScalingGroupName/my-asg"
    },
...
  ]
}
```

# Ejemplos de creación y gestión de piscinas cálidas con el AWS CLI
<a name="examples-warm-pools-aws-cli"></a>

Puede crear y administrar piscinas cálidas con Consola de administración de AWS, AWS Command Line Interface (AWS CLI) o SDKs.

En los siguientes ejemplos, se muestra cómo crear y administrar grupos de calentamiento con la AWS CLI.

**Topics**
+ [Ejemplo 1: mantener las instancias en estado `Stopped`](#warm-pool-configuration-ex1)
+ [Ejemplo 2: mantener las instancias en estado `Running`](#warm-pool-configuration-ex2)
+ [Ejemplo 3: mantener las instancias en estado `Hibernated`](#warm-pool-configuration-ex3)
+ [Ejemplo 4: devolver instancias al grupo de calentamiento al reducir horizontalmente](#warm-pool-configuration-ex4)
+ [Ejemplo 5: especificar el número mínimo de instancias en el grupo de calentamiento](#warm-pool-configuration-ex5)
+ [Ejemplo 6: definir el tamaño del grupo de calentamiento mediante una especificación personalizada](#warm-pool-configuration-ex6)
+ [Ejemplo 7: definir un tamaño absoluto de grupo de calentamiento](#warm-pool-configuration-ex7)
+ [Ejemplo 8: eliminar un grupo de calentamiento](#delete-warm-pool-cli)

## Ejemplo 1: mantener las instancias en estado `Stopped`
<a name="warm-pool-configuration-ex1"></a>

En el siguiente [put-warm-pool](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-warm-pool.html)ejemplo, se crea una piscina caliente que mantiene las instancias en un `Stopped` estado.

```
aws autoscaling put-warm-pool --auto-scaling-group-name my-asg /
  --pool-state Stopped
```

## Ejemplo 2: mantener las instancias en estado `Running`
<a name="warm-pool-configuration-ex2"></a>

En el siguiente [put-warm-pool](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-warm-pool.html)ejemplo, se crea una piscina caliente que mantiene las instancias en un `Running` estado en lugar de en un `Stopped` estado. 

```
aws autoscaling put-warm-pool --auto-scaling-group-name my-asg /
  --pool-state Running
```

## Ejemplo 3: mantener las instancias en estado `Hibernated`
<a name="warm-pool-configuration-ex3"></a>

En el siguiente [put-warm-pool](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-warm-pool.html)ejemplo, se crea una piscina caliente que mantiene las instancias en un `Hibernated` estado en lugar de en un `Stopped` estado. Esto le permite detener instancias sin eliminar el contenido de su memoria (RAM).

```
aws autoscaling put-warm-pool --auto-scaling-group-name my-asg /
  --pool-state Hibernated
```

## Ejemplo 4: devolver instancias al grupo de calentamiento al reducir horizontalmente
<a name="warm-pool-configuration-ex4"></a>

En el siguiente [put-warm-pool](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-warm-pool.html)ejemplo, se crea una piscina caliente que mantiene las instancias en un `Stopped` estado e incluye la `--instance-reuse-policy` opción. El valor de la política de reutilización de instancias `'{"ReuseOnScaleIn": true}'` le indica a Amazon EC2 Auto Scaling que devuelva las instancias al grupo de calentamiento cuando el grupo de escalado automático se reduce horizontalmente.

```
aws autoscaling put-warm-pool --auto-scaling-group-name my-asg /
  --pool-state Stopped --instance-reuse-policy '{"ReuseOnScaleIn": true}'
```

## Ejemplo 5: especificar el número mínimo de instancias en el grupo de calentamiento
<a name="warm-pool-configuration-ex5"></a>

En el siguiente [put-warm-pool](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-warm-pool.html)ejemplo, se crea una piscina caliente que mantiene un mínimo de 4 instancias, de modo que haya al menos 4 instancias disponibles para gestionar los picos de tráfico. 

```
aws autoscaling put-warm-pool --auto-scaling-group-name my-asg /
  --pool-state Stopped --min-size 4
```

## Ejemplo 6: definir el tamaño del grupo de calentamiento mediante una especificación personalizada
<a name="warm-pool-configuration-ex6"></a>

De forma predeterminada, Amazon EC2 Auto Scaling administra el tamaño del grupo de calentamiento como la diferencia entre la capacidad máxima del grupo de escalado automático y la capacidad deseada. Sin embargo, puede administrar el tamaño del grupo de calentamiento independientemente de la capacidad máxima del grupo mediante la opción `--max-group-prepared-capacity`.

El siguiente [put-warm-pool](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-warm-pool.html)ejemplo crea una piscina caliente y establece el número máximo de instancias que pueden existir simultáneamente tanto en la piscina caliente como en el grupo Auto Scaling. Si el grupo tiene una capacidad deseada de 800, el grupo de calentamiento tendrá inicialmente un tamaño de 100, ya que se inicializará tras ejecutar este comando. 

```
aws autoscaling put-warm-pool --auto-scaling-group-name my-asg /
  --pool-state Stopped --max-group-prepared-capacity 900
```

Para mantener un número mínimo de instancias en el grupo de calentamiento, incluya la opción `--min-size` con el comando, de la siguiente manera. 

```
aws autoscaling put-warm-pool --auto-scaling-group-name my-asg /
  --pool-state Stopped --max-group-prepared-capacity 900 --min-size 25
```

## Ejemplo 7: definir un tamaño absoluto de grupo de calentamiento
<a name="warm-pool-configuration-ex7"></a>

Si configura el mismo valor para las opciones `--max-group-prepared-capacity` y `--min-size`, el grupo de calentamiento tiene un tamaño absoluto. En el siguiente [put-warm-pool](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-warm-pool.html)ejemplo, se crea una piscina caliente que mantiene un tamaño de piscina caliente constante de 10 instancias.

```
aws autoscaling put-warm-pool --auto-scaling-group-name my-asg /
  --pool-state Stopped --min-size 10 --max-group-prepared-capacity 10
```

## Ejemplo 8: eliminar un grupo de calentamiento
<a name="delete-warm-pool-cli"></a>

Use el siguiente [delete-warm-pool](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/delete-warm-pool.html)comando para eliminar una piscina caliente. 

```
aws autoscaling delete-warm-pool --auto-scaling-group-name my-asg
```

Si hay instancias en la piscina caliente o si se están realizando actividades de escalado, utilice el [delete-warm-pool](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/delete-warm-pool.html)comando con la `--force-delete` opción. Esta opción también termina las instancias de Amazon EC2 y cualquier acción pendiente del ciclo de vida.

```
aws autoscaling delete-warm-pool --auto-scaling-group-name my-asg --force-delete
```