Todos los productos
Search
Centro de documentos

Auto Scaling:Best practices for coordinating scheduled and event-triggered tasks

Última actualización: Sep 02, 2026

Auto Scaling admite tanto tareas programadas como tareas activadas por eventos (incluidas las reglas de seguimiento de objetivo). Cuando ambas están activas, una configuración inadecuada puede provocar que una tarea activada por eventos anule un escalado horizontal programado, lo que genera una capacidad inesperada. Este tema explica cómo interactúan estas tareas y proporciona una configuración recomendada para evitar conflictos de escalado.

Escenario del problema

Cuando un grupo de escalado tiene habilitados simultáneamente el número esperado de instancias, las tareas programadas y las tareas activadas por eventos (como las reglas de seguimiento de objetivo), puede producirse un conflicto: una tarea programada desencadena un escalado horizontal, pero antes de que se complete, se activa una tarea basada en eventos que sobrescribe el número esperado de instancias e impide que el escalado horizontal surta efecto.

Casos típicos

Caso 1: Escalado horizontal programado anulado por una regla de seguimiento de objetivo

El grupo de escalado de un usuario está configurado de la siguiente manera:

  • El número esperado de instancias está habilitado.

  • Tarea programada: Todos los días a las 8:00 AM, escalar horizontalmente a 200 instancias.

  • Regla de seguimiento de objetivo: Mantener la utilización de CPU al 60 %.

Ejecución real:

Hora

Evento

Cambio en el número esperado de instancias

08:00:15

La tarea programada se activa y cambia el número esperado de instancias de 80 a 200.

80 → 200

08:00:28

La regla de seguimiento de objetivo desencadena un escalado horizontal de 10 instancias y sobrescribe el número esperado de instancias de 200 a 90.

200 → 90

Resultado: El objetivo de 200 instancias establecido por la tarea programada fue anulado. El recuento final fue de solo 90 instancias, muy por debajo del requisito empresarial.

Caso 2: Tarea programada anulada por una regla de seguimiento de objetivo

El grupo de escalado de un usuario está configurado de la siguiente manera:

  • El número esperado de instancias está habilitado.

  • Tarea programada: Utiliza una expresión cron para escalar horizontalmente las instancias en un porcentaje determinado.

  • Regla de seguimiento de objetivo: Mantener la utilización de memoria en un valor objetivo.

Ejecución real:

Hora

Evento

Cambio en el número esperado de instancias

12:00:08

La tarea programada se activa y cambia el número esperado de instancias de 20 a 40.

20 → 40

12:00:50

La tarea activada por eventos desencadena un escalado horizontal de 1 instancia y sobrescribe el número esperado de instancias de 40 a 21.

40 → 21

Resultado: El objetivo de 40 instancias establecido por la tarea programada fue anulado. El recuento final fue de solo 21 instancias.

Caso 3: Número esperado de instancias establecido por tarea programada anulado por una regla simple

El grupo de escalado de un usuario está configurado de la siguiente manera:

  • El número esperado de instancias está habilitado.

  • Tarea programada: Cambia el número esperado de instancias a 50.

  • Tarea activada por eventos: Asociada con una regla simple.

Ejecución real:

Hora

Evento

Cambio en el número esperado de instancias

09:00:10

La tarea programada se activa y cambia el número esperado de instancias de 2 a 50.

2 → 50

09:00:22

La tarea activada por eventos desencadena un escalado horizontal de 3 instancias y sobrescribe el número esperado de instancias de 50 a 5.

50 → 5

Resultado: El objetivo de 50 instancias establecido por la tarea programada fue anulado. El recuento final fue de solo 5 instancias.

Análisis de la causa

La causa raíz reside en los diferentes mecanismos de ejecución de las tareas programadas y las tareas activadas por eventos:

Aspecto

Tarea programada (solo modifica el número esperado de instancias)

Tarea activada por eventos

Método de ejecución

Solo modifica el valor del número esperado de instancias sin desencadenar directamente una actividad de escalado.

Desencadena inmediatamente una actividad de escalado y actualiza simultáneamente el número esperado de instancias.

Tiempo de efectividad

Tarda entre 30 segundos y 1 minuto en surtir efecto después de modificar el número esperado de instancias.

Surtir efecto de inmediato.

Riesgo de conflicto

