Actualización de un servicio de Amazon ECS mediante la consola - Amazon Elastic Container Service

Actualización de un servicio de Amazon ECS mediante la consola

Puede actualizar un servicio de Amazon ECS mediante la consola de Amazon ECS. La configuración actual del servicio se rellena automáticamente. Puede actualizar la definición de tareas, el recuento de tareas deseado, la estrategia de proveedores de capacidad, la versión de la plataforma y la configuración de implementación, o cualquier combinación de ellas.

Para obtener información sobre cómo actualizar la configuración de implementación azul/verde, consulte Actualización de una implementación azul/verde de Amazon ECS mediante la consola.

Considere lo siguiente cuando utilice la consola:

Si desea detener temporalmente el servicio, establezca Tareas deseadas en 0. A continuación, cuando lo tenga todo listo para iniciar el servicio, actualícelo con el recuento original de Tareas deseadas.

Considere lo siguiente cuando utilice la consola:

  • Debe utilizar la AWS Command Line Interface para actualizar un servicio que utilice alguno de los siguientes parámetros:

    • Implementaciones blue/green

    • Detección de servicios: solo puede ver la configuración de la detección de servicios.

    • Política de seguimiento con una métrica personalizada

    • Servicio de actualización: no puede actualizar la configuración de la red awsvpc ni el periodo de gracia de la comprobación de estado.

    Para obtener más información sobre cómo actualizar un servicio con la AWS CLI, consulte update-service en la Referencia de la AWS Command Line Interface.

  • Si cambia los puertos utilizados por los contenedores en una definición de tarea, es posible que tenga que actualizar los grupos de seguridad de las instancias del contenedor para que funcionen con los puertos actualizados.

  • Amazon ECS no actualiza automáticamente los grupos de seguridad asociados a los balanceadores de carga de Elastic Load Balancing ni a las instancias de contenedor de Amazon ECS.

  • Si el servicio utiliza un equilibrador de carga, desde la consola no se puede cambiar su configuración definida para el servicio cuando se creó. En su lugar, puede utilizar la AWS CLI o el SDK para modificar la configuración del equilibrador de carga. Para obtener más información acerca de cómo modificar la configuración, consulte UpdateService en la Referencia de la API de Amazon Elastic Container Service.

  • Si actualiza la definición de la tarea del servicio, el nombre y el puerto del contenedor que se especificaron en la configuración del equilibrador de carga deben permanecer en la definición de la tarea.

Puede actualizar un servicio existente para cambiar algunos de los parámetros de configuración del servicio, tales como el número de tareas que mantiene un servicio, qué definición de tareas utilizan las tareas o, si las tareas están utilizando el tipo de lanzamiento de Fargate, puede cambiar la versión de la plataforma que utiliza el servicio. Un servicio que utiliza una versión de la plataforma Linux no se puede actualizar para utilizar una versión de la plataforma Windows y viceversa. Si tiene una aplicación que necesita más capacidad, puede ajustar la escala del servicio. Si tiene una capacidad sin utilizar cuya escala va a reducir, puede reducir el número de tareas deseadas en el servicio y liberar recursos.

Si desea utilizar una imagen de contenedor actualizada para las tareas, puede crear una nueva revisión de definición de tarea con esa imagen e implementarla en el servicio mediante la opción force new deployment (forzar nueva implementación) en la consola.

El programador de servicio utiliza los parámetros de porcentaje máximo y porcentaje mínimo en buen estado (en la configuración de implementación del servicio) para determinar la estrategia de implementación.

Si un servicio utiliza el tipo de implementación de actualizaciones acumulativas (ECS), el porcentaje mínimo en buen estado representa un límite inferior en el número de las tareas en un servicio que deben permanecer en el estado RUNNING durante una implementación, como un porcentaje del número de tareas deseado (redondeado al entero superior más próximo). El parámetro también se aplica mientras haya instancias de contendedor en el estado DRAINING si el servicio contiene tareas que utilizan el tipo de lanzamiento de EC2. Utilice este parámetro para efectuar implementaciones sin utilizar capacidad de clúster adicional. Por ejemplo, si su servicio tiene un número deseado de cuatro tareas y un porcentaje mínimo de estado del 50 %, el programador puede detener dos tareas existentes para liberar la capacidad del clúster antes de iniciar dos nuevas tareas. Las tareas para servicios que no utilizan un balanceador de carga se consideran en buen estado si están en el estado RUNNING. Las tareas para servicios que utilizan un balanceador de carga se consideran en buen estado si están en estado RUNNING y el balanceador de carga notifica que están en buen estado. El valor predeterminado del porcentaje mínimo de estado es el 100 %.

