Amazon ECS en AWS Fargate - Amazon Elastic Container Service

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.

Amazon ECS en AWS Fargate

AWS Fargate es una tecnología que puede utilizar con Amazon ECS para ejecutar contenedores sin tener que administrar servidores ni clústeres de instancias 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 las tareas y servicios con el tipo de lanzamiento Fargate, empaqueta la aplicación en contenedores, especifica los requisitos de CPU y de memoria, define las políticas de IAM y redes, y lanza la aplicación. Cada tarea de Fargate tiene su propio límite de aislamiento y no comparte el kernel subyacente, los recursos de CPU, los recursos de memoria o la interfaz de red elástica con otra tarea.

En este tema, se describen los diferentes componentes de las tareas y los servicios de Fargate y se mencionan consideraciones especiales para el uso de Fargate con Amazon ECS.

Amazon ECS en AWS Fargate se admite en las siguientes regiones: Los ID de zona de disponibilidad admitidos se indican cuando corresponda.

Nombre de la región Región

EE.UU. Este (Ohio)

us-east-2

US East (N. Virginia)

us-east-1

EE.UU. Oeste (Norte de California)

us-west-1 (solo usw1-az1 y usw1-az3)

EE.UU. Oeste (Oregón)

us-west-2

África (Ciudad del Cabo)

af-south-1

Asia Pacífico (Hong Kong)

ap-east-1

Asia Pacífico (Mumbai)

ap-south-1

Asia-Pacífico (Osaka)

ap-northeast-3

Asia Pacífico (Seúl)

ap-northeast-2

Asia Pacífico (Singapur)

ap-southeast-1

Asia Pacífico (Sídney)

ap-southeast-2

Asia Pacífico (Tokio)

ap-northeast-1 (solo apne1-az1, apne1-az2 y apne1-az4)

Canadá (Central)

ca-central-1 (solo cac1-az1 y cac1-az2)

China (Pekín)

cn-north-1 (solo cnn1-az1 y cnn1-az2)

China (Ningxia)

cn-northwest-1

Europa (Fráncfort)

eu-central-1

Europa (Irlanda)

eu-west-1

Europa (Londres)

eu-west-2

Europa (París)

eu-west-3

Europa (Milán)

eu-south-1

Europa (Estocolmo)

eu-north-1

América del Sur (São Paulo)

sa-east-1

Medio Oriente (Baréin)

me-south-1

AWS GovCloud (EE. UU. Este)

us-gov-east-1

AWS GovCloud (US-West)

us-gov-west-1

Para empezar a usar el uso deAWS FargateporAmazon ECS, consulteIntroducción alAmazon ECSMediante la consolaAWS Fargate.

Definiciones de tareas

Las tareas de Amazon ECS en Fargate no admiten todos los parámetros de definición de tareas que están disponibles. Algunos parámetros no son compatibles y otros se comportan de forma distinta para tareas de Fargate.

Los siguientes parámetros de definición de tareas no son válidos en tareas de Fargate:

  • disableNetworking

  • dnsSearchDomains

  • dnsServers

  • dockerSecurityOptions

  • extraHosts

  • gpu

  • ipcMode

  • links

  • pidMode

  • placementConstraints

  • privileged

  • systemControls

Los siguientes parámetros de definición de tarea son válidos en tareas de Fargate, pero tienen limitaciones que hay que tener en cuenta:

  • linuxParameters – Al especificar opciones específicas de Linux que se aplican al contenedor, en capabilities no se admite el parámetro add. No se admiten los parámetros devices, sharedMemorySize y tmpfs. Para obtener más información, consulte Parámetros de Linux.

  • volumes – las tareas Fargate solo admiten volúmenes de host de montaje vinculado, por lo que no se admite el parámetro dockerVolumeConfiguration. Para obtener más información, consulte Volumes.

Para asegurarse de que su definición de tareas sea válida para su uso con Fargate, puede especificar lo siguiente al registrar la definición de tarea:

  • En la AWS Management Console, en el campo Requires Compatibilities (Requiere compatibilidades), especifique FARGATE.

  • En la AWS CLI, especifique la opción --requires-compatibilities.

  • En la API de Amazon ECS, especifique la marca requiresCompatibilities.

