

# Actualización de un servicio de Amazon ECS Express Mode
<a name="express-service-update-full"></a>

El servicio de Express Mode simplifica el proceso de actualización del servicio al proporcionar opciones configurables para la red, el equilibrio de carga y Application Auto Scaling, además de organizar los cambios en estos servicios.

Puede actualizar el servicio de Express Mode para modificar imágenes de contenedores, ajustar la asignación de recursos o cambiar la configuración. Las actualizaciones se implementan mediante implementaciones canario con alarmas de reversión basadas en alarmas para mantener la disponibilidad.

## Comportamiento de implementación
<a name="express-service-update-full-behavior"></a>

Un servicio de Express Mode utiliza las canario de manera predeterminada para garantizar actualizaciones seguras y reversiones rápidas:
+ Se crea un entorno nuevo y se implementan las tareas con los cambios
+ El 5 % del tráfico se transfiere al entorno nuevo
+ Las reversiones basadas en alarmas se desencadenarán si la suma de los porcentajes de errores de 4xx y 5xx es superior a 1 para 2 puntos de datos en un plazo de 3 minutos
+ Las comprobaciones de estado verifican que las tareas nuevas sean correctas
+ Tras 3 minutos de incorporación, el total del tráfico se desplaza a un entorno nuevo
+ Después de 3 minutos de tiempo de incorporación para la supervisión, las tareas anteriores se detienen gradualmente y se sustituyen

Para obtener más información, consulte [Amazon ECS canary deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/canary-deployment.html)

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

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

1. En el panel de navegación, seleccione **Clusters (Clústeres)**.

1. En la página **Clústeres**, elija el nombre del clúster que contiene el servicio de Express Mode.

1. En la página de detalles del clúster, elija la pestaña **Servicios**.

1. Configure un filtro para ver los servicios de Express Mode. En **Filtrar tipo de administración de recursos**, elija **ECS**.

   Un servicio de Express Mode tiene una insignia **Express** junto al nombre.

1. En **Configuración**:

   1. Especifique la imagen que quiere utilizar para la aplicación. En **URI de imagen**, introduzca la URI de la imagen. Para buscar las imágenes de Amazon ECR, seleccione **Examinar imágenes de ECR** y, a continuación, haga lo siguiente:

      1. En **Repositorio privado**, elija el repositorio privado de Amazon ECR.

      1. En **Imagen**, elija la imagen.

      1. Elige cómo identificar la imagen. En **Seleccionar imagen por**, elija una de las siguientes opciones:
         + AWS recomienda que elija **Resumen de imágenes**.
         + Para utilizar la etiqueta, elija **Etiqueta de imagen** y, a continuación, elija la etiqueta.

   1. Para utilizar un registro privado, seleccione **Registro privado**. A continuación, en **ARN o nombre de Secrets Manager**, indique el ARN de Secrets Manager que creó en los requisitos previos.

   1. En **Rol de ejecución de tareas**, elija los roles o cree un nuevo rol y actualícelo. Puede actualizar el rol de ejecución de tareas cuando necesite agregar permisos adicionales.