Durante la ventana de retraso, otras tareas pueden sobrescribir el valor.

Después de la ejecución, el número esperado de instancias se actualiza al valor real actual.

Problema principal: Cuando una tarea programada solo modifica el número esperado de instancias, el cambio no es atómico ni surte efecto inmediatamente. Durante el retraso de 30 segundos a 1 minuto, una tarea activada por eventos puede activarse según el recuento real actual de instancias, recalcular y sobrescribir el número esperado de instancias.

Mejor práctica: Tareas programadas para la capacidad base y tareas activadas por eventos para la capacidad elástica

Descripción general de la solución

Utilice un modelo de capacidad en capas "base + elástica" para separar claramente las responsabilidades de las tareas programadas y las tareas activadas por eventos:

  • Capacidad base (gestionada por tareas programadas): Utilice tareas programadas para establecer tanto el número mínimo como el esperado de instancias. Esto garantiza que las tareas activadas por eventos no puedan reducir el límite de capacidad durante las horas pico.

  • Capacidad elástica (gestionada por tareas activadas por eventos): Utilice reglas de seguimiento de objetivo o tareas activadas por eventos para agregar o eliminar instancias dinámicamente por encima de la capacidad base según la carga real.

定时任务与报警任务协同配置-设计原则_v1

Procedimiento

El siguiente ejemplo demuestra la configuración recomendada. Suponga que su negocio necesita escalar desde una línea base diaria de 10 instancias hasta 50 a las 8:00 AM, restaurar el nivel normal a las 10:00 PM y utilizar una regla de seguimiento de objetivo para mantener la utilización de CPU al 60 %.

Paso 1: Crear una tarea de escalado horizontal programada

Cree una tarea programada que establezca tanto el número mínimo como el esperado de instancias al inicio de las horas pico. De este modo, se asegura de que la capacidad base surta efecto inmediatamente y que las tareas activadas por eventos no puedan anularla.

  1. Inicie sesión en la Auto Scaling console.

  2. En el panel de navegación izquierdo, haga clic en Scaling Groups.

  3. Busque el grupo de escalado objetivo y haga clic en su nombre para abrir su página de detalles.

  4. Haga clic en la pestaña Scaling Rules and Tasks. En la pestaña Scheduled Tasks, haga clic en Create Scheduled Task.

  5. Cree una tarea de escalado horizontal programada con la siguiente configuración:

    Parámetro

    Valor

    Task Name

    scheduled-scale-up

    Executed At

    8:00 AM todos los días (o el inicio de sus horas pico de negocio)

    Recurrence

    Daily

    Scaling Method

    Configure Number of Instances in Scaling Group

    Minimum Instances

    50

    Expected Instances

    50

    Configuración clave : Establezca Scaling Method en Configure Number of Instances in Scaling Group , y configure tanto Minimum Instances como Expected Instances en 50. De esta forma, la tarea programada actualiza simultáneamente el número mínimo de instancias y el número esperado de instancias, lo que evita que las tareas activadas por eventos reduzcan el escalado por debajo de 50 instancias.

Paso 2: Crear una tarea de reducción de escala programada

Cree una tarea de reducción de escala programada emparejada. Una vez finalizadas las horas pico, restaure el número mínimo de instancias al nivel normal para evitar el desperdicio de recursos.

  1. En la pestaña Scheduled Tasks, haga clic en Create Scheduled Task y utilice la siguiente configuración:

    Parámetro

    Valor

    Task Name

    scheduled-scale-down

    Executed At

    10:00 PM todos los días (o el final de sus horas pico de negocio)

    Recurrence

    Daily

    Scaling Method

    Configure Number of Instances in Scaling Group

    Minimum Instances

    10

    Expected Instances

    10

Paso 3: Configurar una regla de seguimiento de objetivo

Cree una regla de seguimiento de objetivo que permita a las tareas activadas por eventos escalar automáticamente según la carga real por encima de la capacidad base establecida por las tareas programadas.

  1. Haga clic en la pestaña Scaling Rules and Tasks. En la pestaña Scaling Rules, haga clic en Create Scaling Rule.

  2. Cree una regla de seguimiento de objetivo con la siguiente configuración:

    Parámetro

    Valor

    Rule Type

    Target Tracking Scaling Rule

    Metric Type

    (ECS) Average CPU Utilization

    Target Value

    60%