Modo de red

Las definiciones de tarea de Amazon ECS para Fargate requieren que el modo de red se establezca en awsvpc. El modo de red awsvpc proporciona a cada tarea su propia interfaz de red elástica. Para obtener más información, consulteFargateRed de tareasen laGuía del usuario de Amazon Elastic Container Service para AWS Fargate.

También se necesita una configuración de red al crear un servicio o ejecutar tareas manualmente. Para obtener más información, consulteFargateRed de tareasen laGuía del usuario de Amazon Elastic Container Service para AWS Fargate.

Memoria y CPU de tarea

Las definiciones de tarea de Amazon ECS para Fargate requieren que especifique la CPU y la memoria en el nivel de tarea. Aunque también puede especificar la CPU y la memoria en el nivel de contenedor para tareas de Fargate, esto es opcional. La mayoría de casos de uso solo se cumplen especificando estos recursos en el nivel de tarea. En la siguiente tabla se muestran las combinaciones válidas de CPU y memoria de nivel de tarea.

Valor de CPU

Valor de memoria

256 (0,25 vCPU)

0,5 GB, 1 GB, 2 GB

512 (0,5 vCPU)

1 GB, 2 GB, 3 GB, 4 GB

1024 (1 vCPU)

2 GB, 3 GB, 4 GB, 5 GB, 6 GB, 7 GB, 8 GB

2048 (2 vCPU)

Entre 4 GB y 16 GB en incrementos de 1 GB

4096 (4 vCPU)

Entre 8 GB y 30 GB en incrementos de 1 GB

Límites de recursos de tareas

Las definiciones de tarea de Amazon ECS para Fargate admiten el parámetro ulimits para definir los límites de recursos que se van a establecer en un contenedor.

Las tareas de Amazon ECS alojadas en Fargate utilizan los valores de los límites de recursos predeterminados establecidos por el sistema operativo con la excepción del parámetro de límite de recursos nofile que Fargate invalida. El límite de recursos nofile define una restricción en el número de archivos abiertos que puede utilizar un contenedor. El límite flexible nofile predeterminado es 1024 y el límite máximo es 4096.

El siguiente es un fragmento de definición de tarea de ejemplo que muestra cómo definir unnofilelímite que se ha duplicado:

"ulimits": [ { "name": "nofile", "softLimit": 2048, "hardLimit": 8192 } ]

Para obtener más información acerca de los otros límites de recursos que se pueden ajustar, consulte Límites de recursos.

Logging

Amazon ECSDefiniciones de tareas paraFargateCompatibilidad con elawslogs,splunk, yfirelenspara la configuración de registros.

El controlador de registros awslogs configura sus tareas de Fargate para enviar información de registros a Amazon CloudWatch Logs. A continuación se muestra un fragmento de definición de tarea donde se configura el controlador de registros awslogs:

"logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group" : "/ecs/fargate-task-definition", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } }

Para obtener más información acerca del uso del controlador de registros awslogs en una definición de tareas para enviar sus registros de contenedor a CloudWatch Logs, consulte Uso del controlador de registros awslogs.

Para obtener más información acerca de cómo utilizar el controlador de registros de firelens en una definición de tarea, consulte Ruteo de registros personalizados.

Para obtener más información acerca de cómo utilizar el controlador de registros de splunk en una definición de tarea, consulte Ejemplo: splunk controlador de registro.

Amazon ECSEjecución de tareaIAMrol de

Hay un rol de IAM de ejecución de tareas opcional que puede especificar con Fargate para permitir a las tareas de Fargate realizar llamadas a la API de Amazon ECR. Las llamadas a la API extraen imágenes de contenedor además de llamar a CloudWatch para almacenar los registros de la aplicación de contenedor. Para obtener más información, consulte Amazon ECSEjecución de tareasIAMrol de.

Ejemplos de definición de tarea

A continuación, se muestra un ejemplo de definición de tarea que configura un servidor web utilizando el tipo de lanzamiento Fargate:

