Configurando a escalabilidade automática do funcionário do Amazon MWAA - Amazon Managed Workflows for Apache Airflow

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurando a escalabilidade automática do funcionário do Amazon MWAA

O mecanismo de escalabilidade automática aumenta automaticamente o número de trabalhadores do Apache Airflow em resposta às tarefas em execução e em fila em seu ambiente Amazon Managed Workflows for Apache Airflow e descarta trabalhadores extras quando não há mais tarefas na fila ou em execução. Esta página descreve como você pode configurar o auto scaling especificando o número máximo de trabalhadores do Apache Airflow que são executados em seu ambiente usando o console Amazon MWAA.

nota

O Amazon MWAA usa métricas do Apache Airflow para determinar quando operadores adicionais do Executor Celery são necessários e, conforme exigido, aumenta o número de operadores da Fargate até o valor especificado por max-workers. À medida que os trabalhadores adicionais concluem o trabalho e a carga de trabalho diminui, o Amazon MWAA os remove, reduzindo assim a escala para o valor definido por. min-workers

Se os trabalhadores realizarem novas tarefas durante a redução da escala, o Amazon MWAA manterá o recurso Fargate e não removerá o funcionário. Para obter mais informações, consulte Como funciona o escalonamento automático do Amazon MWAA.

Como funciona o escalonamento de funcionários

O Amazon MWAA usa métricas RunningTasks e QueuedTasks, em que (tarefas em execução + tarefas em fila) / (tarefas por operador) = (operadores necessários). Se o número necessário de operadores for maior que o número atual, o Amazon MWAA adicionará contêineres de operadores Fargate a esse valor, até o valor máximo especificado em max-workers.

À medida que a carga de trabalho diminui RunningTasks e a soma QueuedTasks métrica diminui, a Amazon MWAA solicita à Fargate que reduza o número de trabalhadores para o meio ambiente. Todos os trabalhadores que ainda estão concluindo o trabalho permanecem protegidos durante a redução de escala até concluírem o trabalho. Dependendo da carga de trabalho, as tarefas podem ficar na fila enquanto os trabalhadores reduzem a escala.

Como usar o console do Amazon SNS

É possível escolher o número máximo de operadores que podem ser executados em seu ambiente simultaneamente no console do Amazon MWAA. Por padrão, é possível especificar um valor máximo de até 25.

Para configurar o número de operadores
  1. Abra a página Environments (Ambientes) no console do Amazon MWAA.

  2. Escolha um ambiente.

  3. Selecione a opção Editar.

  4. Escolha Próximo.

  5. No painel Classe de ambiente, insira um valor em Contagem máxima de operadores.

  6. Escolha Salvar.

nota

Poderá levar alguns minutos para que as alterações sejam aplicadas no seu ambiente.

Exemplo de caso de uso de alto desempenho

A seção a seguir descreve os tipos de configurações que é possível usar para permitir alto desempenho e paralelismo em um ambiente.

Apache Airflow on-premises

Normalmente, em uma plataforma Apache Airflow local, você definiria as configurações de paralelismo de tarefas, escalonamento automático e simultaneidade em seu arquivo: airflow.cfg

  • core.parallelism: o número máximo de instâncias de tarefas que podem ser executadas simultaneamente por agendador.

  • core.dag_concurrency: a simultaneidade máxima para DAGs (não operadores).

  • celery.worker_autoscale: o número máximo e mínimo de tarefas que podem ser executadas simultaneamente em qualquer operador.

Por exemplo, se core.parallelism estivesse definido como 100 e core.dag_concurrency estivesse definido como 7, você ainda só conseguiria executar um total de 14 tarefas simultaneamente se tivesse 2 DAGs. Dado isso, cada DAG está configurado para executar somente sete tarefas simultaneamente (em core.dag_concurrency), mesmo que o paralelismo geral esteja definido para 100 (em core.parallelism).

Um ambiente Amazon MWAA.

Em um ambiente Amazon MWAA, você pode definir essas configurações diretamente no console do Amazon MWAA usando Como usar opções de configuração do Apache Airflow no Amazon MWAAComo configurar a classe de ambiente do Amazon MWAA, e o mecanismo de escalabilidade automática de contagem máxima de trabalhadores. Embora não core.dag_concurrency esteja disponível na lista suspensa como uma opção de configuração do Apache Airflow no console Amazon MWAA, você pode adicioná-la como uma opção de configuração personalizada do Apache Airflow.

Digamos que, ao criar seu ambiente, você tenha escolhido as seguintes configurações:

  1. A classe de ambiente mw1.small, que controla o número máximo de tarefas simultâneas que cada operador pode executar por padrão e a vCPU dos contêineres.

  2. A configuração padrão de 10 operadores na Contagem máxima de operadores.

  3. Uma opção de configuração do Apache Airflow para celery.worker_autoscale de 5,5 tarefas por operador.

Isso significa que é possível executar 50 tarefas simultâneas em seu ambiente. Todas as tarefas além de 50 serão colocadas na fila e aguardarão a conclusão das tarefas em execução.

Execute mais tarefas simultâneas. É possível modificar seu ambiente para executar mais tarefas simultaneamente usando as seguintes configurações:

  1. Aumente o número máximo de tarefas simultâneas que cada operador pode executar por padrão e a vCPU dos contêineres escolhendo a classe de ambiente mw1.medium (10 tarefas simultâneas por padrão).

  2. Acrescente celery.worker_autoscale como opção de configuração do Apache Airflow.

  3. Aumente a contagem máxima de operadores. Neste exemplo, aumentar o número máximo de operadores de 10 para 20 dobraria o número de tarefas simultâneas que o ambiente pode executar.

Especifique o mínimo de operadores. Você também pode especificar o número mínimo e máximo de Apache Airflow Workers que são executados em seu ambiente usando o AWS Command Line Interface ()AWS CLI. Por exemplo: .

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

Para saber mais, consulte o comando update-environment em AWS CLI.

Tarefas de solução de problemas bloqueadas no estado de execução

Em casos raros, o Apache Airflow pode achar que ainda há tarefas em execução. Para resolver esse problema, você precisa limpar a tarefa perdida na sua IU do Apache Airflow. Para obter mais informações, consulte o tópico sobre solução de problemas Vejo minhas tarefas travadas ou não concluídas.

Próximas etapas