Ambiente de computação - AWS Batch

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á.

Ambiente de computação

As filas de trabalho são mapeadas para um ou mais ambientes de computação. Os ambientes de computação contêm as instâncias de contêiner do Amazon ECS que são usadas para executar trabalhos em lote em contêineres. Um ambiente de computação específico também podem ser mapeado para uma ou mais filas de trabalho. Em uma fila de trabalho, cada ambiente de computação associado tem um pedido que é usado pelo programador para determinar onde os trabalhos que estão prontos para serem executados serão executados. Se o primeiro ambiente de computação tiver um status de VALID e recursos disponíveis, o trabalho será agendado para uma instância de contêiner nesse ambiente de computação. Se o primeiro ambiente de computação tiver um status de INVALID ou não puder fornecer um recurso de computação adequado, o agendador tentará executar o trabalho no próximo ambiente de computação.

Ambientes de computação gerenciados

Você pode usar um ambiente computacional gerenciado para AWS Batch gerenciar a capacidade e os tipos de instância dos recursos computacionais dentro do ambiente. Isso se baseia nas especificações do recurso de computação que você define ao criar o ambiente de computação. Você pode optar por usar instâncias sob demanda do Amazon EC2 e instâncias spot do Amazon EC2. Como alternativa, você pode usar a capacidade do Fargate e do Fargate Spot em seu ambiente de computação gerenciado. Ao usar instâncias spot, você pode, como opção, definir um preço máximo. Assim, as instâncias spot são iniciadas apenas quando o preço da instância spot estiver abaixo de uma porcentagem especificada do preço sob demanda.

Importante

As instâncias Fargate Spot não são suportadas no. Windows containers on AWS Fargate Uma fila de trabalhos será bloqueada se um FargateWindows trabalho for enviado a uma fila de trabalhos que usa somente ambientes computacionais Fargate Spot.

Ambientes de computação gerenciados iniciam instâncias do Amazon EC2 na VPC e nas sub-redes que você especifica e, em seguida, as registram em um cluster do Amazon ECS. As instâncias do Amazon EC2 precisam de acesso de rede externo para se comunicar com o endpoint de serviço do Amazon ECS. Algumas sub-redes não fornecem às instâncias do Amazon EC2 endereços IP públicos. Se suas instâncias do Amazon EC2 não tiverem um endereço IP público, elas deverão usar a conversão de endereço de rede (NAT) para obter esse acesso. Para obter mais informações, consulte Gateways NAT no Guia do usuário da Amazon VPC. Para obter mais informações sobre como criar uma VPC, consulte Criando uma Nuvem Privada Virtual .

Por padrão, os ambientes computacionais AWS Batch gerenciados usam uma versão recente e aprovada da AMI otimizada do Amazon ECS para recursos computacionais. No entanto, você pode querer criar sua própria AMI a ser usada para seus ambientes de computação gerenciados por vários motivos. Para ter mais informações, consulte Recursos de computação de AMIs.

nota

AWS Batch não atualiza automaticamente as AMIs em um ambiente computacional após sua criação. Por exemplo, ele não atualiza as AMIs no seu ambiente de computação quando uma versão mais recente da AMI otimizada do Amazon ECS é liberada. Você é responsável pelo gerenciamento do sistema operacional convidado. Isso inclui quaisquer atualizações e patches de segurança. Você também é responsável por quaisquer outros utilitários ou aplicativos de software que instalar nos recursos de computação. Há duas maneiras de usar uma nova AMI para seus AWS Batch trabalhos. O método original é concluir as seguintes etapas:

  1. Crie um novo ambiente de computação com a nova AMI.

  2. Adicione o ambiente de computação a uma fila de trabalhos existente.

  3. Remova o antigo ambiente de computação da fila de trabalhos.

  4. Exclua o ambiente de computação anterior.

