Programación de Amazon ECS tareas - 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.

Programación de Amazon ECS tareas

Amazon Elastic Container Service (Amazon ECS) es un sistema de simultaneidad optimista de estado compartido que ofrece capacidades de programación flexibles para sus tareas y contenedores. Los programadores de Amazon ECS utilizan la misma información de estado de clúster proporcionada por la API de Amazon ECS para tomar decisiones sobre colocación adecuadas.

Cada tarea que usa el tipo de lanzamiento 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.

Amazon ECS proporciona un programador de servicio (para las tareas y aplicaciones de ejecución prolongada), la posibilidad de ejecutar tareas manualmente (para trabajos por lotes o tareas que se ejecutan una sola vez), de tal forma que Amazon ECS coloca las tareas en el clúster automáticamente. Puede especificar estrategias y restricciones de ubicación de tareas que le permiten ejecutar las tareas con la configuración que desee, por ejemplo, distribuidas entre varias zonas de disponibilidad. También es posible integrarlo con los programadores personalizados o de terceros.

Programador de servicio

El programador del servicio está especialmente adaptado para servicios y aplicaciones sin estado de ejecución prolongada. El programador de servicio garantiza el cumplimiento de la estrategia de programación especificada y reprograma las tareas cuando falla alguna de ellas (por ejemplo, si la infraestructura subyacente falla por algún motivo).

Existen dos estrategias del programador de servicio:

  • REPLICA: la estrategia de programación de réplicas sitúa y mantiene en el clúster el número de tareas deseado. De forma predeterminada, el programador de servicio distribuye las tareas en zonas de disponibilidad. Puede utilizar estrategias y restricciones de ubicación de tareas para personalizar las decisiones de ubicación de las tareas. Para obtener más información, consulte Replica.

  • DAEMON: la estrategia de programación de demonios implementa exactamente una tarea en cada instancia de contenedor activa que cumpla todas las restricciones de ubicación de tareas que se especifiquen para el clúster. Cuando se utiliza esta estrategia, no es necesario especificar un número deseado de tareas, ni una estrategia de ubicación de tareas ni utilizar políticas de Auto Scaling de servicios. Para obtener más información, consulte Daemon.

    nota

    Las tareas de Fargate no admiten la estrategia de programación de DAEMON.

El programador de servicio garantiza opcionalmente además que las tareas se registren en una balanceador de carga de Elastic Load Balancing Puede actualizar los servicios que mantiene el programador de servicio como, por ejemplo, la implementación de una nueva definición de tareas o cambiar el número en ejecución de tareas deseadas. De forma predeterminada, el programador de servicio distribuye las tareas en zonas de disponibilidad, pero puede utilizar estrategias de colocación de tareas y restricciones para personalizar las decisiones de colocación de tareas. Para obtener más información, consulte Amazon ECSServicios de .

Ejecución manual de tareas

La acción RunTask es idónea para procesos tales como tareas por lotes que realizan el trabajo y, a continuación, se paran. Por ejemplo, podría tener una llamada de procesos RunTask cuando el trabajo entra en una cola. La tarea extrae trabajo de la cola, realiza el trabajo y, a continuación, se cierra. Mediante RunTask, puede permitir que la estrategia predeterminada de colocación de tareas distribuya las tareas aleatoriamente en el clúster, lo que minimiza las posibilidades de que una instancia única reciba un número de tareas desproporcionado. Como opción, puede utilizar RunTask para personalizar cómo el programador coloca las tareas utilizando restricciones y estrategias de colocación de tareas. Para obtener más información, consulte Ejecutar una tarea independiente y RunTask en la Amazon Elastic Container Service API Reference .

Ejecución de tareas con una programación similar a la cronde

Si tiene tareas que se deben ejecutar a intervalos regulares en el clúster como, por ejemplo, una operación de copia de seguridad o un examen de registros, puede utilizar la consola de Amazon ECS para crear una regla de Eventos de CloudWatch que ejecute una o varias tareas en el clúster en determinados momentos. La regla de eventos programados se puede establecer en un intervalo específico (ejecutar cada N minutos, horas o días), o para una programación más complicada, puede utilizar una cron expresión . Para obtener más información, consulte Tareas programadas (cron).

Programadores personalizados

Amazon ECS le permite crear sus propios programadores que satisfacen las necesidades de su empresa o para aprovechar programadores de terceros. Blox es un proyecto de código abierto que le ofrece más control sobre cómo se ejecutan las aplicaciones en contenedores en Amazon ECS. Le permite crear programadores e integrar programadores de terceros con Amazon ECS utilizando Amazon ECS para administrar completamente y escalar los clústeres. Los programadores personalizados utilizan la operación de la StartTask API para colocar tareas en instancias de contenedor específicas dentro del clúster.

nota

Los programadores personalizados solo son compatibles con las tareas que utilizan el tipo de lanzamiento EC2 Si utiliza el tipo de Fargate lanzamiento para sus tareas, la StartTask API no funciona.

Ubicación de tareas

Las acciones RunTask y CreateService le permiten especificar restricciones y estrategias de ubicación de tareas para personalizar la forma en que Amazon ECS ubica las tareas. Para obtener más información, consulte Amazon ECS ubicación de tareas.