AWS ECS: tarea en ejecución vs. servicio


Parece que se puede ejecutar una Tarea o un Servicio basado en una Definición de Tarea. ¿Cuáles son las diferencias y similitudes entre la Tarea y el Servicio? ¿Hay alguna pista en el hecho de que uno puede especificar "Grupo de tareas" al crear Tareas pero no Servicio? ¿La Tarea y el Servicio son instancias jerárquicamente iguales de Definición de Tareas, o el Servicio está compuesto de Tareas?

Gracias.

Author: Bob Jones, 2017-03-22

1 answers

Un Tarea Definición es una colección de 1 o más contenedor configuraciones. Algunas tareas pueden necesitar solo un contenedor, mientras que otras Tareas pueden necesitar 2 o más contenedores potencialmente vinculados que se ejecuten simultáneamente. La definición de tarea le permite especificar qué imagen de Docker usar, qué puertos exponer, cuánta CPU y memoria asignar, cómo recopilar registros y definir variables de entorno.

Se crea una Tarea cuando ejecuta una tarea directamente, que inicia contenedor (s) (definido en la definición de la tarea) hasta que se detiene o sale por sí mismo, momento en el que se no se reemplaza automáticamente. Ejecutar tareas directamente es ideal para trabajos cortos en ejecución, tal vez como un ejemplo de cosas que se lograron a través de CRON.

Un Servicio se utiliza para garantizar que siempre tenga un número de Tareas ejecutándose en todo momento. Si el contenedor de una tarea sale debido a un error, o la instancia EC2 subyacente falla y se reemplaza, el Servicio ECS reemplazará la tarea fallida. Es por eso que creamos Clusters para que el Servicio tenga muchos recursos en términos de CPU, Memoria y puertos de red para usar. Para nosotros realmente no importa en qué instancia se ejecutan las tareas mientras se ejecuten. Una configuración de servicio hace referencia a una definición de tarea. Un Servicio es responsable de crear Tareas.

Los servicios se utilizan normalmente para aplicaciones de larga duración como web servidor. Por ejemplo, si implementé mi sitio web con Node.JS en Oregon (us-west-2) Me gustaría decir al menos tres Tareas que se ejecutan a través de las tres Zonas de Disponibilidad (AZ) por el bien de la Alta Disponibilidad; si una falla tengo otras dos y la fallida será reemplazada (léalo como autocuración!). Crear un Servicio es la forma de hacerlo. Si tuviera 6 instancias EC2 en mi clúster, 2 por AZ, el Servicio equilibrará automáticamente las tareas entre las zonas lo mejor que pueda, mientras que también teniendo en cuenta los recursos de cpu, memoria y red.

ACTUALIZACIÓN:

No estoy seguro de que ayude pensar en estas cosas jerárquicamente.

Otro punto muy importante es que un Servicio se puede configurar para usar un balanceador de carga, de modo que a medida que crea las Tareas, es decir, lanza contenedores definidos en la Definición de tareas, el Servicio registrará automáticamente la instancia EC2 del contenedor con el balanceador de carga. Las tareas no se pueden configurar para usar un equilibrador de carga, solo los servicios puede.

 93
Author: talentedmrjones,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-01 01:00:18