

# Implementación de los servicios de Amazon ECS mediante el reemplazo de tareas
<a name="deployment-type-ecs"></a>

Cuando crea un servicio que utiliza el tipo de implementación de *actualización continua* (`ECS`), el programador de servicios de Amazon ECS reemplaza las tareas que se ejecutan en ese momento por unas nuevas. El número de tareas que Amazon ECS agrega o elimina del servicio durante una actualización continua se controla mediante la configuración de implementación del servicio. 

Amazon ECS utiliza los siguientes parámetros para determinar el número de tareas:
+ El valor `minimumHealthyPercent` representa el límite mínimo del número de tareas que se deben poner en marcha en buen estado para un servicio durante una implementación continua o cuando una instancia de contenedor se está agotando, como un porcentaje del número deseado de tareas para el servicio. Este valor se redondea hacia arriba. Por ejemplo, si el porcentaje mínimo en buen estado es `50` y el número de tareas deseado es cuatro, entonces el programador puede detener dos tareas existentes antes de iniciar dos nuevas. Del mismo modo, si el porcentaje mínimo en buen estado es del 75 % y el recuento de tareas deseado es dos, entonces el programador no puede detener ninguna tarea debido a que el valor resultante también es dos.
+ El valor `maximumPercent` representa el límite máximo del número de tareas que se deben poner en marcha para un servicio durante una implementación continua o cuando una instancia de contenedor se está agotando, como un porcentaje del número deseado de tareas para un servicio. Este valor se redondea hacia abajo. Por ejemplo, si el porcentaje máximo es `200` y el recuento de tareas deseado es cuatro, entonces el programador puede iniciar cuatro tareas nuevas antes de detener cuatro tareas existentes. Del mismo modo, si el porcentaje máximo es `125` y el recuento de tareas deseado es tres, el programador no puede iniciar ninguna tarea debido a que el valor resultante también es tres.

Durante una implementación continua, cuando las tareas tienen un estado incorrecto, Amazon ECS las reemplaza para mantener el valor de `minimumHealthyPercent` del servicio y proteger la disponibilidad. Las tareas con un estado incorrecto se sustituyen por la misma revisión de servicio a la que pertenecen. Esto garantiza que la sustitución de tareas con un estado incorrecto en la revisión de origen sea independiente de los errores de tareas en la revisión de destino. Cuando el parámetro `maximumPercent` lo permita, el programador inicializa las tareas de reemplazo antes de detener las que tienen un estado incorrecto. Si el parámetro `maximumPercent` impide que el programador inicie primero una tarea de reemplazo, detiene una tarea en mal estado de forma a la vez para liberar capacidad antes de inicializar una tarea de reemplazo.

