P: O que é o AWS Batch?

O AWS Batch é um conjunto de recursos de gerenciamento de lotes que permite que desenvolvedores, cientistas e engenheiros executem com facilidade e eficiência centenas de milhares de trabalhos de computação em lotes na AWS. O AWS Batch provisiona automaticamente a quantidade e o tipo de recursos de computação ideais (por exemplo, instâncias otimizadas para CPU ou memória) de acordo com os requisitos de volume e recursos específicos dos trabalhos em lotes enviados. Com o AWS Batch, não há necessidade de instalar e gerenciar software ou clusters de servidores de computação em lotes, e você pode se concentrar na análise de resultados e na solução de problemas. O AWS Batch planeja, programa e executa cargas de trabalho de computação usando o Amazon EC2 e instâncias spot.

P: O que é computação em lotes?
A computação em lotes é a execução de uma série de programas (“trabalhos”) em um ou mais computadores sem intervenção manual. Os parâmetros de entrada são predefinidos por meio de scripts, argumentos de linha de comando, arquivos de controle ou linguagem de controle de trabalhos. Um determinado trabalho em lotes pode depender da conclusão de trabalhos anteriores ou da disponibilidade de determinadas entradas. Com isso, a sequência e a programação de vários trabalhos passam a ser importantes, inviabilizando o processamento interativo.

P: Quais são os benefícios da computação em lotes?

  • Permite deslocar o período de processamento de trabalhos para horários com disponibilidade de capacidade mais ou menos cara.
  • Evita recursos de computação ociosos, com intervenção e supervisão manuais frequentes.
  • Aumenta a eficiência promovendo maior utilização dos recursos de computação.
  • Permite priorizar trabalhos, alinhando a alocação de recursos aos objetivos empresariais.

P: Por que devo usar o AWS Batch?
O AWS Batch se encarrega da execução de trabalhos e do gerenciamento de recursos computacionais, permitindo que você se concentre no desenvolvimento de aplicações ou na análise de resultados, em vez de na configuração e gerenciamento de infraestrutura. Se você está considerando a execução ou migração de cargas de trabalho na AWS, deve considerar o uso do AWS Batch.

P: Para quais casos de uso o AWS Batch é otimizado?
O AWS Batch é otimizado para computação em lotes e aplicações que permitem alterar a escala por meio da execução de vários trabalhos em paralelo. Aprendizado profundo, análises genômicas, modelos de riscos financeiros, simulações de Monte Carlo, renderização de animações, transcodificação de mídia, processamento de imagens e simulações de engenharia são exemplos excelente de aplicações de computação em lotes.


P: Quais são os principais recursos do AWS Batch?
O AWS Batch gerencia ambientes de computação e filas de trabalhos, permitindo que você execute facilmente milhares de trabalhos em qualquer escala usando o Amazon EC2 e o spot do EC2. Basta definir e enviar os trabalhos em lotes para uma fila. Como resposta, o AWS Batch escolhe onde executar os trabalhos, iniciando capacidade adicional da AWS quando necessário. O AWS Batch monitora com cuidado o andamento dos seus trabalhos. Quando a capacidade deixar de ser necessária, o AWS Batch a removerá. Além disso, o AWS Batch oferece a capacidade de enviar trabalhos como parte de um fluxo ou fluxo de trabalho, permitindo exprimir todas as interdependências existentes entre os trabalhos durante o seu envio.

P: Quais os tipos de trabalhos em lotes permitidos pelo AWS Batch?
O AWS Batch é compatível com qualquer trabalho que possa ser executado como um contêiner de docker. Os trabalhos especificam os requisitos de memória e o número de vCPUs.  

P: O que é um recurso de computação?
Um recurso de computação do AWS Batch é uma instância EC2.

P: O que é um ambiente de computação?
Um ambiente de computação do AWS Batch é uma coleção de recursos de computação onde os trabalhos são executados. O AWS Batch permite dois tipos de ambientes de computação: ambientes de computação gerenciados, que são provisionados e gerenciados pela AWS, e ambientes de computação não gerenciados, que são gerenciados pelos clientes. Os ambientes de computação não gerenciados oferecem um mecanismo para usar recursos especializados, como hosts dedicados, maiores configurações de armazenamento e o Amazon EFS.

P: O que é uma definição de trabalho?
Uma definição de trabalho descreve a atividade a ser executada, os parâmetros, as variáveis ambientais, os requisitos de computação e outras informações usadas para otimizar a execução de um trabalho. As definições de trabalho são estabelecidas antes que ele seja enviado e podem ser compartilhadas com outras pessoas.

P: O que é o agente do Amazon ECS e como ele é usado pelo AWS Batch?
O AWS Batch usa o Amazon ECS para executar trabalhos em contêineres e, portanto, exige a instalação do agente do ECS nos recursos computacionais dentro dos ambientes de computação do AWS Batch. O agente do ECS é pré-instalado em ambientes de computação gerenciados.

P: Como o AWS Batch facilita o uso do EC2 Spot?
Os ambientes de computação do AWS Batch podem ser compostos por instâncias EC2 Spot. Durante a criação de um ambiente de computação gerenciado, basta especificar que você gostaria de usar o EC2 Spot e fornecer uma porcentagem de definição de preço sob demanda que você está disposto a propor. O AWS Batch se encarregará do resto. Os ambientes de computação não gerenciados também podem incluir instâncias spot que você executou, incluindo as executadas pelo EC2 Spot Fleet.


P: Qual é a definição de preço do AWS Batch?
Não há cobrança adicional para o AWS Batch. Você paga apenas pelos recursos da AWS (por exemplo, instâncias EC2) criados para armazenar e executar os trabalhos em lotes.


P: Como posso começar a usar?
Siga o guia de conceitos básicos em nossa documentação para começar a usar.

P: O que preciso provisionar para começar a usar?
Não é necessário lançar manualmente seus próprios recursos de computação para começar a usar. O console web do AWS Batch oferece orientação durante o processo de criação do primeiro ambiente de computação e da primeira fila de trabalhos, permitindo que você envie seu primeiro trabalho. A escala dos recursos no ambiente de computação será aumentada conforme trabalhos adicionais fiquem prontos para execução, e será diminuída com a redução do número de trabalhos executáveis.