

# Retirada y mantenimiento de tareas para AWS Fargate en Amazon ECS
<a name="task-maintenance"></a>

AWS es responsable del mantenimiento de la infraestructura subyacente de AWS Fargate. AWS determina cuándo se debe reemplazar una revisión de versión de la plataforma por una nueva revisión de la infraestructura. Esto se conoce como retiro de tareas. AWS envía una notificación de retiro de tareas cuando se retira una revisión de la versión de la plataforma. Actualizamos periódicamente las versiones de nuestras plataformas admitidas para introducir una nueva revisión que contenga actualizaciones del software de tiempo de ejecución de Fargate y de las dependencias subyacentes, como el sistema operativo y el tiempo de ejecución del contenedor. Una vez que una revisión más reciente está disponible, retiramos la anterior para garantizar que todas las cargas de trabajo de los clientes se ejecuten con la versión más actualizada de la plataforma Fargate. Cuando se retira una revisión, se detienen todas las tareas que se estén ejecutando en esa revisión.

Las tareas de Amazon ECS se pueden clasificar como tareas de servicio o tareas independientes. Las tareas de servicio se implementan como parte de un servicio y son controladas por la programación de Amazon ECS. Para obtener más información, consulte [Servicios de Amazon ECS](ecs_services.md). Las tareas independientes son tareas que se inician mediante la API `RunTask` de Amazon ECS, ya sea directamente o mediante un programador externo, como las tareas programadas (que inicia Amazon EventBridge), AWS Batch o AWS Step Functions. No necesita realizar ninguna acción en respuesta a la retirada de tareas de sus tareas de servicio, ya que el programador de Amazon ECS reemplaza automáticamente las tareas. 

