AWS Batch no AWS Fargate - 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á.

AWS Batch no AWS Fargate

O AWS Fargate é uma tecnologia que pode ser usada com o AWS Batch para executar contêineres sem a necessidade de gerenciar servidores ou clusters de instâncias do Amazon EC2. Com o AWS Fargate, não é mais necessário provisionar, configurar nem escalar os clusters de máquinas virtuais para executar contêineres. Isso elimina a necessidade de escolher tipos de servidor, decidir quando dimensionar clusters ou otimizar o agrupamento de clusters.

Ao executar seus trabalhos com recursos do Fargate, você empacota sua aplicação em contêineres, especifica os requisitos de CPU e de memória, define as políticas do IAM e de rede e inicia a aplicação. Cada trabalho do Fargate tem seu próprio limite de isolamento e não compartilha o kernel subjacente, os recursos de CPU, os recursos de memória nem a interface de rede elástica com outro trabalho.

Quando usar o Fargate

Recomendamos usar o Fargate na maioria dos cenários. O Fargate inicia e escala a computação de acordo com os requisitos de recursos que você especifica para o contêiner. Com o Fargate, você não precisa provisionar em excesso nem pagar por servidores adicionais. Você também não precisa se preocupar com as especificidades dos parâmetros relacionados à infraestrutura, como o tipo de instância. Quando o ambiente de computação precisa ter a escala aumentada verticalmente, os trabalhos executados nos recursos do Fargate podem ser iniciados mais rapidamente. Normalmente, são necessários alguns minutos para ativar uma nova instância do Amazon EC2. No entanto, as tarefas executadas no Fargate podem ser provisionadas em cerca de 30 segundos. O tempo exato necessário depende de vários fatores, incluindo o tamanho da imagem do contêiner e o número de trabalhos.

No entanto, recomendamos que você use o Amazon EC2 se seus trabalhos exigirem qualquer um dos seguintes:

  • Mais de 16 vCPUs

  • Mais de 120 gibibytes (GiB) de memória

  • UMA GPU

  • Imagem de máquina da Amazon (AMI) personalizada

  • Qualquer um dos parâmetros do linuxParameters

Se você tem um grande número de trabalhos, recomendamos usar a infraestrutura do Amazon EC2. Por exemplo, se o número de trabalhos em execução simultânea exceder os limites de controle de utilização do Fargate. Isso ocorre porque, com o EC2, os trabalhos podem ser enviados em uma taxa maior para os recursos do EC2 do que para os recursos do Fargate. Além disso, mais trabalhos podem ser executados simultaneamente quando você usa o EC2. Para obter mais informações, consulte AWSCotas de serviço do Fargate no Guia do desenvolvedor do Amazon Elastic Container Service.

Definições de trabalho no Fargate

Os trabalhos do AWS Batch no Fargate não oferecem suporte a todos os parâmetros de definição de trabalho disponíveis. Alguns parâmetros são totalmente incompatíveis e outros se comportam de maneira diferente nos trabalhos do Fargate.

A lista a seguir descreve os parâmetros de definição de tarefa que não são válidos ou são restritos nos trabalhos do Fargate.

platformCapabilities

Deve ser especificado como FARGATE.

"platformCapabilities": [ "FARGATE" ]
type

Deve ser especificado como container.

"type": "container"
Parâmetros em containerProperties
executionRoleArn

Deve ser especificado para trabalhos em execução nos recursos do Fargate. Para mais informações, consulte Funções do IAM para Tarefas no Guia de Desenvolvedor Amazon Elastic Container Service.

"executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole"
fargatePlatformConfiguration

(Opcional, somente para definições de trabalho do Fargate). Especifica a versão da plataforma do Fargate a LATEST ou de uma versão da plataforma recente. Valores possíveis para platformVersion são 1.3.0, 1.4.0 e LATEST (padrão).

"fargatePlatformConfiguration": { "platformVersion": "1.4.0" }
instanceType
ulimits

Não é aplicável a trabalhos executados nos recursos do Fargate.

memory
vcpus

Essas configurações devem ser especificadas em resourceRequirements

privileged

Não especifique esse parâmetro ou especifique false.

"privileged": false
resourceRequirements

Os requisitos de memória e vCPU devem ser especificados usando valores compatíveis. Os recursos de GPU não são compatíveis com trabalhos executados nos recursos do Fargate.

Se você usa o GuardDuty Runtime Monitoring, há uma pequena sobrecarga de memória para o agente GuardDuty de segurança. Portanto, o limite de memória deve incluir o tamanho do agente GuardDuty de segurança. Para obter informações sobre os limites de memória do GuardDuty Security Agent, consulte Limites de CPU e memória no Guia GuardDuty do usuário. Para obter informações sobre as melhores práticas, consulte Como faço para corrigir erros de falta de memória em minhas tarefas do Fargate depois de ativar o Runtime Monitoring no Amazon ECS Developer Guide.

"resourceRequirements": [ {"type": "MEMORY", "value": "512"}, {"type": "VCPU", "value": "0.25"} ]
Parâmetros em linuxParameters
devices
maxSwap
sharedMemorySize
swappiness
tmpfs

Não é aplicável a trabalhos que sejam executados nos recursos do Fargate.

Parâmetros em logConfiguration
logDriver

Somente awslogs e splunk são compatíveis. Para ter mais informações, consulte Usar o driver de log awslogs.

Membros em networkConfiguration
assignPublicIp

Se a sub-rede privada não tiver um gateway NAT conectado para enviar tráfego para a Internet, assignPublicIp deverá ser “ENABLED”. Para ter mais informações, consulte AWS Batch função de execução do IAM.

Filas de trabalhos no Fargate

As filas de trabalhos do AWS Batch no Fargate permanecem essencialmente inalteradas. A única restrição é que os ambientes de computação listados em computeEnvironmentOrder devem ser todos ambientes de computação Fargate (FARGATE ou FARGATE_SPOT). Os ambientes de computação EC2 e Fargate não podem ser misturados.

Ambientes de computação no Fargate

Ambientes de computação do AWS Batch no Fargate não são compatíveis com todos os parâmetros do ambiente de computação disponíveis. Alguns parâmetros são totalmente incompatíveis. Outros têm requisitos específicos para o Fargate.

A lista a seguir descreve os parâmetros do ambiente de computação que não são válidos ou são restritos nos trabalhos do Fargate.

type

Esse parâmetro precisa ser MANAGED.

"type": "MANAGED"
Parâmetros no objeto computeResources
allocationStrategy
bidPercentage
desiredvCpus
imageId
instanceTypes
ec2Configuration
ec2KeyPair
instanceRole
launchTemplate
minvCpus
placementGroup
spotIamFleetRole

Eles não são aplicáveis aos ambientes computacionais Fargate e não podem ser fornecidos.

subnets

Se as sub-redes listadas nesse parâmetro não tiverem gateways NAT conectados, o parâmetro assignPublicIp na definição do trabalho deverá ser definido como ENABLED.

tags

Isso não é aplicável aos ambientes computacionais Fargate e não pode ser fornecido. Para especificar tags para ambientes de computação Fargate, use o parâmetro tags que não está no objeto computeResources.

type

Isso deve ser FARGATE ou FARGATE_SPOT.

"type": "FARGATE_SPOT"