Criar uma definição de trabalho de nó único com vários contêineres nos recursos do Amazon EC2
Conclua as seguintes etapas para criar uma definição de trabalho com um único nó com vários contêineres nos recursos do Amazon Elastic Compute Cloud (Amazon EC2).
Para criar uma nova definição de trabalho em recursos do Amazon EC2:
-
Abra o console AWS Batch em https://console.aws.amazon.com/batch/
. -
Na barra de navegação, escolha a Região da AWS a ser usada.
-
No painel de navegação esquerdo, escolha Definições de trabalho.
-
Escolha Criar.
-
Para o Tipo de orquestração, escolha Amazon Elastic Compute Cloud (Amazon EC2).
-
Em Estrutura de definição do trabalho, desative o processamento Usar estrutura legado containerProperties.
-
Em Configuração da plataforma EC2, desative o processamento de Ativar paralelo de vários nós.
-
Escolha Próximo.
Na seção Configuração geral, insira o seguinte:
-
Em Nome, insira um nome exclusivo para a sua definição de trabalho. Os nomes podem ter até 128 caracteres. Pode conter letras minúsculas, maiúsculas, números, hifens e (-) e sublinhados (_).
-
Em Tempo limite de execução - opcional, insira o valor do tempo limite (em segundos). O tempo limite de execução é o período de tempo antes que um trabalho não concluído seja encerrado. Se uma tentativa exceder o tempo limite, ela será interrompida e passada para um status
FAILED. Para mais informações, consulte Tempos limite de trabalho. O valor mínimo é 60 segundos. -
Ative Prioridade de agendamento - opcional. Insira um valor de prioridade de agendamento entre 0 e 100. Valores mais altos têm maior prioridade.
-
Expanda Tags - opcional e escolha Adicionar Tag para adicionar tags ao recurso. Insira uma chave e um valor opcional e então escolha Adicionar Tag.
-
Ative Propagar tags para propagar tags do trabalho e da definição de trabalho para a tarefa do Amazon ECS.
-
Na seção Estratégia de repetição - opcional, insira o seguinte:
-
Para Tentativas de trabalho, insira o número de vezes que o AWS Batch tenta mover o trabalho para o status de
RUNNABLE. Insira um número inteiro entre 1 e 10. -
Em Repetir as condições da estratégia, escolha Adicionar avaliação na saída. Insira pelo menos um valor de parâmetro e escolha uma Ação. Para cada conjunto de condições, Ação deve ser definida como Tentar Novamente ou Sair. Essas ações significam o seguinte:
-
Tentar novamente: o AWS Batch tenta novamente até que o número de tentativas de trabalho que você especificou seja atingido.
-
Sair: o AWS Batch para de tentar novamente o trabalho.
Importante
Se você escolher Adicionar avaliação na saída, deverá configurar pelo menos um parâmetro e ou escolher uma Ação ou escolher Remover avaliação na saída.
-
-
Na seção Propriedades da tarefa, insira o seguinte:
-
Em Perfil de execução - condicional, escolha uma função para permitir que agentes do Amazon ECS façam chamadas de API AWS em seu nome. Para obter mais informações sobre criar um Perfil de execução, consulte Tutorial: criar o perfil de execução do IAM.
-
Escolha Habilitar o comando de execução do ECS para permitir o acesso direto ao shell do contêiner do Amazon ECS e ignorar o sistema operacional do host. Você deve escolher uma Função de tarefa.
Importante
O comando Executar ECS exige que o sistema de arquivos seja gravável.
-
Em Perfil da tarefa, escolha um perfil do Amazon ECS Identity and Access Management (IAM) que permita que o contêiner faça chamadas de API AWS em seu nome. Para obter mais informações, consulte Perfil do IAM de tarefa do Amazon ECS no Guia do desenvolvedor do Amazon Elastic Container Service.
-
Para o Modo IPC, escolha
host,taskounone. Se ohostfor especificado, todos os contêineres dentro das tarefas que especificaram o modo IPC de host na mesma instância de contêiner compartilham os mesmos recursos IPC com a instância do Amazon EC2 do host. Se uma tarefa for especificada, todos os contêineres dentro da tarefa especificada compartilharão os mesmos recursos IPC. Se nada for especificado, os recursos IPC nos contêineres de uma tarefa serão privados e não serão compartilhados com outros contêineres em uma tarefa ou na instância de contêiner. Se nenhum valor for especificado, o compartilhamento do namespace de recurso IPC dependerá da configuração do daemon do Docker na instância de contêiner. Para o modo PID, escolha
hostoutask. Por exemplo, o monitoramento de arquivos associados pode precisar quepidModeacesse informações sobre outros contêineres em execução na mesma tarefa. Sehostfor especificado, todos os contêineres das tarefas que especificaram o modo PID host na mesma instância de contêiner compartilharão namespace de processo com a instância do Amazon EC2 do host. Se ataskfor especificada, todos os contêineres da tarefa especificada compartilharão o mesmo namespace de processo. Se nenhum valor for especificado, o padrão será um namespace privado para cada contêiner.
-
Na seção Recurso consumível, insira o seguinte:
-
Insira um Nome exclusivo e o Valor solicitado.
Você pode adicionar mais recursos consumíveis escolhendo Adicionar recurso consumível.
-
Na seção Armazenamento, faça o seguinte:
-
Insira um Nome e Caminho de origem para o volume e, então, escolha Adicionar volume. Você também pode optar por ativar o Habilitar EFS.
Você pode adicionar mais Volumes escolhendo Adicionar volume.
-
-
Em Parâmetros, escolha Adicionar parâmetros para adicionar espaços reservados para substituição de parâmetros como pares de Chave e Valor opcionais.
-
Escolha Próxima página.
-
Na seção Configuração de Contêiner:
Em Name (Nome), insira um nome para o contêiner.
Em Contêiner essencial, ative se o contêiner for essencial.
-
Para Imagem, escolha a imagem do Docker a ser usada em seu trabalho. Por padrão, as imagens no registro do Docker Hub estão disponíveis. Você também pode especificar outros repositórios com
. Os nomes podem ter até 225 caracteres. Pode conter letras maiúsculas e minúsculas, números, hifens (-), sublinhados (_), dois pontos (:), barras (/) e sinais de número (#). Esse parâmetro é mapeado pararepository-url/image:tagImagena seção Criar um contêinerda Docker Remote API e o parâmetro IMAGEde 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 do Docker baseadas no ARM só podem ser executadas em recursos de computação baseados no ARM.
-
As imagens em repositórios públicos do Amazon ECR usam as convenções de nomenclatura
registry/repository[:tag]ouregistry/repository[@digest]completa (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 -
Imagens em repositórios oficiais em Docker Hub usam um único nome (por exemplo,
ubuntuoumongo). -
Imagens em outros repositórios 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).
-
Em Requisitos de recursos, configure cada um dos seguintes:
Em vCPUs, escolha o número de CPUs para o contêiner.
Em Memória, escolha a quantidade de memória para o contêiner.
Em GPU - opcional, escolha o número de GPUs para o contêiner.
Para Usuário, insira o nome do usuário a ser usado dentro do contêiner.
Ative Habilitar sistema de arquivos somente para leitura para remover o acesso de gravação ao volume.
Ative Privilegiado para oferecer ao contêiner de trabalho permissões elevadas na instância do host, semelhante ao usuário-raiz.
-
Em Comando, insira os comandos no campo como o equivalente da matriz de string JSON.
Esse parâmetro é mapeado para
Cmdna seção Criar um contêinerda Docker Remote API e o parâmetro COMMANDde docker run. Para obter mais informações sobre o parâmetro Docker CMD, consulte https://docs.docker.com/engine/reference/builder/#cmd. nota
Você pode usar os valores padrão de substituição de parâmetros e espaços reservados no seu comando. Para obter mais informações, consulte Parameters.
Em Credenciais do repositório - opcional, insira o ARN do segredo que contém suas credenciais.
Em Variáveis de ambiente - opcional, escolha Adicionar variáveis de ambiente para adicionar variáveis de ambiente a serem passadas para o contêiner.
Na seção Parâmetros do Linux - opcional:
Ative Ativar processo init para executar um processo init dentro do contêiner.
Em Tamanho da memória compartilhada, insira o tamanho (em MiB) do volume /dev/shm
Em Tamanho máximo de troca, insira a quantidade total de memória de troca (em MiB) que o contêiner pode usar.
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.
-
Em Dispositivos, escolha Adicionar dispositivo para adicionar um dispositivo:
-
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.
-
Em Host path, especifique o caminho de um dispositivo na instância de host.
-
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.
-
-
Em Tmpfs, escolha Adicionar tmpfs para adicionar uma montagem
tmpfs.
nota
O registro em logs do Firelens deve ser feito em um contêiner dedicado. Para configurar o registro em log do Firelens:
Em cada contêiner, exceto seu contêiner dedicado do Firelens, defina o Driver de registro em log como
awsfirelensEm seu contêiner Firelens, defina a Configuração Firelens - opcional e a Configuração de registro em log - opcional para o destino de registro em log.
Na seção Configuração Direlens - opcional:
Importante
O AWS Batch impõe o modo de rede
hostem trabalhos Amazon ECS não MNP e não Fargate. O usuário-raiz é necessáriopara o Amazon ECS Firelens. Ao executar tarefas que usam o modo de rede host, a Amazon ECS aconselha a não executar contêineres usando o usuário raiz (UID 0) para melhor segurança. Portanto, todos os trabalhos não MNP e não Fargate ECS com log Firelens não atenderão às melhores práticas de segurança.-
Para Tipo, escolha
fluentdoufluentbit. -
Em Opções, insira o par nome/valor da opção. Você pode adicionar mais Opções usando Opção adicionada.
-
Na seção Configuração de registro em log - opcional:
-
Em Driver de log, escolha o driver de log a ser usado. Para obter mais informações sobre os drivers de log disponíveis, consulte LogConfiguration:logDriver.
nota
Por padrão, o driver de log
awslogsé usado. -
Em Opções, escolha Adicionar opção para adicionar uma opção. Insira um par nome-valor e então escolha Adicionar opção.
-
Em Segredos, escolha Adicionar segredo. Insira um par nome-valor e escolha Adicionar segredo para adicionar um segredo.
dica
Para obter mais informações, consulte LogConfiguration:secretOptions.
-
Em Pontos de montagem - opcional, escolha Adicionar pontos de montagem para adicionar pontos de montagem para volumes de dados. Você deve especificar o volume de origem e o caminho do contêiner.
-
Em Segredos - opcional, escolha Adicionar segredo para adicionar um segredo. Em seguida, insira um par nome-valor e escolha Adicionar segredo.
dica
Para obter mais informações, consulte LogConfiguration:secretOptions.
Em Ulimits - opcional, escolha Adicionar ulimit para adicionar um valor de
ulimitsao contêiner. Insira os valores de Nome, Limite flexível, e Limite rígido e, em seguida, escolha Adicionar ulimit.Em Dependências - opcional, escolha Adicionar dependências de contêiner. Escolha o nome do contêiner e seu estado para determinar quando o contêiner é iniciado.
Se você tiver apenas um contêiner configurado, deverá escolher Adicionar contêiner e concluir a configuração do novo contêiner. Caso contrário, escolha Avançar para revisar.