En el caso de las tareas independientes, es posible que deba realizar una gestión adicional en respuesta a la retirada de la tarea. Para obtener más información, consulte [¿Amazon ECS puede administrar automáticamente las tareas independientes?](#task-retirement-standalone-tasks).

En el caso de las tareas de servicio, no es necesario que realice ninguna acción de retirada de tareas, a menos que desee sustituirlas antes de que AWS lo haga. Cuando el programador de Amazon ECS detiene las tareas, utiliza el `maximumPercent` e inicia una nueva tarea en un intento por mantener el recuento deseado para el servicio. Siga las prácticas recomendadas para minimizar el impacto de la retirada de tareas. El valor predeterminado `maximumPercent` para un servicio que utiliza el programador de servicio REPLICA es 200 %. Por lo tanto, cuando AWS Fargate comienza a retirar tareas, Amazon ECS primero programa una nueva tarea y, a continuación, espera a que se ejecute antes de retirar una tarea anterior. Al establecer el valor `maximumPercent` en 100 %, Amazon ECS detiene primero la tarea y, a continuación, la reemplaza.

Para la retirada de una tarea independiente, AWS detiene la tarea en la fecha de retiro de la tarea o después de esa fecha. Amazon ECS no lanza una tarea de reemplazo cuando se detiene una tarea. Si necesita que estas tareas sigan ejecutándose, debe detenerlas e iniciar una tarea de sustitución antes de la hora indicada en la notificación. Por lo tanto, recomendamos que los clientes supervisen el estado de las tareas independientes y, si es necesario, implementen la lógica para reemplazar las tareas detenidas.

Cuando una tarea se detiene en cualquiera de los escenarios anteriores, puede ejecutar `describe-tasks`. El código `stoppedReason` que aparece en la respuesta es `ECS is performing maintenance on the underlying infrastructure hosting the task`.

El mantenimiento de las tareas se aplica cuando se debe sustituir una nueva revisión de versión de la plataforma por una nueva revisión. Si hay un problema con un host de Fargate subyacente, Amazon ECS sustituye el host sin un aviso de retiro de la tarea.

## Descripción general del aviso de retirada de tareas
<a name="task-retirement-notice"></a>

Cuando AWS marca la necesidad de retirar una revisión de la versión de la plataforma, identificamos todas las tareas que se están ejecutando en esa revisión de la versión de la plataforma en todas las regiones. 

La siguiente ilustración muestra el ciclo de vida de una revisión de la versión de la plataforma Fargate desde el lanzamiento de una nueva revisión hasta la retirada de la revisión de la plataforma.

![\[Diagrama que muestra el ciclo de vida de la retirada de las tareas de Fargate.\]](http://docs.aws.amazon.com/es_es/AmazonECS/latest/developerguide/images/fargate-task-retirement.png)


La siguiente información proporciona detalles.
+ Tras lanzar una nueva revisión de la versión de la plataforma, todas las tareas nuevas se programan en esta revisión.
+ Las tareas existentes que se programaron y se están ejecutando permanecen en la revisión en la que se colocaron originalmente mientras dure la tarea, y no se migran a la nueva revisión.
+ Las nuevas tareas, por ejemplo, como parte de una actualización de un servicio o de la retirada de tareas de Fargate, se incluyen en la última versión de la plataforma disponible en el momento del lanzamiento.

Las notificaciones de retirada de tareas se envían a través del panel de control de AWS Health y por correo electrónico a la dirección de correo electrónico registrada. Dichas notificaciones incluyen la siguiente información:
+ La fecha de retirada de la tarea: la tarea se detiene en esta fecha o después de ella.
+ En el caso de las tareas independientes, los ID de las tareas.
+ En el caso de las tareas de servicio, el ID del clúster en el que se ejecuta el servicio y los ID del servicio.
+ Los siguientes pasos que debe seguir.

Por lo general, se envía una notificación para cada una de las tareas de servicio y tareas independientes de cada Región de AWS. Sin embargo, en algunos casos, es posible que reciba más de un evento por cada tipo de tarea; por ejemplo, cuando hay tantas tareas que deben ser retiradas que sobrepasan los límites de nuestros mecanismos de notificación.

Puede identificar tareas programadas para retirarse de las siguientes formas:
+ la , Panel de estado 

  Las notificaciones de AWS Health se pueden enviar por Amazon EventBridge para almacenarse en archivos, como Amazon Simple Storage Service, llevar a cabo acciones automatizadas, como ejecutar una función AWS Lambda, o hacia otros sistemas de notificaciones, como Amazon Simple Notification Service. Para más información, consulte [Supervisión de eventos de AWS Health con Amazon EventBridge)](https://docs.aws.amazon.com/health/latest/ug/cloudwatch-events-health.html). Para configurar muestras para enviar notificaciones a Amazon Chime, Slack o Microsoft Teams, consulte el repositorio de [AWS Health Aware](https://github.com/aws-samples/aws-health-aware) en GitHub.

  A continuación, se muestra un evento de EventBridge como ejemplo.

  ```
  {
      "version": "0",
      "id": "3c268027-f43c-0171-7425-1d799EXAMPLE",
      "detail-type": "AWS Health Event",
      "source": "aws.health",
      "account": "123456789012",
      "time": "2023-08-16T23:18:51Z",
      "region": "us-east-1",
      "resources": [
          "cluster|service",
          "cluster|service"
      ],
      "detail": {
          "eventArn": "arn:aws:health:us-east-1::event/ECS/AWS_ECS_TASK_PATCHING_RETIREMENT/AWS_ECS_TASK_PATCHING_RETIREMENT_test1",
          "service": "ECS",
          "eventScopeCode": "ACCOUNT_SPECIFIC",
          "communicationId": "7988399e2e6fb0b905ddc88e0e2de1fd17e4c9fa60349577446d95a18EXAMPLE",
          "lastUpdatedTime": "Wed, 16 Aug 2023 23:18:52 GMT",
          "eventRegion": "us-east-1",
          "eventTypeCode": "AWS_ECS_TASK_PATCHING_RETIREMENT",
          "eventTypeCategory": "scheduledChange",
          "startTime": "Wed, 16 Aug 2023 23:18:51 GMT",
          "endTime": "Fri, 18 Aug 2023 23:18:51 GMT",
          "eventDescription": [
              {
                  "language": "en_US",
                  "latestDescription": "\\nA software update has been deployed to Fargate which includes CVE patches or other critical patches. No action is required on your part. All new tasks launched automatically uses the latest software version. For existing tasks, your tasks need to be restarted in order for these updates to apply. Your tasks running as part of the following ECS Services will be automatically updated beginning Wed, 16 Aug 2023 23:18:51 GMT.\\n\\nAfter Wed, 16 Aug 2023 23:18:51 GMT, the ECS scheduler will gradually replace these tasks, respecting the deployment settings for your service. Typically, services should see little to no interruption during the update and no action is required. When AWS stops tasks, AWS uses the minimum healthy percent (1) and launches a new task in an attempt to maintain the desired count for the service. By default, the minimum healthy percent of a service is 100 percent, so a new task is started first before a task is stopped. Service tasks are routinely replaced in the same way when you scale the service or deploy configuration changes or deploy task definition revisions. If you would like to control the timing of this restart you can update the service before Wed, 16 Aug 2023 23:18:51 GMT, by running the update-service command from the ECS command-line interface specifying force-new-deployment for services using Rolling update deployment type. For example:\\n\\n$ aws ecs update-service -service service_name \\\n--cluster cluster_name -force-new-deployment\\n\\nFor services using Blue/Green deployment type with AWS CodeDeploy:\\nPlease refer to create-deployment document (2) and create new deployment using same task definition revision.\\n\\nFor further details on ECS deployment types, please refer to ECS Deployment Developer Guide (1).\\nFor further details on Fargate's update process, please refer to the AWS Fargate User Guide (3).\\nIf you have any questions or concerns, please contact AWS Support (4).\\n\\n(1) https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html\\n(2) https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html\\n(3) https://docs.aws.amazon.com/AmazonECS/latest/userguide/task-maintenance.html\\n(4) https://aws.amazon.com/support\\n\\nA list of your affected resources(s) can be found in the 'Affected resources' tab in the 'Cluster/ Service' format in the AWS Health Dashboard. \\n\\n"
              }
          ],
        "affectedEntities": [
                  {
                      "entityValue": "arn:aws:ecs:eu-west-1:111222333444:task/examplecluster/00805ce1d81940b5a37398e5a2c23333"
                  },
                  {
                      "entityValue": "arn:aws:ecs:eu-west-1:111222333444:task/examplecluster/00805ce1d81940b5a37398e5a2c25555"
                  }
              }
          ]
      }
  }
  ```
+ Correo electrónico

  Se envía un correo electrónico al correo electrónico registrado para obtener el ID de la Cuenta de AWS.

Para obtener información sobre cómo preparar una retirada de tareas, consulte [Prepárese para la retirada de tareas de AWS Fargate en Amazon ECS](prepare-task-retirement.md).

## ¿Puedo no participar en el retiro de tareas?
<a name="task-retirement-opt-out"></a>

No. Como parte del modelo de responsabilidad compartida deAWS, AWS es responsable de administrar y mantener la infraestructura subyacente para AWS Fargate. Esto incluye realizar actualizaciones periódicas de la plataforma para garantizar la seguridad y la estabilidad. Estas actualizaciones se aplican automáticamente por AWS, y los clientes no pueden optar por excluirlas. Esta es una ventaja clave del uso de AWS Fargate en comparación con la de ejecutar sus cargas de trabajo en instancias EC2, ya que AWS asume la responsabilidad de mantener la plataforma subyacente. Este modelo le permite centrarse en sus aplicaciones en lugar de en el mantenimiento de la infraestructura. Al aplicar automáticamente estas actualizaciones de la plataforma, AWS puede mantener el entorno de Fargate actualizado y seguro, sin que usted, como cliente, deba realizar ninguna acción. Esto ayuda a proporcionar un entorno contenerizado confiable y seguro para ejecutar sus cargas de trabajo en Fargate. 

## ¿Puedo recibir notificaciones de retiro de tareas a través de otros servicios de AWS?
<a name="task-retirement-event"></a>

AWS envía una notificación de retiro de tareas a Panel de estado y al contacto de correo electrónico principal de la Cuenta de AWS. Panel de estado ofrece una serie de integraciones en otros servicios de AWS, incluido EventBridge. Puede utilizar EventBridge para automatizar la visibilidad de los avisos (por ejemplo, reenviar el mensaje a una herramienta de ChatOps). Para más información, consulte [Solution overview: Capturing task retirement notifications](https://aws.amazon.com/blogs/containers/improving-operational-visibility-with-aws-fargate-task-retirement-notifications/).

## ¿Puedo cambiar el retiro de una tarea una vez programada?
<a name="task-retirement-change"></a>

 No. La programación se basa en el tiempo de espera para el retiro de la tarea, que tiene un valor predeterminado de 7 días. Si necesita más tiempo, puede optar por configurar el periodo de espera en 14 días. Para obtener más información, consulte [Paso 2: Capture las notificaciones de retirada de tareas para alertar a los equipos y tomar medidas](prepare-task-retirement.md#prepare-task-retirement-capture-task-events). 

A partir del 18 de diciembre de 2025, Amazon ECS le permitirá configurar las [ventanas de eventos de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html) para sus tareas de Fargate. Si necesita un control preciso sobre el momento exacto del retiro de tareas, por ejemplo, para programarla durante los fines de semana a fin de evitar interrupciones durante el horario laboral, puede configurar las ventanas de eventos de Amazon EC2 para sus tareas, servicios o clústeres; consulte [Paso 1: establezca el periodo de espera para la tarea o utilice las ventanas de eventos de Amazon EC2](prepare-task-retirement.md#prepare-task-retirement-set-time). Tenga en cuenta que el cambio en esta configuración se aplica a los retiros que se programarán en el futuro. Los retiros programados actualmente no se ven afectados. Además, cuando configura una ventana de eventos de Amazon EC2 para sus tareas de Fargate, esta tiene prioridad sobre la configuración del tiempo de espera de retiro de tareas. Si tiene algún problema, póngase en contacto con Soporte.

## ¿Cómo administra Amazon ECS las tareas que forman parte de un servicio?
<a name="task-retirement-service-works"></a>

En el caso de las tareas de servicio, no es necesario que realice ninguna acción de retirada de tareas, a menos que desee sustituirlas antes de que AWS lo haga. Cuando el programador de Amazon ECS detiene tareas, utiliza el porcentaje mínimo en buen estado e inicia una nueva tarea en un intento por mantener el recuento deseado para el servicio. Para minimizar el impacto de la retirada de tareas de Fargate, las cargas de trabajo deben implementarse siguiendo las prácticas recomendadas de Amazon ECS. Por ejemplo, al implementar una aplicación sin estado como un servicio de Amazon ECS, como un servidor web o API, los clientes deben implementar múltiples réplicas de tareas y establecer el MinimumHethyPercent en 100 %. Por defecto, el valor del porcentaje mínimo de estado de un servicio es el 100 %. Por lo tanto, cuando Fargate comienza a retirar tareas, Amazon ECS primero programa una nueva tarea y espera a que se ejecute antes de retirar una tarea anterior. Las tareas de servicio se sustituyen de forma rutinaria como parte de la retirada de tareas, del mismo modo que cuando se escala el servicio, se implementan cambios de configuración o se implementan revisiones de la definición de tareas. Para prepararse para el retiro de tareas, consulte [Prepárese para la retirada de tareas de AWS Fargate en Amazon ECS](prepare-task-retirement.md).

## ¿Amazon ECS puede administrar automáticamente las tareas independientes?
<a name="task-retirement-standalone-tasks"></a>

 No. AWS no puede crear una tarea de sustitución para las tareas independientes que inicie `RunTask`, tareas programadas (por ejemplo, a través del Programador de EventBridge), AWS Batch o AWS Step Functions. Amazon ECS solo administra las tareas que forman parte de un servicio.

## Solución de problemas de disponibilidad del servicio durante la retirada de una tarea
<a name="task-retirement-service-availability"></a>

Si Amazon ECS no puede iniciar una tarea de reemplazo durante la retirada de una tarea, es posible que la disponibilidad del servicio se vea afectada. Esto puede ocurrir debido a una configuración incorrecta del cliente, por ejemplo:
+ Faltan roles de IAM o no están configurados de forma correcta.
+ Capacidad insuficiente en las subredes de destino.
+ Configuraciones incorrectas del grupo de seguridad.
+ Errores en la definición de tareas.

Cuando Amazon ECS no puede lanzar tareas de reemplazo, las tareas retiradas se detienen sin sustituir, lo que reduce la capacidad disponible del servicio y puede provocar una interrupción. Supervise el recuento de tareas de su servicio y las métricas de Amazon CloudWatch para garantizar que las tareas de reemplazo se lancen correctamente durante los eventos de retirada.

# Prepárese para la retirada de tareas de AWS Fargate en Amazon ECS
<a name="prepare-task-retirement"></a>

Para prepararse para la retirada de las tareas, lleve a cabo las siguientes operaciones:

1. Establezca el periodo de espera para el retiro de tareas o utilice las ventanas de eventos de Amazon EC2.

1. Capture las notificaciones de retirada de tareas para notificarlas a los miembros del equipo.

1. Puede garantizar la ejecución de todas las tareas de sus servicios en la última revisión de la plataforma mediante la actualización del servicio con la opción de implementación forzosa. Este paso es opcional.

## Paso 1: establezca el periodo de espera para la tarea o utilice las ventanas de eventos de Amazon EC2
<a name="prepare-task-retirement-set-time"></a>

 Tiene dos opciones de configuración de cuenta para configurar la hora en que Fargate inicia el retiro de tareas: `fargateTaskRetirementWaitPeriod` y `fargateEventWindows`.

**Uso de la configuración de cuenta fargateTaskRetirementWaitPeriod**

Puede configurar la hora a la que Fargate inicia el retiro de las tareas. El periodo de espera predeterminado es de 7 días. Para las cargas de trabajo que requieren la aplicación inmediata de las actualizaciones, elija la configuración inmediata (`0`). Si necesita más tiempo, configure la opción de `7` o `14` días. 

Le recomendamos que elija un período de espera más corto para poder seleccionar antes las revisiones de las versiones más recientes de la plataforma.

Para configurar el periodo de espera, ejecute `put-account-setting-default` o `put-account-setting` como usuario raíz o como usuario administrativo. Utilice la opción `fargateTaskRetirementWaitPeriod` para el conjunto de opciones `name` y `value` para uno de los valores siguientes:
+ `0` - AWS envía la notificación e inmediatamente comienza a retirar las tareas afectadas.
+ `7` - AWS envía la notificación y espera 7 días calendario antes de empezar a retirar las tareas afectadas. Esta es la opción predeterminada.
+ `14` - AWS envía la notificación y espera 14 días calendario antes de empezar a retirar las tareas afectadas.

Para obtener más información, consulte [put-account-setting-default](https://docs.aws.amazon.com/cli/latest/reference/ecs/put-account-setting-default.html) y [put-account-setting](https://docs.aws.amazon.com/cli/latest/reference/ecs/put-account-setting.html) en la *Referencia de la API de Amazon Elastic Container Service*.

**Uso de la configuración de la cuenta fargateEventWindows**

A partir del 18 de diciembre de 2025, Amazon ECS le permitirá configurar las [ventanas de eventos de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html) para sus tareas de Fargate. Si necesita controlar con precisión el momento exacto en que se retiran las tareas, por ejemplo, para programarlas durante los fines de semana a fin de evitar interrupciones durante el horario laboral, puede configurar las ventanas de eventos de Amazon EC2 para sus tareas, servicios o clústeres.

Cuando utiliza ventanas de eventos, Fargate se asegura de que sus tareas se ejecuten durante al menos 3 días antes de que se retiren en el siguiente período disponible, a menos que se detengan por acciones iniciadas por el usuario o por eventos de integridad críticos, como la degradación del hardware subyacente.

Establezca el ajuste de cuenta `fargateEventWindows` en `enabled`. Puede usar una de las siguientes API: `put-account-setting-default` o `put-account-setting` como usuario raíz o un usuario administrativo. 

 Cada ventana de evento de Amazon EC2 debe permanecer abierta por al menos 4 horas a la semana, y cada rango individual debe ser de al menos 2 horas. Para clústeres y servicios grandes, recomendamos configurar ventanas de eventos con duraciones prolongadas (8 horas o más) o intervalos de tiempo más frecuentes que se produzcan al menos una vez cada 3 días. Puede revisar con más detalle las consideraciones sobre las ventanas de eventos de Amazon EC2 en la [guía del usuario](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/event-windows.html#event-windows-considerations). AWS Fargate garantiza que sus tareas se ejecuten durante al menos 3 días antes de que se retiren, a menos que se detengan por acciones iniciadas por el usuario o por eventos de integridad críticos, como la degradación del hardware subyacente.

**importante**  
Lo mejor es sustituir las tareas dentro de la ventana de eventos. Si observa que las tareas se retiran fuera de las ventanas de eventos, considere la posibilidad de ampliar la duración (8 horas o más) o aumentar la frecuencia (al menos una vez cada 3 días).

Para aplicar las ventanas de eventos de Amazon EC2 a los retiros de tareas de Fargate:
+ Establezca el ajuste de cuenta `fargateEventWindows` en `enabled`. Puede usar una de las siguientes API: `put-account-setting-default` o `put-account-setting` como usuario raíz o un usuario administrativo. Tenga en cuenta que se trata de una habilitación única para el uso de la característica de ventanas de eventos de Amazon EC2 para sus tareas de Fargate.
+ Cree una ventana de eventos de Amazon EC2 mediante la consola de AWS o la CLI de AWS. Para crear una ventana de eventos mediante CLI, utilice la API `create-instance-event-window` de EC2 con rangos de tiempo o expresiones cron. Anote la `InstanceEventWindowId` de la respuesta.

  ```
  aws ec2 create-instance-event-window \
                      --time-range StartWeekDay=monday,StartHour=2,EndWeekDay=wednesday,EndHour=8 \
                      --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1" \
                      --name myEventWindowName
  ```

  Como alternativa, puede utilizar expresiones cron durante la creación de ventanas de eventos de EC2.

  ```
  aws ec2 create-instance-event-window \
                      --cron-expression "* 21-23 * * 2,3" \
                      --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1" \
                      --name myEventWindowName
  ```
+ A continuación, puede asociar la ventana de eventos a servicios, clústeres o todas las tareas específicos de su cuenta mediante la API `associate-instance-event-window` de EC2.
  + Para tareas de servicio de ECS

    ```
    aws ec2 associate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target "InstanceTags=[{Key=aws:ecs:serviceArn,Value=your-service-arn}]"
    ```
  + Para clústeres de ECS

    ```
    aws ec2 associate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target "InstanceTags=[{Key=aws:ecs:clusterArn,Value=your-cluster-arn}]"
    ```
  + Para asociar una ventana de eventos a todas las tareas de la cuenta

    ```
    aws ec2 associate-instance-event-window \
    --instance-event-window-id iew-0abcdef1234567890 \
    --association-target "InstanceTags=[{Key=aws:ecs:fargateTask,Value=true}]"
    ```

Se puede usar más de un par clave-valor para asociar una ventana de eventos a servicios o clústeres múltiples.

Fargate elegirá la ventana de eventos para cada tarea en el siguiente orden:
+ Si hay una ventana de eventos asociada al servicio de la tarea, se utilizará. Esto no se aplica a las tareas independientes o no administradas.
+ Si hay una ventana de eventos asociada al clúster de la tarea, se utilizará.
+ Si hay una ventana de eventos configurada para todas las tareas de Fargate, se utilizará.
+ La configuración `fargateTaskRetirementWaitPeriod` se utilizará si ninguna de las ventanas de eventos coincide con la tarea.

**Configuración de ventanas de eventos para el mantenimiento de tareas de Fargate**

Considere un caso en el que ejecute varios servicios de ECS en Fargate con diferentes requisitos de disponibilidad. Desea tener un control preciso sobre el retiro de tareas. Puede configurar varias ventanas de eventos de la siguiente manera: 
+ **Mantenimiento predeterminado para todas las tareas de Fargate**: cree una ventana de eventos para el mantenimiento de rutina fuera de las horas pico (de 12 a. m. a 4 a. m. todos los días) y asóciela a todas las tareas de Fargate mediante la etiqueta ` aws:ecs:fargateTask`.
+ **Mantenimiento exclusivo de fin de semana para un clúster de desarrollo**: en el caso de un clúster de desarrollo con servicios que puedan tolerar interrupciones los fines de semana, cree un período de 24 horas los fines de semana (sábado y domingo, todo el día) y asócielo al clúster mediante la etiqueta `aws:ecs:clusterArn` del ARN del clúster.
+ **Periodo restringido para un servicio de misión crítica**: en el caso de un servicio de procesamiento de pagos de misión crítica que requiera un alto tiempo de actividad durante los días de semana, restrinja el mantenimiento a las primeras horas de la mañana de los fines de semana (sábados y domingos, de 12 a. m. a 4 a. m.) y asócielo al servicio específico mediante la etiqueta `aws:ecs:serviceArn` del ARN de su servicio.

Con esta configuración, el servicio de pago usa su ventana específica solo los fines de semana, los servicios y tareas del clúster de desarrollo usan la ventana de 24 horas los fines de semana, y todas las demás tareas de Fargate usan la ventana de mantenimiento diario predeterminada.

Para obtener más información, consulte [put-account-setting-default](https://docs.aws.amazon.com/cli/latest/reference/ecs/put-account-setting-default.html) y [put-account-setting](https://docs.aws.amazon.com/cli/latest/reference/ecs/put-account-setting.html) en la *Referencia de la API de Amazon Elastic Container Service*.

## Paso 2: Capture las notificaciones de retirada de tareas para alertar a los equipos y tomar medidas
<a name="prepare-task-retirement-capture-task-events"></a>

Cuando hay una próxima retirada de tareas, AWS envía una notificación de retiro de tareas al panel AWS Health y al contacto de correo electrónico principal de Cuenta de AWS. El panel AWS Health ofrece una serie de integraciones en otros servicios de AWS, incluido Amazon EventBridge. Puede utilizar EventBridge para crear automatizaciones a partir de una notificación de retirada de tarea, como aumentar la visibilidad de la próxima retirada reenviando el mensaje a una herramienta de ChatOps. AWS Health Aware es un recurso que muestra el poder del panel AWS Health y cómo se pueden distribuir las notificaciones en toda la organización. Puede reenviar una notificación de retirada de una tarea a una aplicación de chat, como Slack. 

La siguiente ilustración muestra información general de la solución.

![\[Diagrama que muestra la solución de Fargate para capturar los avisos de retirada de tareas de Fargate.\]](http://docs.aws.amazon.com/es_es/AmazonECS/latest/developerguide/images/fargate-task-retirement-solution.png)


La siguiente información proporciona detalles.
+ Fargate envía la notificación de retirada de la tarea al panel AWS Health.
+ El panel AWS Health envía un correo al contacto principal de correo electrónico de Cuenta de AWS, y lo notifica a EventBridge. 
+ EventBridge tiene una regla que captura la notificación de retirada.

  La regla que busca eventos con el tipo de detalle del evento: `"AWS Health Event" and the Event Detail Type Code: "AWS_ECS_TASK_PATCHING_RETIREMENT"`
+ La regla activa una función Lambda que reenvía la información a Slack mediante un webhook entrante de Slack. Para obtener más información, consulte [Webhooks entrantes](https://slack.com/marketplace/A0F7XDUAZ-incoming-webhooks).

Para ver un ejemplo de código, consulte [Cómo capturar notificaciones de retirada de tareas de AWS Fargate](https://github.com/aws-samples/capturing-aws-fargate-task-retirement-notifications/tree/main) en Github.

## Paso 3: Controle la sustitución de tareas
<a name="prepare-task-retirement-change-time"></a>

No puede controlar el momento exacto en que se retira una tarea, pero puede definir un tiempo de espera. Si quiere controlar la sustitución de tareas según su propio cronograma, puede capturar el aviso de retirada de la tarea para conocer primero la fecha de retirada de la tarea. A continuación, puede volver a implementar el servicio para lanzar tareas de sustitución y, del mismo modo, sustituir cualquier tarea independiente. Para los servicios que utilizan la implementación continua, actualice el servicio utilizando `update-service` con la opción `force-deployment` antes de la hora de inicio de la retirada.

En este ejemplo de `update-service` se usa la opción `force-deployment`.

```
aws ecs update-service —-service service_name \ 
    --cluster cluster_name \
     --force-new-deployment
```

Para los servicios que utilizan la implementación azul/verde, debe crear una nueva implementación en AWS CodeDeploy. Para obtener información sobre cómo crear la implementación, consulte [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html) en la *Referencia de la AWS Command Line Interface*.