Si un servicio utiliza el tipo de implementación de actualizaciones acumulativas (ECS), el parámetro porcentaje máximo representa un límite superior en el número de las tareas en un servicio que pueden permanecer en el estado PENDING, RUNNING o STOPPING durante una implementación, como un porcentaje del número de tareas deseado (redondeado al entero inferior más próximo). El parámetro también se aplica mientras haya instancias de contendedor en el estado DRAINING si el servicio contiene tareas que utilizan el tipo de lanzamiento de EC2. Utilice este parámetro para definir el tamaño del lote de implementación. Por ejemplo, si su servicio tiene un número deseado de cuatro tareas y un valor porcentual máximo del 200 %, el programador puede iniciar cuatro nuevas tareas antes de detener las cuatro más antiguas. Eso sí, siempre que se disponga de los recursos de clúster necesarios para ello. El valor predeterminado para el porcentaje máximo es el 200 %.

Cuando el programador de servicio sustituye una tarea durante una actualización, el servicio elimina primero la tarea del balanceador de carga (si se usa) y espera a que las conexiones se vacíen. A continuación, se emite el equivalente de docker stop a los contenedores que ejecutan la tarea. Esto da lugar a una señal SIGTERM y a un tiempo de espera de 30 segundos, tras el cual se envía SIGKILL y los contenedores se paran por la fuerza. Si el contenedor gestiona la señal SIGTERM correctamente y sale antes de los 30 segundos de haberla recibido, no se envía la señal SIGKILL. El programador de servicio inicia y para tareas definidas por la configuración de porcentaje en buen estado mínimo y porcentaje máximo.

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 en desiredCount.

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.

importante

Si está cambiando los puertos utilizados por contenedores en una definición de tarea, es posible que tenga que actualizar los grupos de seguridad de la instancia de contenedor para que funcionen con los puertos actualizados.

Si actualiza la definición de la tarea para el servicio, el nombre del contenedor y el puerto del contenedor que se especificaron cuando se creó el servicio deben permanecer en la definición de la tarea.

Amazon ECS no actualiza automáticamente los grupos de seguridad asociados a los balanceadores de carga de Elastic Load Balancing ni a las instancias de contenedor de Amazon ECS.