1. En **Configuraciones adicionales**, personalice el servicio.

   1. En **Contenedor**:

      1. En **Puerto del contenedor**, actualice el puerto en el que escucha la aplicación (el valor predeterminado es 80).

      1. En **Ruta de comprobación de estado**, actualice la ruta de las comprobaciones de estado (por ejemplo, `/health`).

   1. En **Variables de entorno**, agregue pares clave-valor para las variables de entorno que necesite la aplicación:

      1. En **Clave**, ingrese el nombre de la variable de entorno.

      1. En **Tipo de valor**, elija **Variable de entorno** o **Secreto**.

      1. En **Valor o Valor de**, introduzca el valor o la referencia.

      1. Elija **Agregar variable de entorno** para agregar más variables según sea necesario.

   1. En **Comando**, si lo desea, introduzca un comando personalizado para anular la instrucción del CMD de Docker.

   1. En **Rol de tarea**, agregue un rol de IAM que conceda permisos a la aplicación que se pone en marcha en los contenedores. Esto permite a la aplicación hacer llamadas de API a los servicios de AWS.

   1. En **Computación**:

      1. En **CPU**, actualice la asignación de vCPU para las tareas (por ejemplo, 1 vCPU).

      1. En **Memoria**, actualice la asignación de memoria para las tareas (por ejemplo, 2 GB).

   1. En **Escalado automático**:

      1. En **Métrica del servicio de ECS**, elija la métrica según la que quiera escalar (por ejemplo, **Uso medio de memoria del servicio de ECS** o **Recuento de solicitudes por destino**).

      1. En **Valor de destino**, ingrese el destino del escalado (por ejemplo, **60** o **1000**).

      1. En **Número mínimo de tareas** y **Número máximo de tareas**, actualice los límites de escalado.

   1. En **Registros**:

      1. En **Grupo de registros de Amazon CloudWatch**, actualice el nombre del grupo de registros para los registros de la aplicación. Esto no moverá los registros existentes, sino que empezará a escribir los registros de la nueva revisión del servicio.

      1. En **Prefijo de flujo de registros de Amazon CloudWatch**, introduzca un prefijo nuevo para los flujos de registros.

1. Elija **Actualizar** para actualizar el servicio de Express Mode.

### Actualización con una definición de tareas personalizada
<a name="express-service-update-custom-td"></a>

Puede actualizar su servicio de Express Mode con una definición de tarea personalizada especificando el parámetro `taskDefinitionArn`. Express Mode utiliza la definición de tareas tal cual y continúa administrando el resto de la infraestructura.

En las actualizaciones posteriores, usted puede:
+ Crear una nueva versión de su definición de tareas y actualizar el `taskDefinitionArn`. Express Mode utiliza la nueva revisión para la próxima implementación del servicio.
+ Actualizar los parámetros de Express Mode directamente:
  + Para los parámetros no relacionados con la definición de la tarea (como `healthCheckPath`, `networkConfiguration` o`scalingTarget`), Express Mode aplica los cambios sin modificar la definición de la tarea.
  + Para los parámetros relacionados con la definición de tareas (como el uso de la imagen, la CPU o la memoria mediante `primaryContainer` o `cpu`/`memory`), Express Mode crea una nueva definición de tarea administrada con los cambios y, al mismo tiempo, conserva el resto de la configuración a nivel de tarea.

**Cómo actualizar con una definición de tarea personalizada (consola de Amazon ECS)**

1. Abra la consola de Amazon ECS y diríjase al servicio de Express Mode.

1. Seleccione la flecha desplegable junto a **Actualizar servicio** y luego seleccione **Actualizar con una definición de tareas personalizada**.

1. En **Familia de definición de tareas**, seleccione una familia de definición de tareas existente. Para crear una nueva definición de tareas, elija el enlace **Definiciones de tareas**.

1. En **Revisión de la definición de tareas**, seleccione la revisión que desee utilizar o déjela en blanco para utilizar la última revisión.

1. (Opcional) Amplíe **Configuraciones adicionales** para actualizar la configuración de la ruta de comprobación de estado, las redes o el escalado automático.

1. Elija **Actualizar**.

El siguiente comando AWS CLI de AWS actualiza el servicio de Express Mode con una definición de tareas personalizada:

```
aws ecs update-express-gateway-service \
    --service-arn arn:aws:ecs:us-west-2:123456789012:service/default/my-service \
    --task-definition-arn arn:aws:ecs:us-west-2:123456789012:task-definition/my-td:4
```

**nota**  
Si utiliza CloudFormation y va a agregar `taskDefinitionArn` al servicio de Express Mode por primera vez, vuelva a implementar su pila. Esto garantiza la compatibilidad con la reversión.