

# Actualización de un servicio de Amazon ECS
<a name="update-service-console-v2"></a>

Después de crear un servicio, hay ocasiones en las que puede que necesite actualizar sus parámetros, por ejemplo, el número de tareas.

Cuando actualiza un servicio que utiliza un interruptor de Amazon ECS, Amazon ECS crea una implementación y una revisión de servicios. Estos recursos le permiten ver información detallada sobre el historial del servicio. Para obtener más información, consulte [Visualización del historial de servicios mediante las implementaciones de servicios de Amazon ECS](service-deployment.md).

## Requisitos previos
<a name="update-service-prerequisites"></a>

Antes de actualizar un servicio, compruebe qué parámetros del servicio se pueden cambiar para su tipo de implementación. Para obtener una lista completa de parámetros que se pueden modificar, consulte [Actualización de los parámetros de servicio de Amazon ECS](update-service-parameters.md).

## Procedimiento
<a name="update-service-procedure"></a>

------
#### [ Console ]

1. Abra la consola en [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

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

1. 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**.

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

1. 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.

1. Si eligió **Replica** (Réplica), en **Desired tasks** (Tareas deseadas), ingrese el número de tareas que se lanzarán y mantendrán en el servicio.

1. Si eligió **Réplica** para que Amazon ECS supervise la distribución de las tareas entre las zonas de disponibilidad y las redistribuya cuando haya un desequilibrio, en **Reequilibrio del servicio de zonas de disponibilidad**, seleccione **Reequilibrio del servicio de zonas de disponibilidad**.

1. 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](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service_definition_parameters.html#sd-deploymentconfiguration).

1. 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).

1. Para configurar cómo se implementan las tareas para su servicio, expanda **Opciones de implementación** y, a continuación, configure sus opciones.

   1. En **Tipo de controlador de implementación**, especifique el controlador de implementación del servicio. La consola de Amazon ECS admite los siguientes tipos de controladores: `ECS`.

   1. En **Estrategia de implementación**, elija la estrategia que haya utilizado Amazon ECS para implementar nuevas versiones del servicio.

   1. Dependiendo de la **estrategia de implementación** que elija, haga lo siguiente:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonECS/latest/developerguide/update-service-console-v2.html)

   1. Para ejecutar las funciones de Lambda en una etapa del ciclo de vida, en **Enlaces de ciclo de vida de la implementación**, haga lo siguiente para cada función de Lambda única:

      1. Elija **Agregar**.

         Repita este procedimiento para cada función única que desee ejecutar.

      1. En **Función de Lambda**, ingrese el nombre de la función.

      1. En **Rol**, elija el rol que creó en los requisitos previos con los permisos azul/verde.

         Para obtener más información, consulte [Permisos necesarios para las funciones de Lambda en las implementaciones azul/verde de Amazon ECS](blue-green-permissions.md).

      1. En **Etapas del ciclo de vida**, seleccione las etapas que ejecuta la función de Lambda.

      1.  (Opcional) En **Detalles del enlace**, introduzca un par clave-valor que proporcione información sobre el enlace.

1. 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**.

   1. 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**.

1. 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.

   1. 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.

1. (Opcional) Para configurar el escalado automático de servicios, expanda **Escalado automático de servicios** y, a continuación, especifique los siguientes parámetros. Para utilizar el escalado automático predictivo, que analiza los datos de cargas anteriores de los flujos de tráfico, configúrelo después de crear el servicio. Para obtener más información, consulte [Uso de patrones históricos para escalar los servicios de Amazon ECS con escalado predictivo](predictive-auto-scaling.md).

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

   1. 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.

   1. 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.

   1. Elija el tipo de política. En **Tipo de política de escalado**, elija una de las siguientes opciones.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonECS/latest/developerguide/update-service-console-v2.html)

1. (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 **Solo en el 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).

   1. 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. Puede ser un espacio de nombres creado por separado en la misma Región de AWS de su Cuenta de AWS o un espacio de nombres en la misma región que se comparta con su cuenta mediante AWS Resource Access Manager (AWS RAM). Para obtener más información sobre los espacios de nombres de AWS Cloud Map compartidos, consulte [Cross-account AWS Cloud Map namespace sharing](https://docs.aws.amazon.com/cloud-map/latest/dg/sharing-namespaces.html) en la *Guía para desarrolladores de AWS Cloud Map*.

   1. (Opcional) Especifique una configuración de registro. Seleccione **Utilizar colección de registros**. La opción predeterminada envía registros de contenedor a los Registros de CloudWatch. Las demás opciones del controlador de registro se configuran mediante AWS FireLens. Para obtener más información, consulte [Envío de registros de Amazon ECS a un servicio de AWS o AWS Partner](using_firelens.md).

      A continuación, se describe con más detalle cada uno de los destinos de registro de contenedor.
      + **Amazon CloudWatch**: configure la tarea para enviar registros de contenedor a CloudWatch Logs. Se proporcionan las opciones de controlador de registro predeterminadas que crean un grupo de registros de CloudWatch en su nombre. Para especificar otro nombre de grupo de registros, cambie los valores de las opciones del controlador.
      + **Amazon Data Firehose**: configure la tarea para enviar registros de contenedor a Firehose. Se proporcionan las opciones de controlador de registro predeterminadas que envían registros a un flujo de entrega de Firehose. Para especificar un nombre de flujo de entrega distinto, cambie los valores de las opciones del controlador.
      + **Amazon Kinesis Data Streams**: configure la tarea para enviar registros de contenedores a Kinesis Data Streams. Se proporcionan las opciones de controlador de registro predeterminadas que envían registros a un flujo de Kinesis Data Streams. Para especificar otro nombre de transmisión, cambie los valores de las opciones del controlador.
      + **Amazon OpenSearch Service**: configure la tarea para enviar registros de contenedor a un dominio de OpenSearch Service. Se deben proporcionar las opciones del controlador de registros. 
      + **Amazon S3**: configure la tarea para enviar registros de contenedor a un bucket de Amazon S3. Se proporcionan las opciones de controlador de registro predeterminadas, pero debe especificar un nombre de bucket de Amazon S3 válido.

   1. Para habilitar los registros de acceso, siga estos pasos:

      1. Amplíe **Configuración del registro de acceso**. En **Formato**, elija **JSON** o `TEXT`.

      1. Para incluir los parámetros de consulta en los registros de acceso, seleccione **Incluir parámetros de consulta**.
**nota**  
Para deshabilitar los registros de acceso, en **Formato**, seleccione **Ninguno**.

1. 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.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonECS/latest/developerguide/update-service-console-v2.html)

1. (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)**.

1. Elija **Actualizar**.

------
#### [ AWS CLI ]
+ Ejecuta `update-service`. Para obtener información sobre la ejecución del comando, consulte [update-service](https://docs.aws.amazon.com/cli/latest/reference/ecs/update-service.html) en la Referencia de AWS Command Line Interface. 

  En el siguiente ejemplo de `update-service`, se actualiza el recuento de tareas deseado del servicio `my-http-service` a 2.

  Sustituya las *entradas del usuario* por sus valores.

  ```
  aws ecs update-service \
      --cluster MyCluster \
      --service my-http-service \
      --desired-count 2
  ```

------

## Siguientes pasos
<a name="update-service-next-steps"></a>

Haga un seguimiento de la implementación y consulte el historial de los servicios que utiliza el interruptor de Amazon ECS. Para obtener más información, consulte [Visualización del historial de servicios mediante las implementaciones de servicios de Amazon ECS](service-deployment.md).