Cuando actualizo mi aplicación en Amazon Elastic Container Service (ECS), quiero desplegar nuevas tareas sin tiempo de inactividad ni interrupciones en los servicios en ejecución.
Resolución
Para iniciar nuevas tareas sin tiempo de inactividad, lleve a cabo las siguientes acciones.
Configuración de los parámetros de despliegue para usar un tipo de despliegue de actualización continua
Para los despliegues sin tiempo de inactividad en Amazon ECS, se recomienda establecer el porcentaje mínimo de buen estado en el 100 % y el porcentaje máximo en el 200 %. Para obtener más información sobre los parámetros de porcentaje mínimo y máximo de buen estado perfecto, consulte Configuración del despliegue.
Para configurar los parámetros de despliegue, siga estos pasos:
- Abra la consola de Amazon ECS.
- Elija Clúster.
- En la página de detalles de los clústeres, en Servicios, seleccione el servicio que desee actualizar. A continuación, seleccione Actualizar.
- En Configuración de despliegue, configure los valores de **% mínimo de tareas en ejecución ** y % máximo de tareas en ejecución.
- Elija ** Actualizar servicio**.
Importante: Amazon ECS administra el proceso de despliegue de contenedores, pero no administra el enrutamiento del tráfico. Si usa un equilibrador de carga, configúrelo para dirigir el tráfico a sus tareas de Amazon ECS. Si usa despliegues azul/verde con AWS CodeDeploy, compruebe la configuración de administración del tráfico.
Configure el parámetro stopTimeout de la instancia de contenedor en la definición de la tarea
Establezca el parámetro stopTimeout para asegurarse de que la aplicación tenga suficiente tiempo de búfer durante el despliegue para completar las solicitudes de tareas. Actualice la definición de tareas de Amazon ECS y, a continuación, en Crear nueva revisión de definición de tareas, en Tiempos de espera de contenedores (opcional), configure el valor de Tiempo de espera de detención.
Configuración de los ajustes del grupo objetivo de ELB
Para configurar los ajustes del grupo objetivo de Elastic Load Balancing (ELB), siga estos pasos:
- Abra la consola de Amazon EC2.
- Elija Grupos objetivo y, a continuación, seleccione el grupo objetivo que está asociado a su servicio Amazon ECS.
- Seleccione la pestaña Detalles del grupo. A continuación, configure Ruta de comprobación de estado, Protocolo de comprobación de estado, Puerto de comprobación de estado, Umbral de buen estado y Umbral de mal estado con sus valores.
- Seleccione la pestaña Atributos y, a continuación, configure el valor del retraso de cancelación del registro para que satisfaga las necesidades de su aplicación.
Nota: Se recomienda establecer el atributo de retraso de cancelación del registro para que duplique aproximadamente el tiempo de respuesta de la aplicación.
- (Opcional) Configure sesiones persistentes para el equilibrador de carga para que las sesiones de solicitud de aplicaciones en curso se completen con la tarea existente.
Para estrategias de despliegue avanzadas, use CodeDeploy
Utilice CodeDeploy para validar el estado del servicio Amazon ECS antes del despliegue.
Nota: El cambio de tráfico de despliegue azul-verde de una sola vez puede provocar interrupciones en el servicio.
Configuración del drenaje automatizado para instancias de spot
Active el drenaje de instancias de spot para que las instancias de contenedor drenen automáticamente las instancias.