Em abril de 2022, AWS Batch foi adicionado suporte aprimorado para atualização de ambientes computacionais. Para ter mais informações, consulte Criação de um ambiente de computação. Para utilizar a atualização aprimorada de ambientes de computação para atualizar AMIs, siga estas regras:

  • Não defina o parâmetro da função de serviço (serviceRole) nem o defina como a função AWSServiceRoleForBatchvinculada ao serviço.

  • Defina o parâmetro da estratégia de alocação (allocationStrategy) como BEST_FIT_PROGRESSIVE, SPOT_CAPACITY_OPTIMIZED ou SPOT_PRICE_CAPACITY_OPTIMIZED.

  • Defina o parâmetro de atualização para a versão mais recente da imagem (updateToLatestImageVersion) como true.

  • Não especifique uma ID de AMI em imageId, imageIdOverride (em ec2Configuration) ou no modelo de execução (launchTemplate). Nesse caso, AWS Batch seleciona a AMI otimizada mais recente do Amazon ECS que é suportada AWS Batch no momento em que a atualização da infraestrutura é iniciada. Como alternativa, é possível especificar o ID da AMI os parâmetros imageId ou imageIdOverride ou o modelo de inicialização identificado pelas propriedades LaunchTemplate. A alteração de qualquer uma dessas propriedades inicia uma atualização da infraestrutura. Se a ID da AMI for especificada no modelo de execução, ela não poderá ser substituída pela especificação de uma ID da AMI nos parâmetros imageId ou imageIdOverride. Ela só pode ser substituída especificando um modelo de lançamento diferente. Ou, se a versão do modelo de lançamento estiver definida como $Default ou $Latest, definindo uma nova versão padrão para o modelo de execução (se for $Default) ou adicionando uma nova versão ao modelo de execução (se for $Latest).

Se essas regras forem seguidas, qualquer atualização que inicie uma atualização de infraestrutura fará com que o ID da AMI seja novamente selecionado. Se a configuração da version no modelo de execução (launchTemplate) for definida como $Latest ou $Default, a versão mais recente ou padrão do modelo de inicialização será avaliada no momento da atualização da infraestrutura, mesmo que o launchTemplate não tenha sido atualizado.

Consideração ao criar trabalhos paralelos de vários nós

AWS Batch recomenda a criação de ambientes de computação dedicados para executar trabalhos paralelos de vários nós (MNP) e trabalhos não MNP. Isso se deve à forma como a capacidade de computação é criada em seu ambiente de computação gerenciado. Ao criar um novo ambiente de computação gerenciado, se você especificar um valor minvCpu maior que zero, o AWS Batch criará um pool de instâncias para uso somente com trabalhos não MNP. Se um trabalho paralelo de vários nós for enviado, AWS Batch criará uma nova capacidade de instância para executar os trabalhos paralelos de vários nós. Nos casos em que há trabalhos paralelos de um e vários nós em execução no mesmo ambiente computacional em que um maxvCpus valor minvCpus ou é definido, se os recursos computacionais necessários não estiverem disponíveis, AWS Batch aguardará a conclusão dos trabalhos atuais antes de criar os recursos computacionais necessários para executar os novos trabalhos.

Ambientes de computação não gerenciados

Em um ambiente de computação não gerenciado, você gerencia seus próprios recursos de computação. Você deve verificar se a AMI que usa para seus recursos de computação atende à especificação da AMI da instância de contêiner. Para obter mais informações, consulte Especificação da AMI do recurso de computação e Como criar uma AMI de recursos de computação.

nota

AWS Os recursos do Fargate não são suportados em ambientes computacionais não gerenciados.

Depois de criar seu ambiente computacional não gerenciado, use a operação de DescribeComputeEnvironmentsAPI para ver os detalhes do ambiente computacional. Encontre o cluster do Amazon ECS que está associado ao ambiente, e inicie manualmente suas instâncias de contêiner nesse cluster do Amazon ECS.

O AWS CLI comando a seguir também fornece o ARN do cluster Amazon ECS.

$ aws batch describe-compute-environments \ --compute-environments unmanagedCE \ --query "computeEnvironments[].ecsClusterArn"

Para obter mais informações, consulte Iniciando uma instância de contêiner do Amazon ECS no Guia do desenvolvedor do Amazon Elastic Container Service. Ao executar os recursos de computação, especifique o ARN do cluster do Amazon ECS que os recursos devem registrar com os seguintes dados de usuário do Amazon EC2. ecsClusterArnSubstitua pelo ARN do cluster que você obteve com o comando anterior.

#!/bin/bash echo "ECS_CLUSTER=ecsClusterArn" >> /etc/ecs/ecs.config