{ "containerDefinitions": [ { "command": [ "/bin/sh -c \"echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>' > /usr/local/apache2/htdocs/index.html && httpd-foreground\"" ], "entryPoint": [ "sh", "-c" ], "essential": true, "image": "httpd:2.4", "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group" : "/ecs/fargate-task-definition", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } }, "name": "sample-fargate-app", "portMappings": [ { "containerPort": 80, "hostPort": 80, "protocol": "tcp" } ] } ], "cpu": "256", "executionRoleArn": "arn:aws:iam::012345678910:role/ecsTaskExecutionRole", "family": "fargate-task-definition", "memory": "512", "networkMode": "awsvpc", "requiresCompatibilities": [ "FARGATE" ] }

Almacenamiento de tareas

Para las tareas de Amazon ECS alojadas en Fargate, se admiten los siguientes tipos de almacenamiento:

  • Volúmenes de Amazon EFS para almacenamiento persistente. Para obtener más información, consulte Amazon EFSVolúmenes de .

  • Montajes vinculados para almacenamiento efímero. Para obtener más información, consulte Montajes relacionados.

Tareas y servicios

Después de tener preparada sus definiciones de tareas de Amazon ECS para Fargate, deben tomarse algunas decisiones a la hora de crear el servicio.

Integración en red de las tareas

Las tareas de Amazon ECS para Fargate requieren el modo de red awsvpc, que proporciona a cada tarea una interfaz de red elástica. Cuando se ejecuta una tarea o se crea un servicio con este modo de red, debe especificar una o más subredes para asociar la interfaz de red y uno o más grupos de seguridad para aplicarlo a la interfaz de red.

Si va a usar subredes públicas, decida si desea proporcionar una dirección IP pública para la interfaz de red. Para que las tareas de Fargate de una subred pública extraigan imágenes de contenedor, es necesario asignar una dirección IP pública a la interfaz de red elástica de la tarea con una ruta a Internet o una gateway NAT que pueda dirigir las solicitudes a Internet. Para unFargateEn una subred privada para extraer imágenes de contenedor, necesita una gateway NAT en la subred para dirigir las solicitudes a Internet. Cuando aloja las imágenes de contenedor enAmazon ECR, puede configurarAmazon ECRPara utilizar un punto de enlace de la VPC de tipo interfaz. En este caso, la dirección IPv4 privada de la tarea se utiliza para extraer la imagen. Para obtener más información acerca deAmazon ECRPuntos de enlace de interfaz, consultePuntos de enlace de la VPC de tipo interfaz de Amazon ECR (AWS PrivateLink)en laGuía del usuario de Amazon Elastic Container Registry.

A continuación, se muestra un ejemplo de la sección networkConfiguration para un servicio de Fargate:

"networkConfiguration": { "awsvpcConfiguration": { "assignPublicIp": "ENABLED", "securityGroups": [ "sg-12345678" ], "subnets": [ "subnet-12345678" ] } }

Balanceo de carga de servicios

SusAmazon ECSService:FargatePuede configurarse opcionalmente para utilizarElastic Load BalancingPara distribuir el tráfico de manera uniforme entre las tareas del servicio.

Amazon ECSServicios deFargateCompatibilidad con elApplication Load BalanceryNetwork Load BalancerTipos de balanceadores de carga.Application Load BalancerLos se utilizan para dirigir el tráfico HTTP/HTTPS (o de capa 7).Network Load BalancerLos se utilizan para dirigir el tráfico TCP o UDP (o de capa 4). Para obtener más información, consulte Tipos de balanceadores de carga.

Al crear un grupo de destino para estos servicios, debe elegiripcomo el tipo de destino, noinstance. Esto es debido a que las tareas que utilizan el modo de red awsvpc están asociadas a una interfaz de red elástica, no a una instancia Amazon EC2. Para obtener más información, consulte Balanceo de carga de servicios.

