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.
Establecimiento de la preparación predeterminada de instancias para un grupo de escalado automático
CloudWatch recopila y agrega datos de uso, como E/S de CPU y red, en todas sus instancias de Auto Scaling. Estas métricas se utilizan para crear políticas de escalado que ajustan el número de instancias del grupo de escalado automático a medida que aumenta y disminuye el valor de la métrica seleccionada.
Puede especificar cuánto tiempo pasará después de que una instancia alcance el InService
estado en el que estará antes de contribuir con los datos de uso a las métricas agregadas. Este tiempo especificado se denomina calentamiento predeterminado de la instancia. Esto evita que el escalado dinámico se vea afectado por las métricas de instancias individuales que aún no gestionan el tráfico de aplicaciones y que podrían estar experimentando un uso elevado temporal de los recursos informáticos.
Para optimizar el rendimiento de tus políticas de seguimiento de objetivos y escalado gradual, te recomendamos encarecidamente que habilites y configures el calentamiento de instancias predeterminado. No está activado ni configurado de forma predeterminada.
Cuando habilita el calentamiento de instancias predeterminado, tenga en cuenta que si su grupo de Auto Scaling está configurado para usar una política de mantenimiento de instancias o si usa una actualización de instancias para reemplazar las instancias, puede evitar que las instancias se cuenten para el porcentaje mínimo de mantenimiento antes de que terminen de inicializarse.
Contenidos
- Consideraciones sobre el rendimiento de escalado
- Elija el tiempo de calentamiento de la instancia predeterminado
- Habilitación de la preparación predeterminada de instancias para un grupo
- Verificación de la preparación predeterminada de instancias para un grupo
- Busca políticas de escalado con un tiempo de calentamiento de instancias previamente establecido
- Borrar la preparación de instancias previamente establecida para una política de escalado
Consideraciones sobre el rendimiento de escalado
Resulta útil que la mayoría de las aplicaciones tengan un tiempo de calentamiento de instancias predeterminado que se aplique a todas las funciones, en lugar de diferentes tiempos de calentamiento para las distintas funciones. Por ejemplo, si no estableces un calentamiento de instancias predeterminado, la función de actualización de la instancia utiliza el período de gracia de la comprobación de estado como tiempo de calentamiento predeterminado. Si tienes políticas de seguimiento de objetivos y escalado escalado por pasos, usarán el valor establecido para el tiempo de recarga predeterminado como tiempo de calentamiento predeterminado. Si tienes políticas de escalado predictivo, no tienen un tiempo de calentamiento predeterminado.
Mientras las instancias se están calentando, sus políticas de escalado dinámico solo se escalan si el valor métrico de las instancias que no se están calentando supera el umbral máximo de alarma de la política (o el uso objetivo de una política de escalado de seguimiento objetivo). Si la demanda disminuye, el escalado dinámico se vuelve más conservador para proteger la disponibilidad de la aplicación. Esto bloquea las actividades de escalado interno para el escalado dinámico hasta que las nuevas instancias terminen de calentarse.
Al escalar, Amazon EC2 Auto Scaling considera las instancias que se están calentando como parte de la capacidad del grupo a la hora de decidir cuántas instancias se van a añadir al grupo. Por lo tanto, si se producen varias brechas de alarma que requieren añadir una cantidad similar de capacidad, se traduce en una única actividad de escalado. La intención es ampliarla de forma continua, sin hacerlo en exceso.
Si el calentamiento de instancias predeterminado no está activado, la cantidad de tiempo que espera una instancia antes de enviar las métricas CloudWatch y contabilizarlas para su capacidad actual variará de una instancia a otra. Por lo tanto, existe la posibilidad de que sus políticas de escalado funcionen de forma impredecible en comparación con la carga de trabajo real que se está produciendo.
Por ejemplo, considere una aplicación con un patrón de on-and-off carga de trabajo recurrente. Se utiliza una política de escalado predictivo para tomar decisiones recurrentes sobre si se debe aumentar el número de instancias. Como no hay un tiempo de calentamiento predeterminado para las políticas de escalado predictivo, las instancias comienzan a contribuir a las métricas agregadas de forma inmediata. Si estas instancias utilizan más recursos al iniciarse, la adición de instancias podría provocar un pico en las métricas globales. En función del tiempo que tarde en estabilizarse el uso, esto podría afectar a cualquier política de escalado dinámico que utilice estas métricas. Si se supera el umbral máximo de alarma establecido en una política de escalado dinámico, el grupo volverá a aumentar de tamaño. Mientras las nuevas instancias se estén preparando, las actividades de reducción horizontal se bloquearán.
Elija el tiempo de calentamiento de la instancia predeterminado
La clave para configurar la preparación predeterminado de las instancias es determinar cuánto tiempo necesitan las instancias para terminar de inicializarse y para que el consumo de recursos se estabilice una vez que alcancen el estado InService
. Al elegir el tiempo de calentamiento de la instancia, intenta mantener un equilibrio óptimo entre la recopilación de datos de uso para el tráfico legítimo y la minimización de la recopilación de datos asociada a los picos de uso temporales durante el inicio.
Supongamos que tiene un grupo de escalado automático conectado a un equilibrador de carga Elastic Load Balancing. Cuando las instancias nuevas terminan de lanzarse, se registran en el equilibrador de carga antes de ingresar al estado de InService
. Después de las instancias ingresan al estado InService
, el consumo de recursos puede seguir experimentando picos temporales y necesitar tiempo para estabilizarse. Por ejemplo, el consumo de recursos de un servidor de aplicaciones que debe descargar y almacenar en caché activos de gran tamaño tarda más tiempo en estabilizarse que un servidor web ligero sin grandes recursos para descargar. La preparación de instancias proporciona el retraso de tiempo necesario para que se estabilice el consumo de recursos.
importante
Si no estás seguro del tiempo que necesitas para el tiempo de calentamiento, puedes empezar con 300 segundos. A continuación, redúzcalo o auméntelo gradualmente hasta obtener el mejor rendimiento de escalado para su aplicación. Puede que tengas que hacerlo varias veces para hacerlo bien. Como alternativa, si tienes alguna política de escalado que tenga su propio tiempo de calentamiento (EstimatedInstanceWarmup
), puedes usar este valor para empezar. Para obtener más información, consulte Busca políticas de escalado con un tiempo de calentamiento de instancias previamente establecido.
Considere utilizar enlaces de ciclo de vida para casos de uso en los que tenga scripts o tareas de configuración para que se ejecuten en el inicio. Los enlaces de ciclo de vida pueden retrasar la puesta en servicio de las instancias nuevas hasta que hayan terminado de inicializarse. Resultan especialmente útiles si tiene scripts de arranque que tardan un poco en completarse. Si agrega un enlace de ciclo de vida, puede reducir el valor de la preparación predeterminada de instancias. Para obtener más información acerca del uso de enlaces de ciclo de vida, consulte Enlaces de ciclo de vida de Amazon EC2 Auto Scaling.
Habilitación de la preparación predeterminada de instancias para un grupo
Puede habilitar la preparación predeterminada de instancias cuando cree un grupo de escalado automático. También puede habilitarla para grupos existentes.
Al habilitar la función de calentamiento de instancias predeterminada, ya no es necesario especificar valores para los parámetros de calentamiento de las siguientes funciones:
Verificación de la preparación predeterminada de instancias para un grupo
Para verificar la preparación predeterminada de instancias para un grupo de escalado automático (AWS CLI)
Use el siguiente comando describe-auto-scaling-groups. Reemplace my-asg
por el nombre de su grupo de escalado automático.
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name
my-asg
A continuación, se muestra un ejemplo de respuesta.
{
"AutoScalingGroups": [
{
"AutoScalingGroupName": "my-asg",
"AutoScalingGroupARN": "arn",
...
"DefaultInstanceWarmup": 120
}
]
}
Busca políticas de escalado con un tiempo de calentamiento de instancias previamente establecido
Para identificar si tienes políticas que tienen su propio tiempo de calentamientoEstimatedInstanceWarmup
, ejecuta el siguiente comando describe-policies con. AWS CLI Reemplace my-asg
por el nombre de su grupo de escalado automático.
aws autoscaling describe-policies --auto-scaling-group-name
my-asg
--query 'ScalingPolicies[?EstimatedInstanceWarmup!=`null`]'
A continuación, se muestra un ejemplo del resultado.
[
{
"AutoScalingGroupName":"my-asg",
"PolicyName":"cpu50-target-tracking-scaling-policy",
"PolicyARN":"arn
",
"PolicyType":"TargetTrackingScaling",
"StepAdjustments":[],
"EstimatedInstanceWarmup":120,
"Alarms":[{
"AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e",
"AlarmName": "TargetTracking-my-asg-AlarmHigh-fc0e4183-23ac-497e-9992-691c9980c38e"
},
{
"AlarmARN": "arn:aws:cloudwatch:us-west-2:123456789012:alarm:TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2",
"AlarmName": "TargetTracking-my-asg-AlarmLow-61a39305-ed0c-47af-bd9e-471a352ee1a2"
}],
"TargetTrackingConfiguration":{
"PredefinedMetricSpecification":{
"PredefinedMetricType":"ASGAverageCPUUtilization"
},
"TargetValue":50.0,
"DisableScaleIn":false
},
"Enabled":true
},
... additional policies ...
]
Borrar la preparación de instancias previamente establecida para una política de escalado
Tras habilitar el calentamiento de instancias predeterminado, actualiza las políticas de escalado que aún tengan su propio tiempo de calentamiento para borrar el valor establecido anteriormente. De lo contrario, anulará la preparación de instancias predeterminada.
Puede actualizar las políticas de escalado mediante la consola o los SDK. AWS CLI AWS En esta sección se describen los pasos de la consola. Si utiliza los AWS SDK AWS CLI o los SDK, asegúrese de conservar la configuración de políticas existente, pero elimine la EstimatedInstanceWarmup
propiedad. Cuando actualice una política de escalado existente, la política se sustituirá por la que especifique al realizar la llamada mediante programación. PutScalingPolicy Los valores originales no se conservan.
Para borrar la preparación de instancias establecida anteriormente para una política de escalado (consola)
Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/
y elija Auto Scaling Groups (Grupos de escalado automático) en el panel de navegación. -
Seleccione la casilla situada junto al grupo de escalado automático.
Se abre un panel dividido en la parte inferior de la página.
-
En la pestaña Escalado automático, en Políticas de escalado dinámico, elija la política que le interese y, a continuación, seleccione Acciones y Editar.
-
En Instance Warmup, borre el valor de calentamiento de instancias para usar en su lugar el valor de calentamiento de instancias predeterminado.
-
Elija Actualizar.