Prepárese para la retirada de tareas de AWS Fargate en Amazon ECS - Amazon Elastic Container Service

Prepárese para la retirada de tareas de AWS Fargate en Amazon ECS

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

  1. Establezca el periodo de espera para la retirada de tareas.

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

  3. No puede controlar el momento exacto en el que se retira una tarea, pero puede controlar la sustitución de las tareas actualizando el servicio con la opción de despliegue forzoso.

Paso 1: Configure el tiempo de espera de la tarea

Puede configurar la hora a la que Fargate inicia el retiro de las tareas. Para las cargas de trabajo que requieren la aplicación inmediata de las actualizaciones, elija la configuración inmediata (0). Cuando necesite más control, por ejemplo, cuando una tarea solo se pueda detener durante un período determinado, configure la opción de 7 días (7) o 14 días (14).

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.

  • 14 - AWS envía la notificación y espera 14 días calendario antes de empezar a retirar las tareas afectadas.

El valor predeterminado es 7 días.

Para obtener más información, consulte put-account-setting-default y put-account-setting 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

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.

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.

Para ver un ejemplo de código, consulte Cómo capturar notificaciones de retirada de tareas de AWS Fargate en Github.

Paso 3: Controle la sustitución de tareas

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 en la Referencia de la AWS Command Line Interface.