Para actualizar un servicio (consola de Amazon ECS)
  1. Abra la consola en https://console.aws.amazon.com/ecs/v2.

  2. En la página Clusters (Clústeres), elija el clúster.

  3. En la página de detalles del clúster, en la sección Servicios, seleccione la casilla de verificación situada junto al servicio y, a continuación, seleccione Actualizar.

  4. Para que su servicio inicie una nueva implementación, seleccione Force new deployment (Forzar una nueva implementación).

  5. En Definición de tareas, elija la familia y la revisión de definiciones de tareas.

    importante

    La consola valida que la familia y la revisión de definiciones de tareas seleccionadas sean compatibles con la configuración de cómputos definida. Si recibe una advertencia, compruebe la compatibilidad de la definición de tarea y la configuración de cómputos seleccionada.

  6. En Tareas deseadas, ingrese el número de tareas que desee ejecutar para el servicio.

  7. En Max running tasks (Máximo de tareas en ejecución), ingrese el límite máximo del número de tareas del servicio que se permiten en el estado RUNNING durante una implementación, como porcentaje del número de tareas deseado del servicio (redondeado al entero inferior más próximo). Para obtener más información, consulte Configuración de la implementación.

  8. En Max running tasks (Máximo de tareas en ejecución), ingrese el límite máximo del número de tareas del servicio que se permiten en el estado RUNNING o PENDING durante una implementación, como porcentaje del número de tareas deseado del servicio (redondeado al entero inferior más próximo).

  9. Para configurar el modo en que Amazon ECS detecta y gestiona los errores de implementación, expanda Deployment failure detection (Detección de errores de implementación) y, a continuación, elija sus opciones.

    1. Para detener una implementación cuando las tareas no puedan iniciarse, seleccione Use the Amazon ECS deployment circuit breaker (Utilizar el interruptor de circuito de implementación de Amazon ECS).

      Para que el software restaure automáticamente la implementación a su último estado completado cuando el disyuntor de implementación establezca un estado con error, seleccione Restauración en caso de error.

    2. Para detener una implementación en función de las métricas de la aplicación, seleccione Use CloudWatch alarms. A continuación, elija las alarmas en Nombre de la alarma de CloudWatch. Para crear una alarma nueva, vaya a la consola de CloudWatch.

      Para que el software restaure automáticamente la implementación a su último estado de implementación completada cuando una alarma de CloudWatch establezca un estado con error, seleccione Restauración en caso de error.

  10. Para cambiar las opciones de computación, expanda Configuración de computación y, a continuación, haga lo siguiente:

    1. Para los servicios en AWS Fargate, en Platform version (Versión de la plataforma), elija la nueva versión.

    2. Para los servicios que utilizan una estrategia de proveedor de capacidad, en Estrategia de proveedor de capacidad, haga lo siguiente:

      • Para agregar un proveedor de capacidad adicional, seleccione Agregar más. A continuación, en Proveedor de capacidad, seleccione el proveedor de capacidad.

      • Para eliminar un proveedor de capacidad, a la derecha del proveedor de capacidad, seleccione Eliminar.

      Un servicio que utiliza un proveedor de capacidad de grupos de escalado automático no se puede actualizar para que utilice un proveedor de capacidad de Fargate. Un servicio que utiliza un proveedor de capacidad de Fargate no puede actualizarse para utilizar un proveedor de capacidad de grupo de escalado automático.

  11. (Opcional) Para configurar el escalado automático del servicio, expanda Escalado automático de servicios y, a continuación, especifique los siguientes parámetros.

    1. Para utilizar el escalado automático de servicios, seleccione Service auto scaling (Escalado automático de servicios).

    2. En Cantidad mínima de tareas, ingrese el límite mínimo del número de tareas que se va a utilizar para el escalado automático del servicio. El recuento deseado no será inferior a este recuento.

    3. En Cantidad máxima de tareas, ingrese el límite máximo del número de tareas que se va a utilizar para el escalado automático del servicio. El recuento deseado no será superior a este recuento.

    4. Elija el tipo de política. En Tipo de política de escalado, elija una de las siguientes opciones.

      Para utilizar este tipo de política… Haga lo siguiente...

      Seguimiento de destino

      1. Para Scaling policy type (Tipo de política de escalado), elija Target tracking (Seguimiento de destino).

      2. En Policy name (Nombre de la política), ingrese el nombre de la política.

      3. En Métrica de servicio de ECS, seleccione una de las siguientes métricas.

        • ECSServiceAverageCPUUtilization: uso medio de la CPU del servicio.

        • ECSServiceAverageMemoryUtilization: uso medio de la memoria del servicio.

        • ALBRequestCountPerTarget: número de peticiones completadas por destino en un grupo de destinos del equilibrador de carga de aplicación.

      4. En Target value (Valor de destino), ingrese el valor que el servicio mantiene para la métrica seleccionada.

      5. En Periodo de recuperación de escalado horizontal, ingrese la cantidad de tiempo, en segundos, después de una actividad de escalado horizontal (agregar tareas) que debe transcurrir antes de que pueda iniciarse otra actividad de escalado horizontal.

      6. En Periodo de recuperación de desescalado horizontal, ingrese la cantidad de tiempo, en segundos, después de una actividad de reducción horizontal (eliminar tareas) que debe transcurrir antes de que pueda iniciarse otra actividad de reducción horizontal.

      7. Para evitar que la política lleve a cabo una actividad de reducción horizontal, seleccione Turn off scale-in (Desactivar la reducción horizontal).

      8. • (Opcional) Seleccione Desactivar la acción de desescalar horizontalmente si desea que la política de escalado se escale horizontalmente para adaptarse al aumento del tráfico, pero no necesita que se reduzca horizontalmente cuando el tráfico disminuya.

      Escalado por pasos
      1. Para Scaling policy type (Tipo de política de escalado), elija Step scaling (Escalado de pasos).

      2. En Nombre de política, ingrese el nombre de la política.

      3. En Alarm name, escriba un nombre único para la alarma.

      4. En Métrica de servicio de Amazon ECS, elija la métrica de servicio que desea utilizar para su alarma.

      5. En Estadística, elija la estadística de la alarma.

      6. En Período, elija el período de evaluación de la alarma.

      7. En Estado de alarma, elija cómo comparar la métrica seleccionada con el umbral definido.

      8. En Umbral para comparar las métricas y Período de evaluación para iniciar la alarma, introduzca el umbral utilizado para la alarma y durante cuánto tiempo se evaluará el umbral.

      9. En Acciones de escalado, haga lo siguiente:

        • Elija Acción si desea agregar, quitar o establecer un recuento específico para su servicio.

        • Si decide agregar o quitar las tareas, en Valor, ingrese el número de tareas (o porcentaje de las tareas existentes) que desea agregar o quitar cuando se inicie la acción de escalado. Si opta por establecer el recuento deseado, introduzca el número de tareas. En Tipo, seleccione si el Valor es un número entero o un porcentaje del recuento deseado existente.

        • En Límite inferior y Límite superior, introduzca el límite inferior y el límite superior del ajuste de escalado de pasos. De forma predeterminada, el límite inferior para Agregar política es el umbral de la alarma y el límite superior es infinito positivo (+). De forma predeterminada, el límite superior de Quitar política es el límite de la alarma y el límite inferior es infinito negativo (-).

        • (Opcional) Agregue opciones de escalado adicionales. Seleccione Agregar nueva acción de escalado y, a continuación, repita los pasos de Acciones de escalado.

        • En Periodo de recuperación, ingrese la cantidad de tiempo, en segundos, que debe esperarse para que surta efecto una actividad de reducción horizontal anterior. En el caso de una política de ampliación, este es el momento en el que, después de una actividad de escalado horizontal, la política de escalado bloquea las actividades de reducción horizontal y limita el número de tareas que se pueden escalar horizontalmente a la vez. En el caso de una política de reducción horizontal, este es el tiempo que debe transcurrir tras completarse una actividad de reducción horizontal antes de que pueda comenzar otra actividad de reducción horizontal.

  12. (Opcional) Para usar Service Connect, seleccione Turn on Service Connect (Activar Service Connect) y, a continuación, especifique lo siguiente:

    1. En Service Connect configuration (Configuración de Service Connect), especifique el modo cliente.

      • Si su servicio ejecuta una aplicación cliente de red que solo necesita conectarse a otros servicios del espacio de nombres, elija Client side only (Solo del lado del cliente).

      • Si su servicio ejecuta una aplicación de servicio web o red y necesita proporcionar puntos de conexión para este servicio y se conecta a otros servicios del espacio de nombres, elija Client and server (Cliente y servidor).

    2. Para usar un espacio de nombres que no sea el espacio de nombres predeterminado del clúster, en Namespace (Espacio de nombres), elija el espacio de nombres del servicio.

  13. Si su tarea usa un volumen de datos compatible con la configuración en el momento de la implementación, puede expandir Volume para configurar el volumen.

    El nombre y el tipo de volumen se configuran cuando crea una revisión de la definición de la tarea y no se pueden cambiar cuando se actualiza un servicio. Para actualizar el nombre y el tipo de volumen, debe crear una nueva revisión de la definición de la tarea y actualizar el servicio con la nueva revisión.

    Para configurar este tipo de volumen Haga lo siguiente

    Amazon EBS

    1. En Tipo de volumen de EBS, elija el tipo de volumen de EBS que desee adjuntar a la tarea.

    2. En Tamaño (GiB), ingrese un valor válido para el tamaño de volumen en gibibytes (GiB). Puede especificar un tamaño de volumen mínimo de 1 GiB y máximo de 16 384 GiB. Este valor es obligatorio a menos que proporcione un ID de instantánea.

    3. En IOPS, ingrese el número máximo de operaciones de entrada/salida (IOPS) que debe proporcionar el volumen. Este valor solo puede configurarse para los tipos de volumen io1, io2 y gp3.

    4. En Rendimiento (MiB/s), ingrese el rendimiento que debe proporcionar el volumen, en mebibytes por segundo (MiBps o MiB/s). Este valor solo puede configurarse para el tipo de volumen gp3.

    5. En ID de instantánea, elija una instantánea de volumen de Amazon EBS existente o ingrese el ARN de una instantánea si desea crear un volumen a partir de una instantánea. También puede crear un volumen nuevo y vacío sin elegir ni ingresar ningún ID de instantánea.

    6. En Tipo de sistema de archivos, elija el tipo de sistema de archivos que se utilizará para almacenar y recuperar datos en el volumen. Puede elegir el sistema operativo predeterminado o un tipo de sistema de archivos específico. El valor predeterminado para Linux es XFS. En el caso de los volúmenes creados a partir de una instantánea, debe especificar el mismo tipo de sistema de archivos que utilizaba el volumen cuando se creó la instantánea. Si hay un error de coincidencia con el tipo de sistema de archivos, la tarea no podrá iniciarse.

    7. En Rol de infraestructura, elija un rol de IAM con los permisos necesarios que permitan a Amazon ECS administrar los volúmenes de Amazon EBS para las tareas. Puede adjuntar la política de AmazonECSInfrastructureRolePolicyForVolumes administrada al rol, o puede utilizar la política como guía para crear y adjuntar su propia política con los permisos que cumplan sus necesidades específicas. Para obtener información sobre los permisos de necesarios, consulte Rol de IAM de infraestructura de Amazon ECS.

    8. En Cifrado, elija Predeterminado si quiere usar el cifrado de Amazon EBS como configuración predeterminada. Si su cuenta tiene configurado Cifrado predeterminado, el volumen se cifrará con la clave AWS Key Management Service (AWS KMS) especificada en la configuración. Si selecciona Predeterminado y el cifrado predeterminado de Amazon EBS no está activado, el volumen se descifrará.

      Si elige Personalizado, puede especificar una AWS KMS key de su preferencia para el cifrado por volumen.

      Si selecciona Ninguno, el volumen no se cifrará a menos que tenga el cifrado configurado de forma predeterminada o si crea un volumen a partir de una instantánea cifrada.

    9. Si ha elegido Personalizado en Cifrado, debe especificar la AWS KMS key que desee utilizar. En Clave de KMS, elija una AWS KMS key o escriba un ARN. Si decide cifrar su volumen mediante una clave simétrica administrada por el cliente, asegúrese de tener los permisos correctos definidos en su política de AWS KMS key. Para obtener más información, consulte Data encryption for Amazon EBS volumes.

    10. (Opcional) En Etiquetas, puede propagar las etiquetas de la definición de la tarea o del servicio o proporcionar sus propias etiquetas para agregar etiquetas a su volumen de Amazon EBS.

      Si desea propagar etiquetas desde la definición de la tarea, seleccione Definición de tarea en Propagar etiquetas desde. Si desea propagar etiquetas desde el servicio, elija Servicio en Propagar etiquetas desde. Si elige No propagar o si no elige un valor, las etiquetas no se propagarán.

      Si quiere proporcionar sus propias etiquetas, seleccione Agregar etiqueta y, a continuación, proporcione la clave y el valor de cada etiqueta que agregue.

      Para obtener más información acerca del etiquetado de volúmenes de Amazon EBS, consulte Tagging Amazon EBS volumes.

  14. (Opcional) Para ayudar a identificar su servicio, expanda la sección Tags (Etiquetas) y, a continuación, configure sus etiquetas.

    • [Agregar una etiqueta] Elija Agregar etiqueta y haga lo siguiente:

      • En Clave, escriba el nombre de la clave.

      • En Valor, escriba el valor de la clave.

    • [Eliminar una etiqueta] Junto a la etiqueta, elija Remove tag (Quitar etiqueta).

  15. Elija Actualizar.