Servicios de Amazon ECS
Puede utilizar un servicio de Amazon ECS para ejecutar y mantener un número determinado de instancias de una definición de tarea de manera simultánea en un clúster de Amazon ECS. Si una de las tareas falla o se detiene, el programador de servicios de Amazon ECS lanza otra instancia de su definición de tarea para sustituirla. Esto ayuda a mantener el número deseado de tareas en el servicio.
También puede ejecutar el servicio detrás de un equilibrador de carga. El balanceador de carga distribuye el tráfico entre las tareas que están asociadas al servicio.
Se recomienda utilizar el programador de servicios para los servicios y aplicaciones sin estado de larga duración. El programador de servicios garantiza el cumplimiento de la estrategia de programación especificada y reprograma las tareas cuando alguna de ellas falla. Por ejemplo, si falla la infraestructura subyacente, el programador de servicios puede reprogramar una tarea. Puede utilizar estrategias de ubicación de tareas y restricciones para personalizar el modo en que el programador ubica y termina las tareas. Si se detiene una tarea de un servicio, el programador lanza una nueva tarea para sustituirla. Este proceso continúa hasta que el servicio alcanza el número deseado de tareas en función de la estrategia de programación que utiliza el servicio. La estrategia de programación del servicio también se denomina tipo de servicio.
El programador de servicios también reemplaza las tareas que se determina que están en mal estado después de que se produzca un error en una comprobación de estado del contenedor o en una comprobación de estado del grupo objetivo del equilibrador de cargas. Este reemplazo depende de los parámetros de definición del servicio maximumPercent
y desiredCount
. Si una tarea está marcada como en mal estado, el programador de servicios iniciará primero una tarea de reemplazo. Luego, ocurrirá lo siguiente.
Si la tarea de reemplazo tiene un estado de
HEALTHY
, el programador de servicios detiene la tarea en mal estado.Si la tarea de reemplazo tiene un estado de
UNHEALTHY
, el programador detendrá la tarea de reemplazo en mal estado o la tarea existente en mal estado para igualar el recuento total de tareas endesiredCount
.
Si el parámetro maximumPercent
impide que el programador inicie primero una tarea de reemplazo, detendrá las tareas en mal estado de forma aleatoria de una en una para liberar capacidad y, a continuación, iniciará una tarea de reemplazo. El proceso de inicio y parada continúa hasta que todas las tareas en mal estado se sustituyan por tareas en buen estado. Una vez que se hayan reemplazado todas las tareas en mal estado y solo se estén ejecutando las tareas en buen estado, si el recuento total de tareas supera el límite de desiredCount
, las tareas en buen estado se detienen aleatoriamente hasta que el recuento total de tareas sea igual a desiredCount
. Para obtener más información sobre maximumPercent
y desiredCount
, consulte Parámetros de definición de servicios.
El programador de servicios incluye una lógica que limita la frecuencia con la que se reinician las tareas si estas fallan de forma repetida Si una tarea se detiene sin haber entrado en estado RUNNING
, el programador de servicios comienza a ralentizar los intentos de lanzamiento y envía un mensaje de evento de servicio. Este comportamiento impide que se utilicen recursos innecesarios para tareas fallidas antes de poder resolver el problema. Una vez que el servicio de actualiza, el programador de servicios retoma el comportamiento normal de programación. Para obtener más información, consulte Lógica de limitación controlada de servicios de Amazon ECS y Visualización de los mensajes de eventos del servicio de Amazon ECS.
Opción de computación de infraestructura
Hay dos opciones de computación que distribuyen sus tareas.
-
Una estrategia de proveedor de capacidad hace que Amazon ECS distribuya sus tareas en uno o varios proveedores de capacidad.
En capacity provider strategy (estrategia de proveedor de capacidad), la consola selecciona una opción de computación de forma predeterminada. A continuación, se describe el orden que utiliza la consola para seleccionar un valor predeterminado:
-
Si su clúster tiene definida una estrategia de proveedor de capacidad por defecto, se seleccionará esa.
-
Si el clúster no tiene definida una estrategia de proveedores de capacidad predeterminada, pero sí tiene los proveedores de capacidad de Fargate agregados al clúster, se selecciona una estrategia de proveedores de capacidad personalizada que utiliza al proveedor de capacidad de
FARGATE
. -
Si su clúster no tiene definida una estrategia de proveedor de capacidad por defecto, pero tiene uno o varios proveedores de capacidad de grupo de escalado automático agregados al clúster, se seleccionará la opción Utilizar personalizado (Avanzado) y tendrá que definir manualmente la estrategia.
-
Si el clúster no tiene definida ninguna estrategia de proveedores de capacidad predeterminada ni tiene proveedores de capacidad agregados al clúster, se selecciona el tipo de lanzamiento de Fargate.
-
-
Un tipo de lanzamiento hace que Amazon ECS lance nuestras tareas directamente en Fargate o en las instancias de EC2 registradas en sus clústeres.
De forma predeterminada, el servicio se inicia en las subredes de la VPC de clúster.
Escalado automático de servicios
El escalado automático del servicio es la capacidad de aumentar o disminuir automáticamente la cantidad de tareas deseada en el servicio de Amazon ECS. Amazon ECS utiliza el servicio de Application Auto Scaling para proporcionar esta funcionalidad.
Para obtener más información, consulte Escalado automático de su servicio de Amazon ECS.
Equilibrio de carga de los servicios
Los servicios de Amazon ECS alojados en AWS Fargate admiten los equilibradores de carga de aplicación, los equilibradores de carga de red y los equilibradores de carga de puerta de enlace. Utilice la siguiente tabla para obtener información sobre el tipo de equilibrador de carga que se debe utilizar.
Tipo de equilibrador de carga | Utilizar en estos casos |
---|---|
Equilibrador de carga de aplicación |
Dirija el tráfico HTTP o HTTPS (o de capa 7). Los Application Load Balancers ofrecen varias características nuevas que los hacen interesantes para utilizar con los servicios Amazon ECS:
|
Equilibrador de carga de red | Dirija el tráfico TCP o UDP (o de capa 4). |
Gateway Load Balancer | Dirija el tráfico TCP o UDP (o de capa 4). Utilice dispositivos virtuales, como firewalls, sistemas de prevención y detección de intrusiones, y sistemas de inspección profunda de paquetes. |
Para obtener más información, consulte Uso del equilibrador de carga para distribuir el tráfico de servicio de Amazon ECS.
Interconexión de servicios
Si necesita una aplicación para conectarse a otras que se ejecutan en los servicios de Amazon ECS, Amazon ECS proporciona las siguientes formas de lograrlo sin un equilibrador de carga:
-
Service Connect: permite que se lleven a cabo las comunicaciones de servicio a servicio con detección automática mediante nombres abreviados y puertos estándar.
-
Detección de servicios: la detección de servicios usa Route 53 para crear un espacio de nombres para el servicio, lo que permite detectarlo a través del DNS.
-
Amazon VPC Lattice: VPC Lattice es un servicio de redes de aplicaciones completamente administrado que puede utilizar para conectar, proteger y monitorear sus servicios en varias cuentas y nubes privadas virtuales (VPC). Su uso conlleva un costo asociado.
Para obtener más información, consulte Interconexión de los servicios de Amazon ECS.