Com o AWS Batch, basta empacotar o código dos trabalhos em lote, especificar suas dependências e enviar o trabalho em lote usando o Console de Gerenciamento da AWS, as CLIs ou os SDKs. O AWS Batch permite que você especifique os parâmetros de execução e as dependências do trabalho. Além disso, ele facilita a integração com uma ampla variedade de linguagens e mecanismos conhecidos de fluxo de trabalho de computação em lote (por exemplo: Pegasus WMS, Luigi Nextflow, Metaflow, Apache Airflow e AWS Step Functions). O AWS Batch provisiona e escala de modo eficiente e dinâmico o Amazon EC2 e as instâncias Spot com base nos requisitos de trabalhos. O AWS Batch disponibiliza filas de trabalho padrão e definições de ambiente de computação que permitem começar a usá-lo rapidamente.

Provisionamento e escalabilidade de recursos computacionais dinâmicos

O AWS Batch disponibiliza ambientes computacionais gerenciados que fornecem e escalam de modo dinâmico recursos computacionais com base nos requisitos de volume e recursos dos trabalhos enviados. É possível configurar os seus ambientes computacionais gerenciados do AWS Batch com requisitos, como os tipos de instâncias EC2, a configuração de sub-rede VPC, as vCPUs mín./máx./desejadas entre todas as instâncias e o valor que você estiver disposto a pagar para adquirir instâncias Spot em relação ao preço de instâncias sob demanda.

Como opção, é possível provisionar e gerenciar seus próprios recursos computacionais dentro dos ambientes computacionais não gerenciados do AWS Batch caso seja necessário usar configurações diferentes (ex.: volumes do EBS maiores ou um sistema operacional diferente) para instâncias EC2 do que as disponibilizadas pelos ambientes computacionais gerenciados do AWS Batch. Só é necessário provisionar instâncias EC2 que incluam o agente do Amazon ECS e executem versões compatíveis do Linux e do Docker. Em seguida, o AWS Batch executará trabalhos em lote nas instâncias do EC2 provisionadas.

Suporte para cargas de trabalho HPC agrupadas

O AWS Batch oferece suporte a trabalhos de vários nós em paralelo, o que permite executar trabalhos únicos que abrangem várias instâncias do EC2. Esse recurso permite usar o AWS Batch para executar com facilidade e eficiência cargas de trabalho, como aplicativos de Computação de Alta Performance (HPC) em escala maior totalmente acoplados e treinamento do modelo de GPU distribuída. O AWS Batch oferece suporte também a Elastic Fabric Adapter, uma interface de rede que permite executar aplicativos que exigem altos níveis de comunicação entre nós em escala na AWS. 

Definições de trabalhos granulares e modelagem simples de dependências de trabalhos

O AWS Batch permite especificar requisitos de recursos específicos, como vCPU e memória, funções do AWS Identity and Access Management (IAM), pontos de montagem de volume, propriedades de contêiner e variáveis de ambiente para definir como os trabalhos devem ser executados. O AWS Batch executa trabalhos como se fossem aplicativos contidos em execução no Amazon ECS. O Batch permite definir dependências entre trabalhos diferentes. Por exemplo, o trabalho em lote pode ser composto por três estágios diferentes de processamento com necessidades de recursos diferentes. Com as dependências, é possível criar três trabalhos com requisitos de recursos diferentes em que cada trabalho sucessivo dependa do trabalho anterior.

Programação de trabalhos com base em prioridade

O AWS Batch permite configurar várias filas com níveis diferentes de prioridade. Os trabalhos em lote são armazenados nas filas até que os recursos computacionais estejam disponíveis para executar o trabalho. O programador do AWS Batch avalia quando, onde e como executar trabalhos que foram enviados para uma fila com base nos requisitos de recursos de cada trabalho. O programador avalia a prioridade de cada fila e executa trabalhos na ordem de prioridades usando os melhores recursos computacionais (por exemplo: memória versus CPU otimizada), contanto que esses trabalhos não tenham dependências pendentes.

Suporte à programação de GPU

