Prácticas recomendadas para los parámetros de servicio de Amazon ECS
Para garantizar que no haya tiempo de inactividad de las aplicaciones, el proceso de implementación es el siguiente:
-
Inicie los nuevos contenedores de aplicaciones y mantenga en funcionamiento los contenedores existentes.
-
Compruebe que los nuevos contenedores estén en buen estado.
-
Detenga los contenedores antiguos.
En función de la configuración de implementación y de la cantidad de espacio libre y sin reservar en el clúster, es posible que se necesiten varias rondas para completar el proceso y sustituir todas las tareas antiguas por tareas nuevas.
Existen dos opciones de configuración del servicio ECS que puede utilizar para modificar el número:
-
minimumHealthyPercent
: 100 % (predeterminado)El límite inferior del número de tareas de su servicio que deben permanecer en el estado
RUNNING
durante una implementación. Es un porcentaje dedesiredCount
que se redondea al número entero más cercano. Este parámetro le permite implementar sin utilizar capacidad de clúster adicional. -
maximumPercent
: 200 % (predeterminado)El límite superior del número de tareas para su servicio que se permiten en el estado
RUNNING
oPENDING
durante una implementación. Es un porcentaje dedesiredCount
que se redondea a la baja número entero más cercano.
Considere el siguiente servicio, que tiene seis tareas tan, implementadas en un clúster con espacio para ocho tareas en total. Las opciones de configuración del servicio Amazon ECS predeterminadas no permiten que la implementación supere el 100 % de las seis tareas deseadas.
![Diagrama que muestra seis tareas en un clúster con espacio para ocho tareas.](images/deployment-1.png)
El proceso de implementación es el siguiente:
-
El objetivo es sustituir las tareas tan por las azules.
-
El planificador inicia dos nuevas tareas azules porque la configuración predeterminada requiere que haya seis tareas en ejecución.
-
El programador detiene dos de las tareas tan porque habrá un total de seis tareas (cuatro tan y dos azules).
-
El planificador inicia dos tareas azules adicionales.
-
El planificador cierra dos de las tareas tan.
-
El planificador inicia dos tareas azules adicionales.
-
El programador cierra las dos últimas tareas tan.
En el ejemplo anterior, si utiliza los valores predeterminados para las opciones, tendrá que esperar 2 minutos y medio para que se inicie una nueva tarea. Además, es posible que el equilibrador de carga tenga que esperar 5 minutos para que se detenga la tarea anterior.
Puede acelerar la implementación estableciendo el valor minimumHealthyPercent
en un 50 %.
Considere el siguiente servicio, que tiene seis tareas tan, implementadas en un clúster con espacio para ocho tareas en total.
![Diagrama que muestra seis tareas en un clúster con espacio para ocho tareas con un valor minimumHealthyPercent del 50 %.](images/deployment-2.png)
El proceso de implementación es el siguiente:
-
El objetivo es sustituir las tareas tan por las azules.
-
El programador detiene tres de las tareas tan. Todavía hay tres tareas tan en ejecución que cumplen con el valor
minimumHealthyPercent
. -
El programador inicia cinco tareas azules.
-
El programador detiene las tres tareas tan restantes.
-
El programador inicia las tareas azules finales.
También puede agregar espacio libre adicional para poder ejecutar tareas adicionales.
![Diagrama que muestra seis tareas en un clúster con espacio para ocho tareas.](images/deployment-3.png)
El proceso de implementación es el siguiente:
-
El objetivo es sustituir las tareas tan por las azules.
-
El programador detiene tres de las tareas tan
-
El programador inicia seis tareas azules
-
El programador detiene las tres de tareas tan.
Utilice los siguientes valores para las opciones de configuración del servicio Amazon ECS cuando sus tareas estén inactivas durante algún tiempo y no tengan una tasa de uso elevada.
-
minimumHealthyPercent
: 50 % -
maximumPercent
: 200 %