Explorar las mejores prácticas para el escalado automático

Completado

Si no sigue los procedimientos recomendados al crear la configuración de escalabilidad automática, puede crear condiciones que provoquen resultados no deseados. En esta unidad, aprenderá a evitar la creación de reglas que entren en conflicto entre sí.

Conceptos de escalabilidad automática

  • Una configuración de escalado automático escala las instancias horizontalmente, se expande al aumentar las instancias y se reduce en al disminuir el número de instancias. Una configuración de escalado automático tiene un valor máximo, mínimo y predeterminado de instancias.

  • Una tarea de escalado automático siempre lee la métrica asociada para escalar, comprobando si ha cruzado el umbral configurado para el escalado hacia afuera o hacia adentro.

  • Todos los umbrales se calculan en un nivel de instancia. Por ejemplo, "escalar horizontalmente por una instancia cuando el promedio de CPU > 80% y el recuento de instancias es 2", significa escalar horizontalmente cuando el promedio de CPU en todas las instancias es mayor que 80%.

  • Todos los errores y éxitos de escalabilidad automática se registran en el registro de actividad. A continuación, puede configurar una alerta del registro de actividad para que pueda recibir notificaciones por correo electrónico, SMS o webhooks siempre que haya actividad.

Buenas prácticas de escalado automático

Use los procedimientos recomendados siguientes a medida que cree las reglas de escalado automático.

Asegúrese de que los valores máximos y mínimos son diferentes y tienen un margen adecuado entre ellos.

Si tiene una configuración que tiene minimum=two, maximum=two y el recuento de instancias actual es dos, no se puede producir ninguna acción de escalado. Mantenga un margen adecuado entre los recuentos máximos y mínimos de instancias, que son inclusivos. El escalado automático siempre opera entre estos límites.

Elija la estadística adecuada para la métrica de diagnóstico.

Para las métricas de diagnóstico, puede elegir entre promedio, mínimo, máximo y total como una métrica por la cual escalar. La estadística más común es el promedio.

Elija los umbrales cuidadosamente para todos los tipos de métricas.

Se recomienda elegir cuidadosamente diferentes umbrales para el escalado horizontal y el escalado vertical en función de situaciones prácticas.

No se recomienda configuración de escalado automático como los ejemplos siguientes con los mismos valores de umbral o similares para out y en condiciones:

  • Incrementar el número de instancias en uno cuando el número de subprocesos >= 600
  • Disminuir las instancias en una unidad cuando el Número de Subprocesos <= 600

Veamos un ejemplo de lo que puede conducir a un comportamiento que puede parecer confuso. Tenga en cuenta la siguiente secuencia.

  1. Supongamos que hay dos instancias con las que empezar y, a continuación, el número medio de subprocesos por instancia crece a 625.
  2. El escalado automático aumenta la capacidad agregando una tercera instancia.
  3. A continuación, supongamos que el recuento medio de subprocesos entre instancias cae en 575.
  4. Antes de escalar horizontalmente, el escalado automático intenta calcular cuál será el estado final si se escala. Por ejemplo, 575 x 3 (recuento de instancias actuales) = 1725 /2 (número final de instancias cuando se escalan horizontalmente) = 862,5 subprocesos. Esto significa que el escalado automático tendría que volver a aumentar de nuevo inmediatamente después de haber disminuido, si el recuento promedio de subprocesos se mantiene igual o incluso disminuye ligeramente. Sin embargo, si se escala horizontalmente de nuevo, todo el proceso se repetiría, lo que conduce a un bucle infinito.
  5. Para evitar esta situación (conocida como "flapping"), el escalado automático no realiza ningún ajuste. En su lugar, omite y vuelve a evaluar la condición la próxima vez que se ejecute el trabajo del servicio. Esto puede confundir a muchas personas porque el escalado automático no parece funcionar cuando el recuento promedio de subprocesos era 575.

La estimación durante una reducción de escala está pensada para evitar situaciones de oscilación, en las que las acciones de escalar y reducir recursos se repiten continuamente. Tenga en cuenta este comportamiento al elegir los mismos umbrales para el escalado hacia fuera y hacia dentro.

Se recomienda elegir un margen óptimo entre los umbrales de ampliación y reducción. Por ejemplo, considere la siguiente combinación de reglas mejor.

  • Aumentar las instancias en 1 cuando la CPU% >= 80
  • Reducir las instancias en 1 cuando la CPU% <= 60

En este caso

  1. Supongamos que hay 2 instancias con las que empezar.
  2. Si el promedio de CPU% a través de las instancias alcanza 80, el escalado automático se expande añadiendo una tercera instancia.
  3. Ahora supongamos que con el tiempo el% de CPU cae a 60.
  4. La regla de escalado automático calcula el estado final si se va a escalar horizontalmente. Por ejemplo, 60 x 3 (recuento de instancias actuales) = 180 /2 (número final de instancias cuando se escalan horizontalmente) = 90. Por lo tanto, el escalado automático no reduce la escala porque tendría que aumentarla de nuevo de inmediato. En su lugar, omite el escalado hacia adentro.
  5. La próxima vez que se comprueba el escalado automático, la CPU sigue bajando a 50. Calcula de nuevo: 50 x 3 instancias = 150 / 2 instancias = 75, que está por debajo del umbral de escalado horizontal de 80, por lo que se reduce correctamente a 2 instancias.

Consideraciones para el escalado cuando se configuran varias reglas en un perfil

Hay casos en los que es posible que tenga que establecer varias reglas en un perfil. Los servicios usan el siguiente conjunto de reglas de escalado automático cuando se establecen varias reglas.

En el escalado horizontal de , el escalado automático dese ejecuta si se cumple alguna regla. En la reducción de escala dentro de, el autoescalado requiere que se cumplan todas las reglas.

Para ilustrarlo, supongamos que tiene las cuatro reglas de escalado automático siguientes:

  • Si la CPU < 30%, reduzca en una unidad.
  • Si memoria < 50%, escale verticalmente en 1
  • Si la CPU > 75%, aumente la escala en 1
  • Si memoria > 75%, escale horizontalmente en 1

A continuación, se produce lo siguiente:

  • Si la CPU está en 76% y la memoria está en 50%, escalamos horizontalmente.
  • Si la CPU es 50% y la memoria es 76% escalamos horizontalmente.

Por otro lado, si la CPU es de 25% y la memoria es 51% el escalado automático no se escala. Se produciría un escalado automático si la CPU es 29% y la memoria es 49%, ya que ambas reglas de escalado serían verdaderas.

Seleccione siempre un recuento de instancias predeterminado seguro.

El recuento de instancias predeterminado es importante porque el escalado automático escala el servicio a ese recuento cuando las métricas no están disponibles. Por lo tanto, seleccione un recuento de instancias predeterminado que sea seguro para las cargas de trabajo.

Configura notificaciones de escalado automático

Escalado automático de publicaciones en el registro de actividad si se produce alguna de las condiciones siguientes:

  • El escalado automático emite una operación de escalado
  • El servicio de escalado automático ha completado con éxito una acción de escalado.
  • El servicio de escalabilidad automática no logra llevar a cabo una acción de escalado.
  • Las métricas no están disponibles para que el servicio de escalado automático tome una decisión de escalado.
  • Las métricas están disponibles (recuperación) de nuevo para tomar una decisión de escala.

También puede usar una alerta del registro de actividad para supervisar el estado del motor de escalado automático. Además de usar alertas de registro de actividad, también puede configurar notificaciones de correo electrónico o webhook para recibir notificaciones para realizar acciones de escalado correctas a través de la pestaña notificaciones de la configuración de escalado automático.