Uso de unaNetwork Load BalancerPara dirigir el tráfico UDP a suAmazon ECSenFargatesolo se admite cuando se utiliza la versión 1.4 de la plataforma y para tareas iniciadas en las regiones siguientes:

  • EE.UU. Este (Norte de Virginia)us-east-1

  • EE.UU. Oeste (Oregón)us-west-2

  • UE (Irlanda)eu-west-1

  • Asia-Pacífico (Tokio)ap-northeast-1

Autenticación de registros

Las tareas de Amazon ECS para Fargate pueden autenticarse en registros de imágenes privados, incluido Docker Hub, utilizando autenticación básica. Cuando se habilita la autenticación de registros privados, puede utilizar las imágenes de Docker privadas en sus definiciones de tareas.

Para utilizar la autenticación de registros privados, debe crear un secreto con AWS Secrets Manager que contenga las credenciales del registro privado. A continuación, en la definición de contenedor, deberá especificar repositoryCredentials con el ARN completo del secreto que ha creado. El siguiente fragmento de definición de tarea muestra los parámetros necesarios:

"containerDefinitions": [ { "image": "private-repo/private-image", "repositoryCredentials": { "credentialsParameter: "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name" } } ]

Para obtener más información, consulte Autenticación de registros privados para tareas.

Clusters

Los clústeres pueden contener tareas que utilicen los tipos de lanzamiento Fargate y EC2. Al visualizar los clústeres en la AWS Management Console, los recuentos de tareas de Fargate y EC2 se muestran por separado.

Para obtener más información sobre los clústeres de Amazon ECS, incluido un tutorial para crear un clúster, consulte Clústeres de Amazon ECS.

Fargate Spot

Los proveedores de capacidad de Amazon ECS le permiten utilizar la capacidad de Fargate y de Fargate Spot para sus tareas de Amazon ECS.

Con Fargate Spot, puede ejecutar tareas de Amazon ECS tolerantes a interrupciones con un descuento respecto al precio de Fargate. Fargate Spot ejecuta las tareas en la capacidad de cómputo adicional. Cuando AWS necesita recuperar esa capacidad, las tareas se interrumpen previa advertencia con dos minutos de antelación. Para obtener más información, consulte Proveedores de capacidad de AWS Fargate.

Métricas de uso

Puede utilizarCloudWatchPara proporcionar visibilidad sobre el uso de los recursos de sus cuentas. Utilice estas métricas para visualizar el uso actual del servicio en paneles y gráficos de CloudWatch.

Las métricas de uso de AWS Fargate se corresponden con las cuotas de servicio de AWS. Puede configurar alarmas que le avisen cuando su uso se acerque a una cuota de servicio. Para obtener más información acerca de las cuotas de servicio de Fargate, consulteCuotas de servicio de AWS Fargate.

Para obtener más información acerca deAWS FargateMétricas de uso de, consulteFargateMétricas de uso deen laGuía del usuario de Amazon Elastic Container Service para AWS Fargate.

Retirada de

Una tarea de Fargate se programa para su retirada cuando AWS detecta el error irreparable en el hardware subyacente en el que se aloja la tarea o es necesario aplicar un parche debido a un problema de seguridad. La mayoría de los parches de seguridad se aplican de forma transparente sin necesidad de ninguna acción por su parte ni de tener que reiniciar las tareas. Sin embargo, para determinados problemas, puede que haya que reiniciar la tarea.

Cuando una tarea alcanza su fecha de retirada programada, AWS la detiene o termina. Si la tarea forma parte de un servicio, entonces esta se detiene automáticamente y el programador de servicio inicia una nueva para sustituirla. Si utiliza tareas independientes, entonces recibe una notificación de la retirada de la tarea. Para obtener más información, consulte Retiro de tareas.

Savings Plans

Los Savings Plans son un modelo flexible de precios que ofrece un ahorro importante en el uso de AWS. Usted se compromete a una cantidad de uso constante, en USD por hora, durante un período de uno o tres años, y recibe un precio inferior por ese uso. Para obtener más información, consulte la Guía del usuario de Savings Plan de .

Para crear un Savings Plan para su uso de Fargate, utilice el tipo Savings Plans de computación. Para empezar, consulteIntroducción alSavings Plansen laSavings PlansGuía del usuario de.