La regla de seguimiento de objetivo ajusta automáticamente el número de instancias entre el mínimo y el máximo del grupo de escalado según la utilización de CPU. Dado que la tarea programada establece el número mínimo de instancias en 50, el recuento de instancias no cae por debajo de 50 incluso cuando la utilización de CPU es baja.

Comportamiento esperado después de la configuración

Hora

Evento

Número mínimo de instancias

Número esperado de instancias

Efecto real

8:00 AM diariamente

Se activa la tarea de escalado horizontal programada

10 → 50

10 → 50

Comienza inmediatamente el escalado horizontal a 50 instancias

8:00 AM – 10:00 PM

La regla de seguimiento de objetivo se ejecuta continuamente

50

≥50

Cuando la utilización de CPU supera el 60 %, escala horizontalmente por encima de la base de 50 instancias. Cuando es inferior al 60 %, reduce la escala a un mínimo de 50 instancias.

10:00 PM diariamente

Se activa la tarea de reducción de escala programada

50 → 10

50 → 10

Restaura el nivel de capacidad normal. Las instancias excedentes se liberan gradualmente.

Otros momentos

La regla de seguimiento de objetivo se ejecuta continuamente

10

≥10

Escala elásticamente desde una base de 10 instancias según la utilización de CPU

Puntos clave de configuración

  1. Seleccione "Configure Number of Instances in Scaling Group" como método de escalado para las tareas programadas. Establezca tanto el número mínimo de instancias como el número esperado de instancias, en lugar de modificar únicamente el número esperado de instancias.

  2. Cree tareas programadas en pares: Las tareas de escalado horizontal y de reducción deben ir en pares para garantizar que el número mínimo de instancias vuelva a la normalidad después de las horas pico y evitar el desperdicio de recursos.

  3. Relación entre el número mínimo de instancias, el número esperado de instancias y el número máximo de instancias:

    • Las tareas programadas controlan la capacidad base al establecer el número mínimo de instancias y el número esperado de instancias.

    • Las tareas activadas por eventos y las reglas de seguimiento de objetivo ajustan elásticamente entre el número mínimo de instancias y el número máximo de instancias.

    • Las reglas integradas del sistema garantizan que número mínimo de instancias ≤ número esperado de instancias ≤ número máximo de instancias. La prioridad es clara y no se necesita ningún mecanismo adicional para evitar conflictos.

Preguntas frecuentes

  • Después de que una tarea programada escala horizontalmente correctamente, ¿la regla de seguimiento de objetivo reducirá la escala de las instancias si la utilización de CPU es baja?

    No. La tarea programada también establece Minimum Instances. La regla de seguimiento de objetivo no reducirá la escala por debajo de Minimum Instances. Por esta razón es fundamental establecer simultáneamente Minimum Instances.

  • ¿Es viable modificar únicamente el número esperado de instancias en una tarea programada?

    No se recomienda. Modificar únicamente Expected Instances implica los siguientes riesgos:

    • El cambio en Expected Instances tiene un retraso de 30 segundos a 1 minuto antes de surtir efecto. Durante este período, una tarea activada por eventos podría sobrescribir el valor.

    • Incluso si el escalado horizontal se realiza correctamente, dado que Minimum Instances no se actualizó en consecuencia, la regla de seguimiento de objetivo podría reducir la escala por debajo del nivel previsto.

  • ¿Necesito establecer el número máximo de instancias en una tarea programada?

    Por lo general, no. Maximum Instances suele permanecer como un límite superior fijo para evitar un escalado ilimitado en situaciones anómalas. Si su negocio requiere diferentes límites de instancias en distintos momentos, también puede ajustar Maximum Instances en la tarea programada.

  • ¿Se producirán conflictos con tareas activadas por eventos que utilizan reglas simples en lugar de reglas de seguimiento de objetivo?

    Sí, aún pueden producirse conflictos. Independientemente de si la tarea activada por eventos está asociada con una Simple Scaling Rule, una Step Scaling Rule o una Target Tracking Scaling Rule, sobrescribirá Expected Instances si se activa durante el período de retraso de la tarea programada. La solución descrita en este tema se aplica a todos los tipos de tareas activadas por eventos.

Referencias