A programação de GPU permite que você especifique o número e o tipo de aceleradores necessários para seus trabalhos como variáveis de entrada de definição de tarefa no AWS Batch. O AWS Batch ampliará a escala das instâncias de modo adequado para os seus trabalhos com base no número necessário de GPUs e isolará os aceleradores de acordo com as necessidades de cada trabalho para que somente os contêineres adequados possam acessá-los.

O AWS Batch pode ser integrado a mecanismos e linguagens de fluxo de trabalho comerciais e de código aberto, como Pegasus WMS, Luigi, Nextflow, Metaflow, Apache Airflow e AWS Step Functions, o que permite o uso de linguagens conhecidas de fluxo de trabalho para modelar pipelines de computação em lotes.

Integração com modelos de execução do EC2

Agora, o AWS Batch oferece suporte a modelos de execução do EC2, o que permite criar modelos personalizados para os recursos computacionais e habilitar o Batch a escalar instâncias com esses requisitos. Você pode especificar o modelo de execução do EC2 para adicionar volumes de armazenamento, definir interfaces de rede ou configurar permissões, entre outros recursos. Os modelos de execução do EC2 reduzem o número de etapas necessárias para configurar ambientes do Batch por meio da captura dos parâmetros de execução em um mesmo recurso.

Estratégias de alocação flexíveis

O AWS Batch permite que os clientes escolham três métodos para alocar recursos de computação. Essas estratégias permitem que os clientes considerem o rendimento e o preço ao decidir como o AWS Batch deve escalar as instâncias em seu nome.

Melhor opção: o AWS Batch seleciona um tipo de instância que é a melhor opção para as necessidades dos trabalhos com uma preferência pelo tipo de instância de menor custo. Se instâncias adicionais do tipo de instância selecionado não estiverem disponíveis, o AWS Batch aguardará que as instâncias adicionais estejam disponíveis. Se não houver instâncias suficientes disponíveis ou se o usuário estiver atingindo os service limits do Amazon EC2, trabalhos adicionais não serão executados até que os trabalhos em execução no momento estejam concluídos. Essa estratégia de alocação mantém os custos baixos, mas pode limitar a escalabilidade.

Melhor opção progressiva: o AWS Batch selecionará tipos de instância adicionais que são suficientemente grandes para atender aos requisitos dos trabalhos na fila, com uma preferência pelos tipos de instâncias com menor custo por vCPU unitário. Se instâncias adicionais dos tipos selecionados anteriormente não estiverem disponíveis, o AWS Batch selecionará novos tipos de instâncias.

Capacidade de spot otimizada: o AWS Batch selecionará um ou mais tipos de instâncias que são suficientemente grandes para atender aos requisitos dos trabalhos na fila, com uma preferência pelos tipos de instâncias com menor propensão de serem interrompidos. Essa estratégia de alocação só está disponível para recursos de computação de instâncias spot.

Monitoramento e registro em logs integrados

O AWS Batch exibe métricas operacionais essenciais para seus trabalhos em lote no Console de Gerenciamento da AWS. É possível ver métricas relacionadas à capacidade computacional, como também aos trabalhos em execução, pendentes e concluídos. Os logs dos trabalhos (ex.: STDERR e STDOUT) estão disponíveis no Console de Gerenciamento da AWS e também estão gravados no Amazon CloudWatch Logs.

Controle de acesso minucioso

O AWS Batch usa o IAM para controlar e monitorar os recursos da AWS que seus trabalhos podem acessar, como as tabelas do Amazon DynamoDB. Por meio do IAM, também é possível definir políticas para usuários diferentes na sua organização. Por exemplo, administradores podem receber permissões de acesso total para qualquer operação de API do AWS Batch, desenvolvedores podem ter permissões limitadas relacionadas à configuração de ambientes computacionais e ao registro de trabalhos e os usuários finais podem ficar restritos às permissões necessárias para enviar e excluir trabalhos.

Saiba mais sobre a definição de preço do AWS Batch

Acesse a página de definição de preço
Pronto para criar?
Comece a usar o AWS Batch
Mais dúvidas?
Entre em contato conosco