Tutorial: conceitos básicos da orquestração do Amazon EC2 - 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á.

Tutorial: conceitos básicos da orquestração do Amazon EC2

O Amazon Elastic Compute Cloud (Amazon EC2) oferece uma capacidade de computação escalável na Nuvem AWS. O uso do Amazon EC2 elimina a necessidade de investir em hardware inicialmente, portanto, você pode desenvolver e implantar aplicativos com mais rapidez.

É possível usar o Amazon EC2 para executar quantos servidores virtuais forem necessários, configurar a segurança e as redes e gerenciar o armazenamento. O Amazon EC2 permite aumentar ou reduzir a escala verticalmente para lidar com alterações nos requisitos ou com picos em popularidade, reduzindo sua necessidade de prever o tráfego.

Crie um ambiente de computação

Para criar um ambiente de computação para uma orquestração do Amazon EC2, faça o seguinte:

  1. Abra o assistente de primeira execução do console do AWS Batch.

  2. Em Selecionar tipo de orquestração, escolha Amazon Elastic Compute Cloud (Amazon EC2).

  3. Escolha Próximo.

  4. Na seção Configuração do ambiente de computação, em Nome, especifique um nome exclusivo para seu ambiente de computação. Os nomes podem ter até 128 caracteres. Pode conter letras minúsculas, maiúsculas, números, hifens e (-) e sublinhados (_).

  5. Em Perfil de instância, escolha um perfil de instância existente que tenha as permissões de IAM necessárias anexadas. Esse perfil de instância permite que as instâncias de contêiner do Amazon ECS no seu ambiente de computação façam chamadas para as operações de APIs da AWS necessárias. Para ter mais informações, consulte Função da ECS instância da Amazon.

  6. (Opcional) Uma tag é um rótulo atribuído a um recurso. Para adicionar uma tag ou uma tag do Amazon EC2, expanda Tags e escolha Adicionar tag. Insira um par valor-chave e escolha Adicionar tag novamente.

    Importante

    Se você escolher Adicionar tag, deverá inserir um par chave-valor e escolher Adicionar tag novamente ou escolher Remover tag.

  7. (Opcional) Na seção Configuração da instância para Usar instâncias spot do Amazon EC2, ative Habilitar uso de instâncias spot.

  8. (Apenas spot) Em Porcentagem máxima no preço sob demanda, insira a porcentagem máxima de preços sob demanda que você deseja pagar pelos recursos spot.

  9. (Opcional) (Apenas Spot) Em Função de frota spot, escolha uma função do Amazon EC2 da frota spot do perfil do IAM a ser aplicada ao seu ambiente de computação spot. Se você ainda não tiver um perfil do IAM da frota spot do Amazon EC2 existente, crie um primeiro. Para ter mais informações, consulte Papel da frota EC2 spot da Amazon.

    Importante

    Para marcar suas instâncias Spot na criação, sua função IAM do Amazon EC2 Frota Spot deve usar a política gerenciada mais recente do AmazonEC2SpotFleetTaggingRole. A política gerenciada AmazonEC2SpotFleetRole não tem as permissões necessárias para marcar as instâncias spot. Para ter mais informações, consulte Instâncias spot sem tags na criação e Marcar com tag os recursos do .

  10. Em Mínimo de vCPUs, escolha o número mínimo de vCPUs do EC2 que seu ambiente de computação mantém, independentemente da demanda da fila de trabalhos.

  11. Em vCPUs desejados, escolha o número de vCPUs do EC2 com que seu ambiente de computação é executado. Conforme a demanda da fila de trabalhos aumenta, o AWS Batch aumenta o número desejado de vCPUs e adiciona instâncias do EC2. O número de vCPUs pode aumentar até o número máximo de vCPUs. Conforme a demanda diminui, o AWS Batch diminui o número desejado de vCPUs e remove instâncias. O número diminui até o número mínimo de vCPUs.

  12. Em Máximo de vCPUs, escolha o número máximo de vCPUs do EC2 para o qual seu ambiente de computação deve aumentar, independentemente da demanda da fila de trabalhos.

  13. Para Tipos de instância permitidos, escolha os tipos de instância do Amazon EC2 que podem ser iniciados. Você pode especificar famílias de instâncias para iniciar qualquer tipo de instância dentro dessas famílias (por exemplo c5, c5n, ou p3). Ou você pode especificar tamanhos específicos dentro de uma família (como c5.8xlarge). Os tipos de instância Metal não estão nas famílias de instâncias. Por exemplo, c5 não inclui c5.metal. Você também pode escolher optimal para selecionar tipos de instância (das famílias de instâncias C4, M4, e R4 que correspondam à demanda de suas filas de trabalho.

    nota

    Ao criar um ambiente de computação, os tipos de instância selecionados para ele devem compartilhar a mesma arquitetura. Por exemplo, você não pode misturar instâncias ARM e x86 no mesmo ambiente de computação.

    nota

    O AWS Batch escala as GPUs com base na quantidade necessária nas filas de trabalho. Para usar o agendamento de GPU, o ambiente de computação deve incluir tipos de instância das famílias p2, p3, p4, p5, g3, g3s, g4, ou g5.

    nota

    Atualmente, o optimal usa tipos de instância das famílias de instâncias C4, M4 e R4. Em Regiões da AWS que não há tipos de instância dessas famílias de instância, são usados os tipos de instância das famílias de instância C5, M5, e R5.

  14. Expanda Additional configuration.

  15. (Opcional) Em Grupo de posicionamento, insira um nome de grupo de posicionamento para agrupar recursos no ambiente de computação.

  16. (Opcional) Em Par de chaves do EC2, escolha um par de chaves pública e privada como credenciais de segurança ao se conectar à instância. Para obter mais informações sobre pares de chaves do Amazon EC2, consulte Pares de chaves do Amazon EC2 e instâncias do Linux.

  17. Para Estratégia de alocação, escolha a estratégia de alocação a ser usada ao selecionar tipos de instância na lista de tipos de instância permitidos. BEST_FIT_PROGRESSIVE costuma ser a melhor opção para ambientes de computação EC2 sob demanda, e SPOT_CAPACITY_OPTIMIZED, para ambientes de computação EC2 Spot. Para ter mais informações, consulte Estratégias de alocação de tipos de instâncias para o AWS Batch.

  18. (Opcional) Em Configuração do EC2, escolha Adicionar configuração do EC2. Escolha valores de Tipo de imagem e Substituição de ID de imagem para fornecer informações para o AWS Batch para imagens de máquina da Amazon (AMIs) selecionadas para instâncias no ambiente de computação. Se a substituição de ID da imagem não for especificada para cada tipo de imagem, o AWS Batch seleciona uma AMI otimizada do Amazon ECS recente. Se nenhum tipo de imagem for especificado, o padrão será um Amazon Linux 2 para uma instância não GPU e não AWS Graviton.

    Importante

    Para usar uma AMI personalizada, escolha o tipo de imagem e insira a ID da AMI personalizada na caixa de substituição de ID da imagem.

    Amazon Linux 2

    Padrão para todas as famílias de instâncias baseadas no AWS Graviton (por exemplo, C6g, M6g, R6g e T4g) e pode ser usado para todos os tipos de instâncias não GPU.

    Amazon Linux 2 (GPU)

    Padrão para todas as famílias de instâncias GPU (por exemplo, P4 e G4) e pode ser usado para todos os tipos de instâncias não baseadas no AWS Graviton.

    Amazon Linux

    Pode ser usado para famílias de instâncias não GPU e não AWS Graviton. O suporte padrão para a AMI do Amazon Linux foi encerrado. Para obter mais informações, consulte AMI do Amazon Linux.

    nota

    A AMI que você escolher para um ambiente de computação deve corresponder à arquitetura dos tipos de instância que você deseja usar para este ambiente. Por exemplo, se o ambiente de computação usar tipos de instância A1, a AMI de recursos de computação escolhida deverá oferecer suporte a instâncias Arm. O Amazon ECS vende as versões x86 e Arm da Amazon ECS optimized Amazon Linux 2 AMI. Para obter mais informações, consulte AMI do Amazon Linux 2 otimizada para Amazon ECS no Guia do desenvolvedor do Amazon Elastic Container Service.

  19. (Opcional) Em Modelo de execução, selecione um modelo de execução existente do Amazon EC2 para configurar seus recursos de computação. A versão padrão do modelo é preenchida automaticamente. Para ter mais informações, consulte Use os modelos de EC2 lançamento da Amazon com AWS Batch.

    nota

    Em um modelo de execução, é possível especificar uma AMI personalizada que você tenha criado.

  20. (Opcional) Em Versão do modelo de execução, insira $Default, $Latest ou um número de versão específico para ser usado.

    Importante

    Depois que o ambiente de computação é criado, a versão do modelo de execução usada não é alterada, mesmo que a versão $Default ou $Latest do modelo de execução seja atualizada. Para usar uma nova versão do modelo de execução, primeiro crie um ambiente de computação e adicione o novo ambiente de computação à fila de trabalhos existente. Em seguida, remova o ambiente de computação antigo da fila de trabalhos e exclua o ambiente de computação antigo.

  21. Na seção Configuração de rede:

    1. Em ID da Nuvem privada virtual (VPC), selecione uma Amazon VPC.

    2. Em Sub-redes, estão listadas as sub-redes para a sua Conta da AWS. Se você quiser criar um conjunto personalizado de sub-redes, escolha Limpar sub-redes e, em seguida, escolha as sub-redes desejadas.

      Importante

      Os recursos de computação devem se comunicar com o endpoint da VPC do Amazon ECS por meio de um VPC endpoint ou de vários endereços IP públicos. Para obter mais informações, consulte VPC endpoint de interface do Amazon ECS (AWS PrivateLink). Se sua instância não tiver um VPC endpoint configurado ou um endereço IP público, você poderá usar a conversão de endereços de rede (NAT). Para obter mais informações NAT, consulte NAT gateways e Criar uma nuvem privada virtual .

    3. Em Grupos de segurança, escolha os grupos de segurança do Amazon EC2 que você deseja associar à instância. Se você quiser criar um conjunto personalizado de grupos de segurança, escolha Limpar grupos de segurança. Escolha os grupos de segurança que você deseja.

  22. Escolha Próximo.

Crie uma fila de trabalhos

Uma fila de trabalhos armazena os trabalhos enviados até que o Scheduler do AWS Batch execute o trabalho em um recurso de computação no seu ambiente de computação. Para obter mais informações, consulte Filas de tarefas

Para criar uma fila de trabalhos para uma orquestração do Amazon EC2, faça o seguinte:

  1. Na seção Configuração da fila de trabalhos, em Nome, especifique um nome exclusivo para seu ambiente de computação. Os nomes podem ter até 128 caracteres. Pode conter letras minúsculas, maiúsculas, números, hifens e (-) e sublinhados (_).

  2. Em Prioridade, insira um número inteiro entre 0 e 100 para a fila de trabalhos.

    Importante

    Valores inteiros mais altos são atribuídos a uma prioridade mais alta pelo AWS Batch Scheduler.

  3. Escolha Próximo.

Crie uma definição de trabalho

As definições de tarefas do AWS Batch especificam como os trabalhos devem ser executados. Embora cada tarefa deva fazer referência a uma definição de tarefa, muitos parâmetros que são especificados na definição de tarefa podem ser substituídos em runtime.

Para criar a definição de trabalho:

  1. Na seção Configuração geral:

    1. Na seção Configuração geral, em Nome, especifique um nome exclusivo para seu ambiente de computação. Os nomes podem ter até 128 caracteres. O nome pode conter letras minúsculas e maiúsculas, números, hifens e (-) e sublinhados (_).

    2. (Opcional) Em Tempo limite de execução, insira a quantidade de tempo (em segundos) após a qual um trabalho inacabado termina.

      Importante

      O tempo limite mínimo é de 60 segundos.

    3. (Opcional) Uma tag é um rótulo atribuído a um recurso. Para adicionar uma tag, expanda Tags e escolha Adicionar tag. Insira um par valor-chave e escolha Adicionar tag novamente.

      Importante

      Se você escolher Adicionar tag, deverá inserir um par chave-valor e escolher Adicionar tag novamente ou escolher Remover tag.

    4. (Opcional) Ative Propagar tags para propagar tags para o Amazon Elastic Container Service.

  2. Na seção Configuração de Contêiner:

    1. Em Imagem, insira o nome da imagem usada para iniciar o contêiner. Por padrão, todas as imagens no registro do Docker Hub estão disponíveis. Você também pode especificar outros repositórios no formato repository-url/image:tag. O parâmetro pode ter até 255 caracteres. O parâmetro conter letras maiúsculas e minúsculas, números, hifens (-), sublinhados (_), dois pontos (:), pontos (.), barras (/) e sinais de número (#). O parâmetro é mapeado para Image na seção Criar um contêiner da API remota do Docker e o parâmetro IMAGE de docker run.

      nota

      A arquitetura da imagem do Docker deve corresponder à arquitetura do processador dos recursos de computação nos quais eles foram programados. Por exemplo, imagens Arm baseadas em Docker só podem ser executadas em recursos de computação baseados em Arm.

      • As imagens em repositórios públicos do Amazon ECR usam as convenções de nomenclatura completaregistry/repository[:tag] ou registry/repository[@digest] (por exemplo, public.ecr.aws/registry_alias/my-web-app:latest).

      • As imagens em repositórios do Amazon ECR usam as convenções de nomenclatura registry/repository:tag completa (por exemplo, aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest).

      • As imagens em repositórios oficiais no Docker Hub usam um único nome (por exemplo, ubuntu ou mongo).

      • As imagens em outros repositórios no Docker Hub são qualificadas com um nome de organização (por exemplo, amazon/amazon-ecs-agent).

      • Imagens em outros repositórios online também são qualificadas por um nome de domínio (por exemplo, quay.io/assemblyline/ubuntu).

    2. Para Command, especifique o comando a ser passado para o contêiner. Esse parâmetro é mapeado para Cmd na seção Criar um contêiner da Docker Remote API e o parâmetro COMMAND de docker run. Para obter mais informações sobre o parâmetro CMD da Docker, consulte https://docs.docker.com/engine/reference/builder/#cmd.

      nota

      Você pode usar os valores padrão de substituição de parâmetros e marcadores no seu comando. Para ter mais informações, consulte Parâmetros.

    3. (Opcional) Para Função de execução, especifique um perfil do IAM que conceda aos atendentes de contêiner do Amazon ECS permissão para fazer chamadas da API da AWS em seu nome. Esse atributo usa perfis do IAM do Amazon ECS para tarefas. Para obter mais informações, consulte Perfis do IAM para execução de tarefa do Amazon ECS no Guia do desenvolvedor do Amazon Elastic Container Service.

    4. (Opcional) Em configuração de Perfil de trabalho, escolha um perfil do IAM que tenha permissões para as APIs da AWS. Esse atributo usa perfis do IAM do Amazon ECS para tarefas. Para mais informações, consulte Funções do IAM para Tarefas no Guia de Desenvolvedor Amazon Elastic Container Service.

      nota

      Somente perfis que tenham o relacionamento de confiança Função da tarefa do Amazon Elastic Container Service são mostradas aqui. Para obter mais informações sobre como criar um perfil do IAM para os trabalhos do seu AWS Batch, consulte Como criar um perfil do IAM e uma política para suas tarefas no Guia do desenvolvedor do Amazon Elastic Container Service.

    5. (Opcional) Você pode adicionar parâmetros à definição do trabalho como mapeamentos de chave-valor para substituir os padrões de definição do trabalho. Para adicionar um parâmetro:

      1. Em Parâmetros, escolha Adicionar parâmetro. Insira um par valores-chave e escolha Adicionar parâmetronovamente.

        Importante

        Se você escolher Adicionar parâmetro, deverá configurar pelo menos um parâmetro ou escolher Remover parâmetro.

    6. Na seção Configuração do ambiente em vCPUs, especifique o número de vCPUs a serem reservadas para o contêiner. Esse parâmetro é mapeado para CpuShares na seção Criar um Contêiner da API remota do Docker e a opção --cpu-shares para docker run. Cada vCPU equivale a 1.024 compartilhamentos de CPU.

    7. Em Memória, especifique o limite rígido (em MiB) de memória a ser apresentado ao contêiner do trabalho. Caso seu contêiner tente exceder a memória especificada, o mesmo será interrompido. Esse parâmetro é mapeado para Memory na seção Criar um Contêiner da API Remota Docker e para a opção --memory para docker run.

    8. Em Número de GPUs, escolha o número de GPUs a serem reservadas para o contêiner.

    9. (Opcional) Em Configuração de variáveis de ambiente, escolha Adicionar variáveis de ambiente para adicionar variáveis de ambiente a serem passadas para o contêiner. Esse parâmetro é mapeado para Env na seção Criar um Contêiner da API remota do Docker e a opção --env para docker run.

    10. (Opcional) Em Segredos, escolha Adicionar segredo para adicionar segredos como pares de nome-valor. Esses segredos são expostos no contêiner. Para obter mais informações, consulte LogConfiguration:secretOptions.

    11. (Opcional) Na seção Configuração do Linux:

      1. Para Usuário, insira o nome do usuário a ser usado dentro do contêiner. Esse parâmetro é mapeado para User na seção Criar um Contêiner da API remota do Docker e a opção --user para docker run.

      2. Para oferecer ao contêiner de trabalho permissões elevadas na instância do host (semelhante ao usuário root), arraste o controle deslizante Privilegiado para a direita. Esse parâmetro é mapeado para Privileged na seção Criar um Contêiner da API remota do Docker e a opção --privileged para docker run.

      3. Ative Ativar processo init para executar um processo init dentro do contêiner. Este processo encaminha sinais e colhe processos.

    12. (Opcional) Na seção Configuração do sistema de arquivos:

      1. Ative Habilitar sistema de arquivos somente para leitura para remover o acesso de gravação ao volume.

      2. Para Tamanho da memória compartilhada, insira o tamanho (em MiB) do volume /dev/shm.

      3. Em Tamanho máximo de troca, insira a quantidade total de memória de troca (em MiB) que o contêiner pode usar.

      4. Em Swappiness, insira um valor entre 0 e 100 para indicar o comportamento de troca de memória do contêiner. Se você não especificar um valor e a troca estiver ativada, o valor assumirá 60 como padrão. Para obter mais informações, consulte LinuxParameters:swappiness.

      5. (Opcional) Expanda Configuração adicional.

      6. Em Tmpfs, escolha Adicionar tmpfs para adicionar uma montagem tmpfs.

      7. Em Dispositivos, escolha Adicionar dispositivo para adicionar um dispositivo:

        1. Em Container path (Caminho do contêiner), especifique o caminho na instância de contêiner para expor o dispositivo mapeado para a instância de host. Se isso for deixado em branco, o caminho de host será usado no contêiner.

        2. Em Host path, especifique o caminho de um dispositivo na instância de host.

        3. Em Permissões, selecione uma ou mais permissões para serem aplicadas ao dispositivo. As permissões disponíveis são LER, GRAVAR e MKNOD.

      8. (Opcional) Para Configuração de ulimits, escolha Adicionar ulimit para adicionar um valor de ulimits ao contêiner. Insira os valores de Nome, Limite flexível, e Limite rígido e, em seguida, escolha Adicionar ulimit.

  3. Escolha Próximo.

Crie um trabalho

Para criar um trabalho, faça o seguinte:

  1. Na seção Configuração do trabalho, em Nome, especifique um nome exclusivo para o trabalho. Os nomes podem ter até 128 caracteres. Pode conter letras minúsculas, maiúsculas, números, hifens e (-) e sublinhados (_).

  2. Escolha Próximo.

Examinar e criar

Na página Revisar e criar, revise as etapas de configuração. Se precisar fazer alterações, escolha Edit (Editar). Quando terminar, escolha Criar recursos.