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 gestionar o clústeres de Amazon EC2 Instancias de. Con AWS Fargateya no tienes que aprovisionar, configure o escale clústeres de máquinas virtuales para ejecutar contenedores. Esto elimina la necesidad de elija los tipos de servidor, decida cuándo escalar los clústeres u optimice el empaquetado de clústeres.

Cuando ejecuta sus tareas y servicios con la Fargate tipo de lanzamiento, empaquetar su aplicación en contenedores, especificar los requisitos de CPU y memoria, definir de redes y IAM Las políticas de y lance la aplicación. Cada Fargate tarea tiene su propio límite de aislamiento y no comparte el kernel subyacente, los recursos de CPU, recursos de memoria o interfaz de red elástica con otra tarea de.

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

Amazon ECS en AWS Fargate se admite en las siguientes regiones de. La disponibilidad admitida Los ID de zona se anotan cuando corresponde.

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 (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

Lo siguiente Los tutoriales de le ayudan a comenzar a utilizar AWS Fargate con Amazon ECS:

Definiciones de tareas

Amazon ECS tareas en Fargate no admiten todos los parámetros de definición de tarea que son disponible. Algunos parámetros no son compatibles en absoluto y otros se comportan de forma diferente para Fargate las tareas de.

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

  • 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 Fargate las tareas, pero tienen limitaciones que deben tenerse en cuenta:

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

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

Para asegurarse de que la definición de tarea valida para su uso con Fargate, usted puede especificar lo siguiente al registrar la definición de tarea:

  • En la pestaña Consola de administración de AWS, para el Requiere compatibilidades campo, especificar FARGATE.

  • En la pestaña AWS CLI, especifica el --requires-compatibilities opción.

  • En la pestaña Amazon ECS , especifique la API requiresCompatibilities marca.

Modo de red

Amazon ECS definiciones de tareas para Fargate requieren que el modo de red esté configurado en awsvpc. El awsvpc el modo de red proporciona cada tarea con su propia interfaz de red elástica. Para obtener más información, consulte Integración en red de tareas deAmazon ECS.

También se requiere una configuración de red al crear un servicio o manualmente ejecutando tareas. Para obtener más información, consulte Conexión en red de tareas.

Tarea CPU y memoria

Amazon ECS definiciones de tareas para Fargate requieren que especifique la CPU y la memoria en el nivel de tarea. Aunque también puede especificar CPU y memoria en el nivel de contenedor para Fargate , esto es opcional. La mayoría de los casos de uso son satisfechos por solo especificar estos recursos en el nivel de tarea. La siguiente tabla muestra el valor válido Combinaciones de CPU de nivel de tarea y memoria.

Valor de CPU

Valor de memoria

256 (0,25 vCPU)

0,5 GB, 1 GB y 2 GB

512 (0,5 vCPU)

1 GB, 2 GB, 3 GB, 4 GB

1024 (1 CPU virtual)

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

2048 (2 CPU virtuales)

Entre 4 GB y 16 GB en incrementos de 1 GB

4096 (4 CPU virtuales)

Entre 8 GB y 30 GB en incrementos de 1 GB

Límites de recursos de tareas

Amazon ECS definiciones de tareas para Fargate de soporte técnico ulimits parámetro a Defina los límites de recursos que se establecerán para un contenedor.

Fargate Las tareas de utilizan los valores de límite de recursos predeterminados con la excepción del nofile parámetro de límite de recursos, que Fargate anula. El nofile El límite de recursos de establece una restricción en el número de abiertos que un contenedor puede utilizar. El valor predeterminado nofile el límite flexible es 1024 y el límite duro es 4096 para Fargate las tareas de. Estos los límites se pueden ajustar en una definición de tarea si sus tareas necesitan manejar una número de archivos. A continuación se muestra un fragmento de una definición de tarea donde el nofile el límite se ha duplicado:

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

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

Logging

Amazon ECS definiciones de tareas para Fargate de soporte técnico awslogs, splunkde firelens, y fluentd controladores de registro para la configuración de registro.

El awslogs del controlador de registros configura su Fargate las tareas para enviar información de registro a Amazon CloudWatch Logs. A continuación se muestra un fragmento de una tarea definición 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 sobre el uso de la awslogs controlador de registro en una tarea Definición de para enviar los registros de contenedor a CloudWatch Logs, consulte Uso del controlador de registros awslogs.

Para obtener más información acerca de la firelens controlador de registro en una tarea definición, consulte Direccionamiento de registros personalizado.

Para obtener más información sobre el uso de la splunk controlador de registro en una tarea definición, consulte Ejemplo: splunk controlador de registro.

Amazon ECS ejecución de tareas IAM función

Hay una ejecución de tarea opcional IAM Rol de que puede especificar con Fargate para permitir que su Fargate Las tareas de para realizar llamadas a la API de a Amazon ECR. Las llamadas a la API extraen imágenes de contenedor, así como llamadas a CloudWatch para almacenar La aplicación de contenedor de registra. Para obtener más información, consulte Amazon ECS ejecución de tareas IAM función.

Ejemplo de definición de tarea

A continuación se muestra un ejemplo de definición de tarea que configura un servidor web mediante la Fargate tipo de lanzamiento:

{ "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 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 .

  • Almacenamiento efímero para almacenamiento no persistente.

Cuando se aprovisiona, cada tarea de Amazon ECS de Fargate recibe el siguiente almacenamiento efímero.

Tareas de Fargate que utilizan la versión 1.4.0 de la plataforma o versiones posteriores

Para Amazon ECS en tareas de Fargate que utilizan la versión de la plataforma 1.4.0 o más reciente, cada tarea recibe 20 GB de almacenamiento efímero. La cantidad de almacenamiento no se puede ajustar.

Para las tareas que utilizan la versión 1.4.0 de la plataforma o versiones posteriores que se inicien a partir del 28 de mayo de 2020, el almacenamiento efímero se cifra con un algoritmo de cifrado AES-256 utilizando una clave de cifrado administrada por AWS Fargate.

Tareas de Fargate que utilizan la versión 1.3.0 de la plataforma o versiones posteriores

Para los Amazon ECS de tareas de Fargate que utilizan la versión 1.3.0 o anterior de la plataforma, cada tarea recibe el siguiente almacenamiento efímero.

  • 10 GB de almacenamiento de capa de Docker

  • 4 GB adicionales para montaje de volúmenes. Esto se puede montar y compartir entre contenedores utilizando los parámetros volumes, mountPoints y volumesFrom de la definición de tareas.

    nota

    Los parámetros host y sourcePath no se admiten para tareas Fargate.

Tareas y servicios

Después de tener su Amazon ECS definiciones de tareas para Fargate están preparados, hay algunos Decisiones de a tomar al crear el servicio de.

Conexión en red de tareas

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

Si utiliza subredes públicas, decida si desea proporcionar una dirección IP pública para la interfaz de red. Para un Fargate tarea en una subred pública para extraer de contenedor, se debe asignar una dirección IP pública a la dirección elástica de la tarea con una ruta a Internet o una gateway NAT que pueda dirigir las solicitudes a Internet. Para un Fargate tarea en una subred privada para obtener imágenes de contenedor, la subred privada requiere que se asocie una gateway NAT a dirigir las solicitudes a Internet. Para obtener más información, consulte Integración en red de tareas deAmazon ECS.

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

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

Carga de servicio equilibrado

Su Amazon ECS servicio en Fargate se puede configurar opcionalmente para utilizar Elastic Load Balancing de distribuya el tráfico de forma uniforme entre las tareas de su servicio.

Amazon ECS servicios en Fargate de soporte técnico Balanceador de carga de aplicaciones y Balanceador de carga de red del balanceador de carga de. Balanceador de carga de aplicacionesLos s se utilizan para dirigir el tráfico HTTP/HTTPS (o capa 7). Balanceador de carga de redLos s se utilizan para enrutar de tráfico TCP o UDP (o capa 4). Para obtener más información, consulte Tipos de balanceadores de carga.

Cuando crea un grupo de destino para estos servicios, debe elegir ip como el tipo de destino, no instance. Esto se debe a que las tareas que utilizan la awsvpc de red están asociados a una red elástica la interfaz, no un Amazon EC2 de la instancia de. Para obtener más información, consulte Balanceo de carga de servicios.

Uso de un Balanceador de carga de red para dirigir el tráfico UDP a tu Amazon ECS en Fargate las tareas es solo se admite cuando se utiliza la versión 1.4 de la plataforma y para las tareas lanzadas en los siguientes Regiones:

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

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

  • UE (Irlanda) - eu-west-1

  • Pacífico asiático (Tokio) - ap-northeast-1

Autenticación de registro privado

Amazon ECS tareas para Fargate puede autenticarse con registros de imágenes privadas, incluidos Docker Hub, con autenticación básica. Cuando habilita la autenticación de registro privado, puede utilizar imágenes de Docker privadas en las definiciones de tareas de.

Para utilizar la autenticación de registro privado, debe crear un secreto con AWS Secrets Manager que contiene las credenciales de su registro privado. A continuación, dentro de la definición de contenedor, especificar repositoryCredentials con el ARN completo del secreto que creado. El siguiente fragmento de una definición de tarea muestra el valor de obligatorio parámetros:

"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 utilizan el Fargate y EC2 Los tipos de lanzamiento de. Al ver los clústeres en la Consola de administración de AWSde Fargate y EC2 Los recuentos de tareas de se muestran por separado.

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

Punto de Fargate

Amazon ECS Los proveedores de capacidad de le permiten utilizar ambos Fargate y la capacidad de Fargate Spot con su Amazon ECS las tareas de.

Con Fargate Spot puede ejecutar tolerancia a interrupciones Amazon ECS tareas a una tarifa con descuento en comparación con el Fargate precio. La spot de Fargate ejecuta tareas en la capacidad de computación libre. ¿Cuándo? AWS necesita la capacidad de , sus tareas se interrumpirán con una advertencia de dos minutos. Para obtener más información, consulte AWS FargateProveedores de capacidad de .

Métricas de uso

Puedes usar CloudWatch usar métricas de uso para proporcionar visibilidad sobre el uso de sus cuentas de Los recursos de. Utilice estas métricas para visualizar el uso actual del servicio en CloudWatch gráficos y del panel de control.

AWS Fargate las métricas de uso corresponden a AWS Cuotas de servicio de. Puede configurar Las alarmas de que le alertan cuando el uso se aproxima a una cuota de servicio de. Para obtener más información sobre Fargate de cuotas de servicio de , consulte AWS Fargate Cuotas de servicio de.

Para obtener más información sobre AWS Fargate para métricas de uso, consulte Fargate Métricas de uso de en el Guía del usuario de Amazon Elastic Container Service para AWS Fargate.

Retirada de tareas

La Fargate la tarea está programada para ser retirada cuando AWS detecta el fallo irreparable del hardware subyacente que aloja la tarea o si se produce un problema de seguridad debe parchearse. La mayoría de los parches de seguridad se manejan de forma transparente sin necesidad de cualquier acción de su parte o tener que reiniciar sus tareas. Pero para ciertos problemas, podemos requieren que la tarea se reinicie.

Cuando una tarea alcanza su fecha de retirada programada, la detiene o termina AWS. Si la tarea forma parte de un servicio, la tarea se detiene automáticamente y el El programador de servicio de inicia uno nuevo para sustituirlo. Si utiliza tareas independientes, A continuación, recibirá una notificación de la retirada de la tarea. Para obtener más información, consulte Retirada de tareas.

Planes de ahorro

Los planes de ahorro son un modelo de precios que ofrece ahorros significativos en AWS uso de. Usted comprometerse a una cantidad de uso consistente, en USD por hora, durante un periodo de 1 o 3 años, y reciben un precio más bajo por ese uso. Para obtener más información, consulte la Usuario de planes de ahorro Guía.

Para crear un Plan de ahorro para su Fargate uso, utiliza la [EMPTY] Savings Plans escriba. Para comenzar, consulte Introducción a Savings Plans en el Savings Plans Guía del usuario.