**importante**  
Al establecer un porcentaje mínimo o uno máximo en buen estado, debe asegurarse de que el programador pueda detener o iniciar al menos una tarea cuando se inicia una implementación. Si la implementación del servicio está atascada debido a una configuración de implementación no válida, se enviará un mensaje de evento de servicio. Para obtener más información, consulte [servicio (*service-name*) no pudo detener o iniciar tareas durante una implementación debido a la configuración de implementación del servicio. Actualice el valor minimumHealthyPercent o MaximumPercent y vuelva a intentarlo.](service-event-messages-list.md#service-event-messages-7).

Las implementaciones continuas tienen dos métodos que proporcionan una forma de identificar rápidamente cuando se produce un error en la implementación de un servicio:
+ [Detección de errores por el interruptor de circuito de implementación de Amazon ECS](deployment-circuit-breaker.md)
+ [Detección de errores en la implementación de Amazon ECS por las alarmas de CloudWatch](deployment-alarm-failure.md)

Los métodos se pueden utilizar por separado o juntos. Si utiliza ambos métodos, la implementación se establece en un estado con errores en cuanto se cumplen los criterios de error de cualquiera de los métodos.

Utilice las siguientes directrices para determinar qué método debe utilizar:
+ Interruptor: utilice este método cuando quiera detener una implementación en caso de que las tareas no puedan iniciarse.
+ Alarmas de CloudWatch: utilice este método cuando quiera detener una implementación en función de las métricas de la aplicación.

Ambos métodos permiten revertir a la revisión de servicio anterior.

## Resolución de imagen de contenedor
<a name="deployment-container-image-stability"></a>

De forma predeterminada, Amazon ECS convierte las etiquetas de imágenes de contenedores especificadas en la definición de la tarea en resúmenes de imágenes de contenedores. Si crea un servicio que ejecuta y mantiene una sola tarea, esa tarea se utiliza para establecer los resúmenes de imágenes de los contenedores de la tarea. Si crea un servicio que ejecuta y mantiene varias tareas, la primera tarea iniciada por el programador de servicios durante la implementación se utiliza para establecer resúmenes de imágenes para los contenedores de las tareas.

Si se producen errores en tres o más intentos de establecer los resúmenes de imágenes del contenedor, la implementación continúa sin la resolución del resumen de la imagen. Si el interruptor de circuito de implementación está activado, la implementación también fallará y se revertirá.

Una vez establecidos los resúmenes de imágenes del contenedor, Amazon ECS los utiliza para iniciar cualquier otra tarea deseada y para cualquier futura actualización del servicio. Esto garantiza que todas las tareas de un servicio ejecuten siempre imágenes de contenedor idénticas, resultando en la consistencia de las versiones del software.

Puede configurar este comportamiento para cada contenedor de la tarea mediante el parámetro `versionConsistency` de la definición del contenedor. Para obtener más información, consulte [versionConsistency](task_definition_parameters.md#ContainerDefinition-versionconsistency).

**nota**  
Las versiones del agente de Amazon ECS inferiores a `1.31.0` no admiten la resolución de resúmenes de imágenes. Las versiones del agente `1.31.0` a `1.69.0` admiten la resolución de resúmenes de imágenes solo para las imágenes enviadas a los repositorios de Amazon ECR. Las versiones del agente `1.70.0` o superiores admiten la resolución de resúmenes de imágenes para todas las imágenes. 
La versión de la plataforma Fargate Linux mínima para la resolución de resumen de imágenes es `1.3.0`. La versión de la plataforma Fargate Windows mínima para la resolución de resumen de imágenes es `1.0.0`.
Amazon ECS no captura resúmenes de contenedores sidecar administrados por Amazon ECS, como el agente de seguridad Amazon GuardDuty o el proxy Service Connect.
Para reducir la latencia potencial asociada a la resolución de imágenes de contenedores en servicios con varias tareas, ejecute la versión del agente Amazon ECS `1.83.0` o superior en las instancias de contenedor EC2. Para evitar la latencia potencial, especifique los resúmenes de imágenes del contenedor en la definición de la tarea.
Si se crea un servicio con un recuento de tareas deseado igual a cero, Amazon ECS no podrá establecer los resúmenes del contenedor hasta que active otra implementación del servicio con un recuento de tareas deseado superior a cero.
Para establecer resúmenes de imágenes actualizados, puede forzar una nueva implementación. Los resúmenes actualizados se utilizarán para iniciar nuevas tareas y no afectarán a las tareas que ya estén en ejecución. Para obtener más información sobre cómo forzar nuevas implementaciones, consulte [ForceNewDeployment](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html#ECS-UpdateService-request-forceNewDeployment) en la *referencia de la API de Amazon* ECS.
Cuando se utilizan proveedores de capacidad de EC2, si no hay suficiente capacidad para iniciar una tarea durante la implementación inicial, es posible que no se logre la coherencia de las versiones del software. Para garantizar que se mantenga la coherencia de las versiones incluso cuando la capacidad sea limitada, configure `versionConsistency: "enabled"` de forma explícita en la configuración del contenedor de definición de tareas en lugar de basarse en el comportamiento predeterminado. Esto hace que Amazon ECS espere hasta que haya capacidad disponible antes de continuar con la implementación.

# Prácticas recomendadas para los parámetros de servicio de Amazon ECS
<a name="service-options"></a>

Para garantizar que no haya tiempo de inactividad de las aplicaciones, el proceso de implementación es el siguiente:

1. Inicie los nuevos contenedores de aplicaciones y mantenga en funcionamiento los contenedores existentes.

1. Compruebe que los nuevos contenedores estén en buen estado.

1. 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 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 de `desiredCount` 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` o `PENDING` durante una implementación. Es un porcentaje de `desiredCount` que se redondea a la baja número entero más cercano.

**Ejemplo: Opciones de configuración predeterminadas**

Considere el siguiente servicio, que tiene seis tareas, implementado en un clúster con capacidad para ocho tareas en total. Las opciones de configuración del servicio predeterminadas no permiten que la implementación supere el 100 % de las seis tareas deseadas.

El proceso de implementación es el siguiente:

1. El objetivo es sustituir las seis tareas.

1. El programador inicia dos nuevas tareas porque la configuración predeterminada requiere que haya seis tareas en ejecución en todo momento.

   Ahora hay seis tareas existentes y dos nuevas en ejecución.

1. El programador detiene dos de las tareas existentes.

   Ahora hay cuatro tareas existentes y dos nuevas en ejecución.

1. El programador inicia dos nuevas tareas adicionales.

   Ahora hay cuatro tareas existentes y cuatro nuevas.

1. El programador detiene dos de las tareas existentes.

   Ahora hay dos tareas existentes y cuatro nuevas en ejecución.

1. El programador inicia dos nuevas tareas adicionales.

   Ahora hay dos tareas existentes y seis nuevas en ejecución.

1. El programador detiene las dos últimas tareas existentes.

   Ahora hay seis tareas nuevas en ejecución.

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. 

**Ejemplo: Modificar `minimumHealthyPercent`**

Puede acelerar la implementación estableciendo el valor `minimumHealthyPercent` en un 50 %.

Considere el siguiente servicio, que tiene seis tareas, implementado en un clúster con capacidad para ocho tareas en total. El proceso de implementación es el siguiente:

1. El objetivo es sustituir seis tareas.

1. El programador detiene tres de las tareas existentes. 

   Todavía hay tres tareas existentes en ejecución que cumplen con el valor `minimumHealthyPercent`.

1. El programador inicia cinco nuevas tareas.

   Ahora hay tres tareas existentes y cinco nuevas.

1. El programador detiene las tres tareas existentes restantes.

   Ahora hay cinco tareas nuevas.

1. El programador inicia las tareas nuevas finales.

   Ahora hay seis tareas nuevas.

**Ejemplo: Modificar el espacio libre del clúster**

También puede agregar espacio libre adicional para poder ejecutar tareas adicionales. 

Considere el siguiente servicio, que tiene seis tareas, implementado en un clúster con capacidad para diez tareas en total. El proceso de implementación es el siguiente:

1. El objetivo es sustituir las tareas existentes.

1. El programador detiene tres de las tareas existentes.

   Ahora hay tres tareas existentes.

1. El programador inicia seis tareas nuevas.

   Ahora tiene las tareas existentes y seis nuevas.

1. El programador detiene las tres tareas existentes.

   Ahora hay seis tareas nuevas.

**Recomendaciones**

Utilice los siguientes valores para las opciones de configuración del servicio cuando sus tareas estén inactivas durante algún tiempo y no tengan una tasa de uso elevada.
+ `minimumHealthyPercent`: 50 %
+ `maximumPercent`: 200 % 

# Creación de una implementación de actualización continua de Amazon ECS
<a name="create-service-console-v2"></a>

Cree un servicio para ejecutar y mantener simultáneamente un número determinado de instancias de una definición de tarea en un clúster. Si una de las tareas falla o se detiene, el programador de servicios de Amazon ECS lanza otra instancia de su definición de tarea para sustituirla. Esto ayuda a mantener el número deseado de tareas en el servicio.

Decida los siguientes parámetros de configuración antes de crear un servicio:
+ Hay dos opciones de computación que distribuyen sus tareas.
  + Una **estrategia de proveedor de capacidad** hace que Amazon ECS distribuya sus tareas en uno o varios proveedores de capacidad. 

    Si desea poner en marcha sus cargas de trabajo en instancias administradas de Amazon ECS, debe usar la opción de estrategia del proveedor de capacidad.
  + Un **tipo de lanzamiento** hace que Amazon ECS lance nuestras tareas directamente en Fargate o en las instancias de EC2 registradas en sus clústeres.

    Si desea poner en marcha sus cargas de trabajo en instancias administradas de Amazon ECS, debe usar la opción de estrategia del proveedor de capacidad.
+ Las definiciones de tareas que utilizan el modo de red `awsvpc` o los servicios configurados para utilizar un balanceador de carga deben tener una configuración de redes. De forma predeterminada, la consola selecciona la Amazon VPC predeterminada junto con todas las subredes y el grupo de seguridad predeterminado dentro de la Amazon VPC predeterminada. 
+ La estrategia de ubicación. La estrategia de ubicación de tareas predeterminada distribuye uniformemente las tareas entre las zonas de disponibilidad. 

  Le recomendamos que utilice el reequilibrio de zonas de disponibilidad para garantizar una alta disponibilidad del servicio. Para obtener más información, consulte [Equilibrio de un servicio de Amazon ECS entre zonas de disponibilidad](service-rebalancing.md).
+ Cuando utiliza el **Tipo de lanzamiento** para su implementación de servicios, el servicio se inicia en las subredes de su VPC de clúster de forma predeterminada.
+ En **capacity provider strategy** (estrategia de proveedor de capacidad), la consola selecciona una opción de computación de forma predeterminada. A continuación, se describe el orden que utiliza la consola para seleccionar un valor predeterminado:
  + Si su clúster tiene definida una estrategia de proveedor de capacidad por defecto, se seleccionará esa.
  + Si el clúster no tiene definida una estrategia de proveedores de capacidad predeterminada, pero sí tiene los proveedores de capacidad de Fargate agregados al clúster, se selecciona una estrategia de proveedores de capacidad personalizada que utiliza al proveedor de capacidad de `FARGATE`.
  + Si su clúster no tiene definida una estrategia de proveedor de capacidad por defecto, pero tiene uno o varios proveedores de capacidad de grupo de escalado automático agregados al clúster, se seleccionará la opción **Utilizar personalizado (Avanzado)** y tendrá que definir manualmente la estrategia.
  + Si el clúster no tiene definida ninguna estrategia de proveedores de capacidad predeterminada ni tiene proveedores de capacidad agregados al clúster, se selecciona el tipo de lanzamiento de Fargate.
+ Las opciones predeterminadas de detección de errores en implementación son utilizar el **disyuntor de implementación de Amazon ECS** con la opción de **reversión en caso de errores**.

  Para obtener más información, consulte [Detección de errores por el interruptor de circuito de implementación de Amazon ECS](deployment-circuit-breaker.md).
+ Decida si desea que Amazon ECS aumente o disminuya automáticamente la cantidad deseada de tareas del servicio. Para obtener información, consulte ., [Escalado automático de su servicio de Amazon ECS](service-auto-scaling.md).
+ Si necesita una aplicación para conectarse a otras aplicaciones que se ejecutan en Amazon ECS, determine la opción que se adapte a su arquitectura. Para obtener más información, consulte [Interconexión de los servicios de Amazon ECS](interconnecting-services.md). 
+ Cuando crea 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).

  Para obtener información sobre cómo crear un servicio con la AWS CLI, consulte [https://docs.aws.amazon.com/cli/latest/reference/ecs/create-service.html](https://docs.aws.amazon.com/cli/latest/reference/ecs/create-service.html) en la *Referencia de la AWS Command Line Interface*.

  Para obtener información sobre cómo crear un servicio mediante AWS CloudFormation, consulte [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ecs-service.html) en la *Guía del usuario de AWS CloudFormation*.

## Creación de un servicio con las opciones predeterminadas
<a name="create-default-service"></a>

Puede utilizar la consola para crear e implementar rápidamente un servicio. El servicio tiene la siguiente configuración:
+ Se implementa en la VPC y en las subredes asociadas a su clúster
+ Implementa una tarea
+ Utiliza la implementación continua
+ Utiliza la estrategia del proveedor de capacidad con su proveedor de capacidad predeterminado
+ Utiliza el disyuntor de implementación para detectar errores y establece la opción de restaurar automáticamente la implementación en caso de error

Para que la implementación de un servicio se lleve a cabo con los parámetros predeterminados, siga estos pasos.

**Para crear un servicio (consola de Amazon ECS)**

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, elija **Clústeres**.

1. En la página **Clústeres**, seleccione el clúster en el que va a crear el servicio.

1. En la pestaña **Services** (Servicios), elija **Create** (Crear).

   Aparecerá la página **Crear servicio**.

1. En **Detalles del servicio**, haga lo siguiente:

   1. En **Definición de tareas**, ingrese la familia y la revisión de definiciones de tareas que se va a utilizar.

   1. En **Service name** (Nombre del servicio), ingrese un nombre para el servicio.

1. Para usar ECS Exec para depurar el servicio, en **Configuración de solución de problemas**, seleccione **Activar ECS Exec**.

1. En **Configuración de implementación**, haga lo siguiente:

   1. En **Desired tasks** (Tareas deseadas), ingrese el número de tareas que se lanzarán y mantendrán en el servicio.

1. (Opcional) Para ayudar a identificar el servicio y las tareas, expanda la sección **Tags** (Etiquetas) y, a continuación, configure sus etiquetas.

   Para que Amazon ECS etiquete automáticamente todas las tareas recién lanzadas con el nombre del clúster y las etiquetas de definición de tareas, seleccione **Turn on Amazon ECS managed tags** (Activar las etiquetas gestionadas de Amazon ECS) y, a continuación, seleccione **Task definitions** (Definiciones de tareas).

   Para que Amazon ECS etiquete automáticamente todas las tareas recién lanzadas con el nombre del clúster y las etiquetas de servicio, seleccione **Turn on Amazon ECS managed tags** (Activar las etiquetas gestionadas de Amazon ECS) y, a continuación, seleccione **Service** (Servicio).

   Añada o elimine una etiqueta.
   + [Agregar una etiqueta] Seleccione **Add tag** (Agregar etiqueta), y, a continuación, 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)**.

## Creación de un servicio a partir de los parámetros definidos
<a name="create-custom-service"></a>

Para crear un servicio a partir de los parámetros definidos, siga estos pasos.

**Para crear un servicio (consola de Amazon ECS)**

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

1. Determine el recurso desde el que lanza el servicio.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonECS/latest/developerguide/create-service-console-v2.html)

   Aparecerá la página **Crear servicio**.

1. En Detalles del servicio, haga lo siguiente:

   1. En **Definición de tarea**, ingrese la definición de la tarea que va a usar. A continuación, en **Revisión**, elija la revisión que desee utilizar.

   1. En **Service name** (Nombre del servicio), ingrese un nombre para el servicio.

1. En **Clúster existente**, elija el clúster.

   Elija **Crear clúster** para ejecutar la tarea en un clúster nuevo

1. Elija cómo distribuir las tareas en la infraestructura de clúster. En **Configuración de computación**, elija su opción.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonECS/latest/developerguide/create-service-console-v2.html)

1. Para usar ECS Exec para depurar el servicio, en **Configuración de solución de problemas**, seleccione **Activar ECS Exec**.

1. En **Configuración de implementación**, haga lo siguiente:

   1. En **Service type** (Tipo de servicio), elija la estrategia de programación del servicio.
      + Para que el programador implemente exactamente una tarea en cada instancia de contenedor activa que cumpla con todas las restricciones de colocación de tareas, elija **Daemon**.
      + Para que el programador coloque y mantenga el número deseado de tareas en su clúster, elija **Replica** (Réplica).

   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 **Periodo de gracia de la comprobación de estado**, ingrese la cantidad de tiempo (en segundos) durante la cual el programador de servicios ignora las comprobaciones de estado de Elastic Load Balancing, VPC Lattice y contenedor en mal estado después de que se haya iniciado una tarea por primera vez. Si no se especifica ningún valor para el período de gracia de comprobación de estado, se utiliza el valor predeterminado: 0.

   1. Determine el tipo de implementación de su servicio. Amplíe **Opciones de implementación** y, a continuación, especifique los siguientes parámetros.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonECS/latest/developerguide/create-service-console-v2.html)

   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. Si la definición de la tarea utiliza el modo de red `awsvpc`, puede especificar una configuración de red personalizada, expandir **Redes** y, a continuación, hacer lo siguiente:

   1. En **VPC**, seleccione la VPC que se va a usar.

   1. En **Subnets** (Subredes), seleccione una o varias subredes de la VPC que el programador de tareas considera al ubicar sus tareas.

   1. En **Security groups** (Grupos de seguridad), puede seleccionar un grupo de seguridad existente o crear uno nuevo. Para utilizar un grupo de seguridad existente, seleccione el grupo de seguridad y continúe con el próximo paso. Para crear un grupo de seguridad, elija **Create a new security group (Crear un grupo de seguridad nuevo)**. Debe especificar un nombre de grupo de seguridad, una descripción y, a continuación, agregar una o varias reglas de entrada para el grupo de seguridad.

   1. En **Public IP** (IP pública), elija si desea asignar automáticamente una dirección IP pública a la interfaz de red elástica (ENI) de la tarea.

      Las tareas de AWS Fargate pueden recibir una dirección IP pública cuando se ejecuten mediante una subred pública para que tengan una ruta a Internet. A las tareas de EC2 no se les puede asignar una IP pública mediante este campo. Para obtener más información, consulte [Opciones de redes de tareas de Amazon ECS para Fargate](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-task-networking.html) y [Asignación de una interfaz de red para una tarea de Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking-awsvpc.html).

1. (Opcional) Para interconectar su servicio con Service Connect, expanda **Service Connect** y, a continuación, especifique lo siguiente:

   1.  Seleccione **Activar Service Connect**.

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

1. (Opcional) Para interconectar su servicio con Detección de servicios, expanda la opción **Detección de servicios** y, a continuación, haga lo siguiente.

   1. Seleccione **Utilizar la detección de servicios**.

   1. Para usar un espacio de nombres nuevo, seleccione **Crear un nuevo espacio de nombres** en **Configurar el espacio de nombres** y, a continuación, proporcione un nombre y una descripción del espacio de nombres. Para usar un espacio de nombres existente, elija **Seleccione un espacio de nombres existente** y, a continuación, elija el espacio de nombres que desea usar.

   1. Proporcione la información del servicio de detección de servicios, como el nombre y la descripción del servicio.

   1. Para que Amazon ECS ejecute comprobaciones de estado periódicas por contenedor, seleccione **Habilitar la propagación del estado de las tareas de Amazon ECS**.

   1. En **Tipo de registro DNS**, seleccione el tipo de registro DNS para el servicio. La detección de servicios de Amazon ECS solo admite registros **A** y **SRV**, según el modo de red que se especifique en la definición de tareas. Para obtener más información sobre estos tipos de registros, consulte [Tipos de registros de DNS que se admiten](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/ResourceRecordTypes.html) en la *Guía para desarrolladores de Amazon Route 53*.
      + Si la definición de tarea que especifica su tarea de servicio utiliza el modo de red `bridge` o `host`, solo se admiten los registros de tipo **SRV**. Elija una combinación de nombre y contenedor de contenedor para asociarla con el registro.
      + Si la definición de tarea que especifica su tarea de servicio utiliza el modo de red `awsvpc`, seleccione el tipo de registro **A** o **SRV**. Si eligió **A**, vaya al siguiente paso. Si está seleccionado el tipo **SRV**, especifique el puerto en el que se puede encontrar el servicio o una combinación de nombre y puerto de contenedor para asociarla con el registro.

      En el caso del **TTL**, introduzca el tiempo en segundos en el que los solucionadores de DNS y los navegadores web almacenan en caché un conjunto de registros.

1. (Opcional) Para interconectar su servicio con VPC Lattice, expanda la opción **VPC Lattice** y, a continuación, haga lo siguiente:

   1. Seleccione **Activar VPC Lattice**

   1. En **Rol de infraestructura**, elija el rol de infraestructura.

      Si no ha creado un rol, elija **Crear rol de infraestructura**.

   1. En **Grupos de destino**, elija el grupo o grupos de destino. Debe elegir un mínimo de un grupo de destino y un máximo de cinco. Elija **Agregar grupo de destino** para agregar grupos de destino adicionales. Elija el **nombre del puerto**, el **protocolo** y el **puerto** para cada grupo de destino que elija. 

      Para eliminar un grupo de destino, elija **Eliminar**.
**nota**  
Si quiere agregar grupos de destino existentes, debe utilizar la AWS CLI. Para obtener instrucciones sobre cómo agregar grupos de destino mediante la AWS CLI, consulte [register-targets](https://docs.aws.amazon.com/cli/latest/reference/vpc-lattice/register-targets.html) en la *Referencia de AWS Command Line Interface*.
Si bien un servicio de VPC Lattice puede tener varios grupos de destino, cada grupo de destino solo se puede agregar a un servicio.

   1. Para completar la configuración de VPC Lattice, mediante la inclusión de los nuevos grupos de destino en la acción predeterminada del agente de escucha o en las reglas de un servicio de VPC Lattice existente en la consola de VPC Lattice. Para obtener más información, consulte [Reglas de oyente para el servicio de VPC Lattice](https://docs.aws.amazon.com/vpc-lattice/latest/ug/listener-rules.html).

1. (Opcional) Para configurar un equilibrador de carga para el servicio, expanda **Load balancing** (Equilibrio de carga).

   Elija el equilibrador de carga.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonECS/latest/developerguide/create-service-console-v2.html)

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/create-service-console-v2.html)

1. (Opcional) Para utilizar una estrategia de ubicación de tareas distinta a la predeterminada, expanda **Task Placement** (Ubicación de tareas) y, a continuación, elija una de las siguientes opciones.

    Para obtener más información, consulte [Cómo coloca Amazon ECS las tareas en las instancias de contenedor](task-placement.md).
   + **Reparto equilibrado en AZ**: distribuya las tareas en las zonas de disponibilidad y entre las instancias de contenedor dentro de cada zona de disponibilidad.
   + **BinPack equilibrado en AZ**: distribuya las tareas en las zonas de disponibilidad y entre las instancias de contenedor con la menor memoria disponible.
   + **BinPack**: distribuya las tareas en función de la cantidad mínima de CPU o memoria disponible.
   + **Una tarea por Host**: coloque como máximo una tarea del servicio en cada instancia de contenedor.
   + **Personalizado**: defina su propia estrategia de colocación de tareas. 

   Si elige **Custom** (Personalizado), defina el algoritmo de ubicación de tareas y las reglas que se tienen en cuenta durante la ubicación de tareas.
   + En **Strategy** (Estrategia), para **Type** (Tipo) y **Field** (Campo), elija el algoritmo y la entidad que quiere utilizar para el algoritmo.

     Puede ingresar un máximo de 5 estrategias.
   + En **Restricción**, para **Tipo** y **Expresión**, elija la regla y el atributo para la restricción.

     Por ejemplo, para establecer la restricción de colocar las tareas en las instancias T2, para la **Expresión**, ingrese **attribute:ecs.instance-type =\$1 t2.\$1**.

     Puede ingresar un máximo de 10 restricciones.

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 del volumen y el tipo de volumen se configuran al crear una revisión de definición de tareas y no se pueden cambiar al crear un servicio. Para actualizar el nombre y el tipo del volumen, debe crear una nueva revisión de la definición de tareas y crear un servicio con la nueva revisión.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonECS/latest/developerguide/create-service-console-v2.html)

1. Para usar ECS Exec para depurar el servicio, en **Configuración de solución de problemas**, seleccione **Activar ECS Exec**.

1. (Opcional) Para ayudar a identificar el servicio y las tareas, expanda la sección **Tags** (Etiquetas) y, a continuación, configure sus etiquetas.

   Para que Amazon ECS etiquete automáticamente todas las tareas recién lanzadas con el nombre del clúster y las etiquetas de definición de tareas, seleccione **Activar las etiquetas administradas de Amazon ECS** y, a continuación, en **Propagar etiquetas de**, seleccione **Definiciones de tareas**.

   Para que Amazon ECS etiquete automáticamente todas las tareas recién lanzadas con el nombre del clúster y las etiquetas de servicio, seleccione **Activar las etiquetas administradas de Amazon ECS** y, a continuación, en **Propagar etiquetas de**, seleccione **Servicio**.

   Añada o elimine una etiqueta.
   + [Agregar una etiqueta] Seleccione **Add tag** (Agregar etiqueta), y, a continuación, 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. Seleccione **Crear**.

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

Las siguientes son acciones adicionales que están disponibles después de crear un servicio.
+ Configure el escalado automático predictivo, que analiza los datos de cargas anteriores de los flujos de tráfico. 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).
+ 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).