REL06-BP04 Automatizar las respuestas (procesamiento y alarmas en tiempo real)
Use la automatización para actuar cuando se detecte un evento, por ejemplo, para sustituir componentes defectuosos.
El procesamiento automatizado de las alarmas en tiempo real se implementa para que los sistemas puedan tomar medidas correctivas rápidas e intentar evitar fallos o que el servicio se degrade cuando se activan las alarmas. Entre las respuestas automatizadas a las alarmas, se podría incluir la sustitución de los componentes que fallan, el ajuste de la capacidad de computación, el redireccionamiento del tráfico a hosts, zonas de disponibilidad u otras regiones en buen estado y la notificación a los operadores.
Resultado deseado: se identifican las alarmas en tiempo real y se configura el procesamiento automatizado de las alarmas para invocar las acciones apropiadas que se necesitan para mantener los objetivos de nivel de servicio y los acuerdos de nivel de servicio (SLA). La automatización puede abarcar desde actividades de autorreparación de componentes individuales hasta la conmutación por error de todo el sitio.
Antipatrones usuales:
-
No tener un inventario o catálogo claros de las principales alarmas en tiempo real.
-
No tener respuestas automatizadas en las alarmas críticas (por ejemplo, cuando los recursos de computación están a punto de agotarse, se produce un escalamiento automático).
-
Acciones de respuesta a alarmas contradictorias.
-
No tener procedimientos operativos estándar (SOP) que los operadores puedan seguir cuando reciben notificaciones de alerta.
-
No supervisar los cambios de configuración, ya que los cambios de configuración no detectados pueden provocar un tiempo de inactividad en las cargas de trabajo.
-
No tener una estrategia para deshacer los cambios de configuración no deseados.
Ventajas de establecer esta práctica recomendada: la automatización del procesamiento de alarmas puede mejorar la resiliencia del sistema. El sistema aplica las medidas correctivas automáticamente, lo que reduce las actividades manuales que dan lugar a intervenciones humanas que son más susceptibles a errores. Las operaciones de carga de trabajo cumplen los objetivos de disponibilidad y reducen la interrupción del servicio.
Nivel de riesgo expuesto si no se establece esta práctica recomendada: medio
Guía para la implementación
Para administrar eficazmente las alertas y automatizar su respuesta, clasifique las alertas en función de su importancia y repercusión, documente los procedimientos de respuesta y planifique las respuestas antes de clasificar las tareas.
Identifique las tareas que requieren medidas específicas (suelen detallarse en los runbooks) y examine todos los runbooks y guías de estrategias para determinar qué tareas se pueden automatizar. Si se pueden definir acciones, estas suelen poderse automatizar. Si las acciones no se pueden automatizar, documente los pasos manuales en un SOP y forme a los operadores sobre ellos. Analice continuamente los procesos manuales en busca de oportunidades de automatización en las que pueda establecer y mantener un plan para automatizar las respuestas a las alertas.
Pasos para la implementación
-
Cree un inventario de alarmas: para obtener una lista de todas las alarmas, puede utilizar la AWS CLI
con el comando de Amazon CloudWatch describe-alarms
. Según el número de alarmas que haya configurado, es posible que tenga que usar la paginación para recuperar un subconjunto de alarmas para cada llamada o, alternativamente, puede usar el SDK de AWS para obtener las alarmas mediante una llamada a la API. -
Documente todas las acciones de las alarmas: actualice un runbook con todas las alarmas y sus acciones, independientemente de si son manuales o automatizadas. AWS Systems Manager proporciona runbooks predefinidos. Para obtener más información sobre los runbooks, consulte «Creación de sus propios manuales de procedimientos». Para obtener más información sobre cómo ver el contenido del runbook, consulte «View runbook content».
-
Configure y administre las acciones de las alarmas: para cualquiera de las alarmas que requieran una acción, especifique la acción automatizada mediante el SDK de CloudWatch. Por ejemplo, puede cambiar el estado de sus instancias de Amazon EC2 automáticamente en función de una alarma de CloudWatch. Para ello, cree y habilite acciones en una alarma o deshabilite acciones en una alarma.
También se puede utilizar Amazon EventBridge
para responder automáticamente a los eventos del sistema, como los problemas de disponibilidad de las aplicaciones o los cambios en los recursos. Puede crear reglas para indicar qué eventos le interesan y las acciones que se deben realizar cuando un evento coincide con una regla. Entre las acciones que se pueden iniciar automáticamente, se incluye invocar una función AWS Lambda , invocar el comando de ejecución de Amazon EC2 , transmitir el evento a Amazon Kinesis Data Streams
y ver cómo se automatiza Amazon EC2 con EventBridge. -
Procedimientos operativos estándar (SOP): en función de los componentes que tenga su aplicación, AWS Resilience Hub recomienda varias plantillas de SOP. Puede utilizar estos SOP para documentar todos los procesos que debe seguir un operador en caso de que se genere una alerta. También puede crear un SOP basado en recomendaciones de Resilience Hub cuando necesite una aplicación Resilience Hub con una política de resiliencia asociada, así como una evaluación de resiliencia histórica en relación con esa aplicación. Las recomendaciones para su SOP provienen de la evaluación de resiliencia.
Resilience Hub funciona con Systems Manager para automatizar los pasos de sus SOP al proporcionar una serie de SSMdocumentos que puede utilizar como base para esos SOP. Por ejemplo, Resilience Hub puede recomendar un SOP para añadir espacio en disco basándose en un documento de automatización de SSM existente.
-
Realice acciones automatizadas con Amazon DevOps Guru: puede utilizar Amazon DevOps Guru
para supervisar automáticamente los recursos de la aplicación en busca de un comportamiento anómalo y ofrecer recomendaciones específicas para reducir el tiempo de identificación y resolución de problemas. ConDevOps Guru, puede supervisar secuencias de datos operativos casi en tiempo real desde múltiples orígenes, como métricas de Amazon CloudWatch, AWS Config , AWS CloudFormation y AWS X-Ray . También puede utilizar DevOps Guru para crear automáticamente OpsItems en OpsCenter y enviar eventos a EventBridge para una automatización adicional.
Recursos
Prácticas recomendadas relacionadas:
Documentos relacionados:
Vídeos relacionados:
-
AWS re:Invent 2022 - Observability best practices at Amazon
(AWS re:Invent 2022: Prácticas recomendadas de observabilidad en Amazon) -
«AWS re:Invent 2020: Automate anything with AWS Systems Manager»
-
«Create Custom Ticket Systems for Amazon DevOps Guru Notifications»
-
«Enable Multi-Account Insight Aggregation with Amazon DevOps Guru»
Ejemplos relacionados:
-
Reliability Workshops
(Talleres de fiabilidad)