AWS Batch en AWS Fargate - AWS Batch

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

AWS Batch en AWS Fargate

La tecnología AWS Fargate se puede utilizar con AWS Batch para ejecutar contenedores sin tener que administrar servidores ni clústeres de instancias de Amazon EC2. Con AWS Fargate, ya no tendrá que aprovisionar, configurar ni escalar clústeres de máquinas virtuales para ejecutar los contenedores. De esta manera, se elimina la necesidad de elegir tipos de servidores, decidir cuándo escalar los clústeres u optimizar conjuntos de clústeres.

Al ejecutar los trabajos con los recursos de Fargate, la aplicación se empaqueta en contenedores, se especifican los requisitos de CPU y de memoria, se definen las políticas de IAM y de redes y se lanza la aplicación. Cada trabajo de Fargate tiene su propio límite de aislamiento y no comparte el kernel subyacente, los recursos de CPU, los recursos de memoria ni la interfaz de red elástica con otro trabajo.

Cuándo usar Fargate

Recomendamos usar Fargate en la mayoría de los casos. Fargate lanza y escala el cómputo para que se ajuste perfectamente a los requisitos de recursos que especifique para el contenedor. Con Fargate, no es necesario aprovisionar en exceso los servidores ni pagar por ellos. Tampoco tiene que preocuparse por los detalles de los parámetros relacionados con la infraestructura, como el tipo de instancia. Cuando es necesario escalar verticalmente el entorno de cómputo, los trabajos que se ejecutan en los recursos de Fargate pueden comenzar más rápidamente. Por lo general, se tardará unos minutos hasta que se lance la instancia de Amazon EC2. Sin embargo, los trabajos que se ejecutan en Fargate se pueden aprovisionar en unos 30 segundos. El tiempo exacto necesario depende de varios factores, como el tamaño de la imagen del contenedor y la cantidad de trabajos.

No obstante, recomendamos utilizar Amazon EC2 si sus trabajos requieren cualquiera de las siguientes opciones:

  • Más de 16 vCPU

  • Más de 120 gibibytes (GiB) de memoria

  • Una GPU

  • Imagen de máquina de Amazon (AMI) personalizada

  • Alguno de los parámetros de LinuxParameters

Si tiene un gran número de trabajos, le recomendamos utilizar la infraestructura de Amazon EC2. Por ejemplo, si el número de trabajos que se ejecutan simultáneamente supera la limitación de regulación de Fargate. Esto se debe a que, con EC2, los trabajos se pueden enviar a un ritmo mayor a los recursos de EC2 que a los recursos de Fargate. Además, se pueden ejecutar más trabajos de forma simultánea cuando se utiliza EC2. Para obtener más información, consulte Fargate Service Quotas AWS en la Guía para desarrolladores de Amazon Elastic Container Service.

Definiciones de trabajo en Fargate

Los trabajos de AWS Batch alojados en Fargate no admiten todos los parámetros de definición de tareas disponibles. Algunos parámetros no son compatibles, y otros se comportan de forma distinta para trabajos de Fargate.

La siguiente lista describe los parámetros de definición de trabajo que no son válidos o están restringidos de otro modo en los trabajos de Fargate.

platformCapabilities

Debe especificarse como FARGATE.

"platformCapabilities": [ "FARGATE" ]
type

Debe especificarse como container.

"type": "container"
Parámetros de containerProperties
executionRoleArn

Debe especificarse para trabajos que se ejecutan en recursos de Fargate. Para obtener más información, consulte Roles de IAM para tareas en la Guía para desarrolladores de Amazon Elastic Container Service.

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

(Opcional, solo para las definiciones de trabajo de Fargate). Especifica la versión de la plataforma Fargate o LATEST para una versión reciente de la plataforma. Los valores posibles de platformVersion son 1.3.0, 1.4.0 y LATEST (predeterminado).

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

No se aplica a trabajos que se ejecutan en recursos de Fargate.

memory
vcpus

Esta configuración debe especificarse en resourceRequirements

privileged

No especifique este parámetro o especifique false.

"privileged": false
resourceRequirements

Los requisitos de memoria y vCPU deben especificarse mediante los valores admitidos. Los recursos de GPU no son compatibles con los recursos de Fargate.

Si usa GuardDuty Runtime Monitoring, hay una ligera sobrecarga de memoria para el agente GuardDuty de seguridad. Por lo tanto, el límite de memoria debe incluir el tamaño del agente de GuardDuty seguridad. Para obtener información sobre los límites de memoria del agente de GuardDuty seguridad, consulte los límites de CPU y memoria en la Guía del GuardDuty usuario. Para obtener información sobre las prácticas recomendadas, consulte Cómo corregir los errores de falta de memoria en mis tareas de Fargate después de activar Runtime Monitoring en la Guía para desarrolladores de Amazon ECS.

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

No se aplica a trabajos que se ejecutan en recursos de Fargate.

Parámetros de logConfiguration
logDriver

Solo se admiten awslogs y splunk. Para obtener más información, consulte Uso del controlador de registros awslogs.

Miembros en networkConfiguration
assignPublicIp

Si la subred privada no tiene una puerta de enlace NAT conectada para enviar tráfico a Internet, assignPublicIp debe ser «ENABLED». Para obtener más información, consulte AWS Batch función de IAM de ejecución.

Colas de trabajo en Fargate

AWS Batch las colas de trabajo en Fargate prácticamente no han cambiado. La única restricción es que todos los entornos informáticos que aparecen en la lista en computeEnvironmentOrder deben ser entornos informáticos de Fargate (FARGATE o FARGATE_SPOT). Los entornos informáticos de EC2 y Fargate no se pueden mezclar.

Entornos informáticos en Fargate

AWS Batch Lls entornos informáticos de Fargate no admiten todos los parámetros del entorno informático disponibles. Algunos parámetros no son compatibles. Otros tienen requisitos específicos para Fargate.

La siguiente lista describe los parámetros de entorno informático que no son válidos o están restringidos de otro modo en los trabajos de Fargate.

type

Este parámetro debe establecerse en MANAGED.

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

No se aplican a los entornos informáticos de Fargate y no se pueden proporcionar.

subnets

Si las subredes enumeradas en este parámetro no tienen puertas de enlace NAT conectadas, el parámetro assignPublicIp de la definición del trabajo debe estar establecido en ENABLED.

tags

Esto no se aplica a los entornos informáticos de Fargate y no se puede proporcionar. Para especificar etiquetas para los entornos informáticos de Fargate, use el parámetro tags que no está en el objeto computeResources.

type

Debe ser FARGATE o FARGATE_SPOT.

"type": "FARGATE_SPOT"