Configuración del escalado automático de Amazon MWAA Worker - Amazon Managed Workflows para Apache Airflow

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.

Configuración del escalado automático de Amazon MWAA Worker

El mecanismo de escalado automático aumenta automáticamente la cantidad de trabajadores de Apache Airflow en respuesta a las tareas en ejecución o en cola en su entorno de Amazon Managed Workflows for Apache Airflow y elimina a los trabajadores adicionales cuando no hay más tareas en cola o en ejecución. En esta página, se describe cómo configurar el escalado automático especificando el número máximo de trabajadores de Apache Airflow que se ejecutan en su entorno mediante la consola Amazon MWAA.

nota

Amazon MWAA utiliza las métricas de Apache Airflow para determinar cuándo se necesitan más procesos de trabajo de Celery Executor y aumenta el número de procesos de trabajo de Fargate hasta el valor especificado por max-workers según sea necesario. A medida que los trabajadores adicionales completan el trabajo y la carga de trabajo disminuye, Amazon MWAA los elimina y, por lo tanto, vuelve al valor establecido por. min-workers

Si los trabajadores eligen nuevas tareas mientras reducen su escala, Amazon MWAA se queda con el recurso de Fargate y no elimina al trabajador. Para obtener más información, consulta Cómo funciona el escalado automático de Amazon MWAA.

Cómo funciona el escalado de trabajadores

Amazon MWAA utiliza métricas de RunningTasks y QueuedTasks, donde (tareas en ejecución + tareas en cola)/(tareas por proceso de trabajo) = (procesos necesarios). Si el número de procesos requerido es superior al número actual de procesos de trabajo, Amazon MWAA añadirá los contenedores de procesos de trabajo de Fargate a ese valor, hasta alcanzar el valor máximo especificado por max-workers.

A medida que la carga de trabajo disminuye RunningTasks y la suma QueuedTasks métrica se reduce, Amazon MWAA solicita a Fargate que reduzca el número de trabajadores para proteger el medio ambiente. Los trabajadores que aún terminen de trabajar permanecerán protegidos durante la reducción de plantilla hasta que terminen su trabajo. Según la carga de trabajo, es posible que las tareas queden en cola mientras los trabajadores reducen su plantilla.

Uso de la consola de Amazon MWAA

Puede elegir el número máximo de procesos de trabajo que se pueden ejecutar en su entorno simultáneamente en la consola de Amazon MWAA. Por defecto, puede especificar un valor máximo de hasta 25.

Pasos para configurar el número de procesos de trabajo
  1. Abra la página Entornos en la consola de Amazon MWAA.

  2. Seleccione un entorno.

  3. Elija Editar.

  4. Elija Siguiente.

  5. Introduzca un valor en Recuento máximo de procesos de trabajo en el panel de clases de entorno.

  6. Seleccione Guardar.

nota

Este proceso puede tardar unos minutos hasta que los cambios se apliquen en el entorno.

Ejemplo de caso de uso de alto rendimiento

La sección siguiente describe el tipo de configuraciones que puede usar para habilitar el alto rendimiento y el paralelismo en un entorno.

Apache Airflow en las instalaciones

Por lo general, en una plataforma Apache Airflow local, configuraría los ajustes de paralelismo de tareas, escalado automático y simultaneidad en su archivo: airflow.cfg

  • core.parallelism: el número máximo de instancias de tareas que el programador puede ejecutar simultáneamente.

  • core.dag_concurrency: la simultaneidad máxima de los DAG (no de los procesos de trabajo).

  • celery.worker_autoscale: el número máximo y mínimo de tareas que se puede ejecutar simultáneamente en cualquier proceso de trabajo.

Por ejemplo, si core.parallelism estuviera configurado en 100 y core.dag_concurrency estuviera configurado en 7, con 2 DAG solo podría ejecutar un total de 14 tareas simultáneamente. Por ejemplo, cada DAG está configurado para ejecutar solo 7 tareas simultáneamente (en core.dag_concurrency), aunque el paralelismo general esté configurado en 100 (en core.parallelism).

En un entorno de Amazon MWAA

En un entorno de Amazon MWAA, puede configurar estos ajustes directamente en la consola de Amazon MWAA mediante Uso de las opciones de configuración de Apache Airflow en Amazon MWAAConfiguración de la clase de entorno Amazon MWAA, y el mecanismo de escalado automático del número máximo de trabajadores. Si bien no core.dag_concurrency está disponible en la lista desplegable como opción de configuración de Apache Airflow en la consola de Amazon MWAA, puede añadirla como una opción de configuración personalizada de Apache Airflow.

Supongamos que, cuando creó su entorno, eligió los ajustes siguientes:

  1. La clase de entorno mw1.small, que controla el número máximo de tareas simultáneas que cada proceso de trabajo puede ejecutar por defecto y la vCPU de los contenedores.

  2. La configuración predeterminada de 10 procesos de trabajo en el Número máximo de procesos de trabajo.

  3. Una opción de configuración de Apache Airflow para celery.worker_autoscale de 5,5 tareas por proceso de trabajo.

Esto significa que puede ejecutar 50 tareas simultáneas en su entorno. Las tareas superiores a 50 se pondrán en cola y esperarán a que se completen las tareas en ejecución.

Ejecución de más tareas simultáneas. Puede modificar su entorno para ejecutar más tareas simultáneamente mediante las siguientes configuraciones:

  1. Aumente el número máximo de tareas simultáneas que cada proceso de trabajo puede ejecutar por defecto y la vCPU de los contenedores eligiendo la clase de entorno mw1.medium (10 tareas simultáneas de forma predeterminada).

  2. Añádala celery.worker_autoscale como un opción de configuración de Apache Airflow.

  3. Aumente el número máximo de procesos de trabajo. En este ejemplo, aumentar el número máximo procesos de trabajo de 10 a 20 duplicaría el número de tareas que el entorno puede ejecutar simultáneamente.

Especifique el número mínimo de procesos de trabajo. También puede especificar el número mínimo y máximo de Apache Airflow Workers que se ejecutan en su entorno mediante el (). AWS Command Line Interface AWS CLI Por ejemplo:

aws mwaa update-environment --max-workers 10 --min-workers 10 --name YOUR_ENVIRONMENT_NAME

Para más información, consulte el comando update-environment en la AWS CLI.

Solución de problemas de tareas bloqueadas en estado de ejecución

En raras ocasiones, Apache Airflow puede pensar que hay tareas aún en ejecución. Para resolver este problema, debe borrar la tarea pendiente en la interfaz de usuario de Apache Airflow. Para información, consulte el tema sobre solución de problemas Veo que mis tareas están bloqueadas o no se están completando..

Siguientes pasos