Como configurar o ajuste de escala automático do trabalhador 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á.

Como configurar o ajuste de escala automático do trabalhador do Amazon MWAA

O mecanismo de ajuste de escala automático aumenta automaticamente o número de trabalhadores do Apache Airflow em resposta às tarefas em execução e enfileiradas no ambiente de Workflows gerenciados pela Amazon para Apache Airflow e descarta trabalhadores extras quando não há mais tarefas na fila ou em execução. Este tópico 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 workload 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 do Fargate e não removerá o trabalhador. Para obter mais informações, consulte How Amazon MWAA auto scaling works.

Como funciona o ajuste de escala de trabalhadores

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 workload diminui e a soma de RunningTasks e QueuedTasks da métrica é reduzida, o Amazon MWAA solicita ao Fargate reduzir a escala verticalmente dos trabalhadores do ambiente. Todos os trabalhadores que ainda estão concluindo o trabalho permanecem protegidos durante a redução da escala até concluírem o trabalho. Dependendo da workload, 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 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 on-premises do Apache Airflow, você definiria as configurações de paralelismo, ajuste de escala automático e simultaneidade de tarefas no 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 concorrência máxima para DAGs (não trabalhadores).

  • 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 como7, você ainda só seria capaz de 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 do Amazon MWAA, é possível definir essas configurações diretamente no console do Amazon MWAA usando Como usar opções de configuração do Apache Airflow no Amazon MWAA, Como configurar a classe de ambiente do Amazon MWAA e o mecanismo de ajuste de escala automático de Contagem máxima de trabalhadores. Embora core.dag_concurrency não esteja disponível na lista suspensa como uma opção de configuração do Apache Airflow no console do Amazon MWAA, é possível 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 Solução de problemas para Amazon Managed Workflows para Apache Airflow.

Próximas etapas