Proveedores de capacidad de 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.

Proveedores de capacidad de AWS Fargate

Los proveedores de capacidad de Amazon ECS en AWS Fargate le permiten utilizar la capacidad de Fargate y de Fargate Spot para las 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.

Consideraciones sobre proveedores de capacidad de Fargate

Cuando se utilizan proveedores de capacidad de Fargate, se debe tener en cuenta lo siguiente:

  • El proveedor de capacidad de Fargate Spot no es compatible con los contenedores de Windows de Fargate.

  • Las tareas Linux con la arquitectura ARM64 no son compatibles con el proveedor de capacidad de Fargate Spot. Fargate Spot solo admite tareas de Linux con la arquitectura X86_64.

  • No es necesario crear proveedores de capacidad de Fargate y Fargate Spot. Están disponibles para todas las cuentas. Para usarlos, solo tiene que asociarlos a un clúster.

  • Para asociar proveedores de capacidad de Fargate y Fargate Spot a un clúster, debe utilizar la API de Amazon ECS o la AWS CLI. No puede asociarlos mediante la consola.

  • Los proveedores de capacidad de Fargate y Fargate Spot están reservados y no se pueden eliminar. Sin embargo, puede desasociarlos de un clúster mediante la operación de la API PutClusterCapacityProviders.

  • Puede asociar un proveedor de capacidad a un clúster existente mediante elPutClusterCapacityProvidersFuncionamiento de la API.

  • Si utiliza Fargate Spot, la tarea debe utilizar la versión 1.3.0 o superior de la plataforma (para Linux). Para obtener más información, consulte Versiones de la plataforma AWS Fargate.

  • Cuando se detienen las tareas que utilizan los proveedores de capacidad de Fargate y Fargate Spot, el evento de cambio de estado de la tarea se envía a Amazon EventBridge. En el motivo de la parada se describe la causa. Para obtener más información, consulte Eventos de cambio de estado de tarea.

  • Un clúster puede contener una combinación de proveedores de capacidad del grupo de escalado automático y Fargate. Sin embargo, una estrategia de proveedores de capacidad solo puede contener proveedores de capacidad de grupos de escalado automático o Fargate, pero no ambos. Para obtener más información, consulte Proveedores de capacidad de grupos de Auto Scaling en la Guía para desarrolladores de Amazon Elastic Container Service.

Manejo de avisos de terminación de Fargate Spot

Tenga en cuenta las siguientes consecuencias: es posible que la capacidad de Spot no esté disponible todo el tiempo.

  • Durante los períodos de demanda extremadamente alta, es posible que la capacidad de Fargate Spot no esté disponible. Esto puede provocar que las tareas de Fargate Spot se retrasen. En estos casos, los servicios de Amazon ECS vuelven a intentar iniciar las tareas hasta que se disponga de la capacidad necesaria. Fargate no sustituye la capacidad de Spot por la capacidad bajo demanda.

  • Cuando se detienen tareas que utilizan capacidad de Fargate Spot debido a una interrupción de spot, se envía una advertencia dos minutos antes de la detención de la tarea. La advertencia se envía a Amazon como un evento de cambio de estado de una tarea EventBridge y como una señal SIGTERM para la tarea en ejecución. Si utiliza Fargate Spot como parte de un servicio, en esta situación, el programador de servicio recibe la señal de interrupción e intenta lanzar tareas adicionales en Fargate Spot si hay capacidad disponible. Un servicio con una sola tarea se interrumpirá hasta que haya capacidad disponible. Para obtener más información sobre un cierre correcto, consulteCierres impecables con ECS.

Para garantizar que los contenedores salgan correctamente antes de que se detenga la tarea, puede configurar lo siguiente:

  • Se puede especificar un valor de stopTimeout de 120 segundos o menos en la definición del contenedor que la tarea utiliza. El valor de stopTimeout predeterminado es de 30 segundos. Puede especificar un valor de stopTimeout mayor para disponer de más tiempo desde el momento en que se recibe el evento de cambio de estado de tarea hasta el punto en el que se detiene forzosamente el contenedor. Para obtener más información, consulte Tiempos de espera de contenedor.

  • La señal SIGTERM debe recibirse desde dentro del contenedor para realizar cualquier acción de limpieza. Si no se procesa esta señal, la tarea recibirá una señal SIGKILL una vez transcurrido el stopTimeout configurado, lo que puede provocar pérdida o corrupción de datos.

A continuación, se ofrece un fragmento de un evento de cambio de estado de tarea. Este fragmento muestra el motivo y el código de detención de una interrupción de Fargate Spot.

{ "version": "0", "id": "9bcdac79-b31f-4d3d-9410-fbd727c29fab", "detail-type": "ECS Task State Change", "source": "aws.ecs", "account": "111122223333", "resources": [ "arn:aws:ecs:us-east-1:111122223333:task/b99d40b3-5176-4f71-9a52-9dbd6f1cebef" ], "detail": { "clusterArn": "arn:aws:ecs:us-east-1:111122223333:cluster/default", "createdAt": "2016-12-06T16:41:05.702Z", "desiredStatus": "STOPPED", "lastStatus": "RUNNING", "stoppedReason": "Your Spot Task was interrupted.", "stopCode": "SpotInterruption", "taskArn": "arn:aws:ecs:us-east-1:111122223333:task/b99d40b3-5176-4f71-9a52-9dbd6fEXAMPLE", ... } }

El siguiente es un patrón de eventos que se utiliza para crear un EventBridge regla para los eventos de cambio de estado de las tareas de Amazon ECS. Si lo desea, puede especificar un clúster en el campo detail. Al hacerlo, recibirá eventos de cambio de estado de la tarea para ese clúster. Para obtener más información, consulteCrear un EventBridge Reglaen elAmazon EventBridge Guía del usuario.

{ "source": [ "aws.ecs" ], "detail-type": [ "ECS Task State Change" ], "detail": { "clusterArn": [ "arn:aws:ecs:us-west-2:111122223333:cluster/default" ] } }