La monitorización es una parte esencial de la etapa de mantenimiento en el ciclo de vida del desarrollo del software. Sin embargo, a medida que las empresas trasladan sus operaciones a entornos basados en la nube, la monitorización se ha vuelto aún más esencial para la seguridad, fiabilidad y disponibilidad de las aplicaciones.
Amazon Web Service (AWS) ofrece varias herramientas de monitorización para ayudar a los usuarios a supervisar sus sistemas en la nube. Sus dos herramientas de monitorización más utilizadas y esenciales son CloudTrail y CloudWatch. En esta publicación, compararemos estas dos herramientas, analizando sus características, capacidades, diferencias y similitudes clave.
Más información
Lee este artículo para conocer las ventajas de implementar la observabilidad de la infraestructura en AWS. También analizaremos lo que ofrece AWS en esta área, junto con servicios externos que puedes integrar en tu cuenta de AWS para mejorar sus capacidades de observabilidad.
¿Qué es AWS CloudTrail?
AWS CloudTrail captura un registro completo de toda la actividad de la API de una cuenta, incluida información sobre el usuario o servicio responsable, el momento y los cambios realizados. Esto proporciona una pista de auditoría completa de cualquier cambio realizado en la infraestructura de AWS. Mantiene un historial completo de eventos de todas las actividades de las cuentas de AWS, lo que convierte a CloudTrail en una herramienta vital para fines relacionados con el cumplimiento y la seguridad.
En los casos en que un usuario detecte que falta un recurso en su cuenta de AWS, CloudTrail ayuda a averiguar qué acción ha sido la que ha hecho que finalice el recurso, quién (o qué) ha realizado la acción y cuándo se ha producido.
CloudTrail registra tres tipos de eventos:
- Eventos de gestión que afectan el entorno de AWS (como la creación de un nuevo usuario de IAM, el inicio de una instancia de EC2 o la modificación de los grupos de seguridad).
- Eventos de datos que incluyen datos de un servicio de AWS (como recuperar un objeto de un bucket S3, descargar un archivo de una instancia de EC2 o modificar el contenido de una base de datos).
- Eventos de información que ofrecen datos sobre el rendimiento y el estado operativo de una cuenta de AWS (como cuotas de servicio de AWS, prácticas recomendadas de seguridad y comprobaciones de cumplimiento).
Sólo el acceso a los eventos de gestión no implica ningún coste adicional, mientras que para acceder a los eventos de datos y de información puede implicar costes adicionales.
Características principales
Entre las características principales de CloudTrail se incluyen:
- Genera un historial de eventos detallado de todas las actividades en una cuenta de AWS.
- Permite el reenvío de logs a CloudWatch Logs o a los buckets S3 para su almacenamiento y análisis.
- Admite la integración en otros servicios de AWS, como SNS y CloudWatch, para facilitar las arquitecturas automatizadas.
- Permite la validación de la integridad de los archivos log para garantizar la autenticidad y conservación de los archivos log.
¿Qué es AWS CloudWatch?
AWS CloudWatch es un servicio de monitorización que recopila métricas, registra eventos y proporciona alarmas. CloudWatch ofrece una monitorización en tiempo real de los recursos y las aplicaciones de AWS, lo que permite a los usuarios de AWS optimizar sus sistemas en términos de rendimiento y costes.
CloudWatch consta de distintos componentes clave que interactúan para formar una solución de monitorización completa. Examinemos estos componentes.
CloudWatch Metrics
En CloudWatch Metrics se utilizan puntos de datos cuantitativos para medir el rendimiento de los recursos y de las aplicaciones de AWS. Con CloudWatch Metrics, los usuarios pueden monitorizar el estado y el rendimiento de sus sistemas. Por ejemplo, pueden medir el uso de la CPU, el tráfico de red y el uso de los discos o la RAM.
CloudWatch Alarms
CloudWatch Alarms activa acciones cuando determinadas métricas superen valores de umbral críticos. Por ejemplo, un usuario podría crear una alarma de CloudWatch cuando la utilización de la CPU de una instancia de EC2 superase el 80 %. La acción activada por la alarma puede incluir ampliar la aplicación para permitir la carga adicional y enviar una notificación por correo electrónico al ingeniero de DevOps de guardia.
CloudWatch Events
CloudWatch Events activa acciones como respuesta a eventos concretos. Por ejemplo, se puede configurar un evento de CloudWatch para que se active cada vez que se inicie una nueva instancia de EC2. La acción resultante puede invocar una función Lambda o publicarse en un tema de SNS.
Ten en cuenta que AWS recomienda que sus usuarios gestionen sus eventos a través de AWS EventBridge en lugar de a través de CloudWatch Events.
CloudWatch Logs
CloudWatch Logs recopila, analiza y almacena los archivos log de aplicaciones personalizadas en la nube de AWS o en servicios de AWS (como CloudTrail o Lambda). Además, CloudWatch Logs analiza y filtra los datos de log para solucionar problemas y monitorizar el rendimiento de las aplicaciones.
Entre otras características de CloudWatch se incluyen:
- Los paneles de CloudWatch ofrecen una vista personalizable de las métricas y alarmas.
- El agente unificado de CloudWatch se utiliza para recopilar métricas y logs personalizados.
- CloudWatch Synthetics prueba y monitoriza los endpoints de las aplicaciones.
Comparación entre AWS CloudTrail y AWS CloudWatch
CloudTrail y CloudWatch son ambos servicios de monitorización que ofrece AWS con diferentes características y capacidades adecuadas para distintos casos de uso.
CloudTrail se utiliza en las auditorías y la monitorización de cumplimiento, ya que captura toda la actividad de API en una cuenta de AWS. Una organización podría usar CloudTrail para rastrear todas las llamadas a las API realizadas en su cuenta de AWS y, de esta forma, garantizar que sólo el personal autorizado pueda acceder a los recursos.
Merece la pena señalar que, si bien CloudTrail captura eventos de actividad de las API y genera logs, no tiene capacidad para analizar estos logs para su visualización o para crear procesos automatizados. Para analizar los logs de CloudTrail y establecer procesos automatizados, es necesario transferirlos de CloudTrail a CloudWatch Logs. En CloudWatch Logs, puedes examinar los logs, crear alarmas y activar notificaciones.
Por otro lado, CloudWatch recopila, rastrea y monitoriza métricas, archivos log y eventos de recursos de AWS. También ofrece alarmas para notificar cuándo se producen eventos específicos. Una organización podría usar CloudWatch para monitorizar el estado y rendimiento de sus aplicaciones, así como para facilitar una solución de problemas más efectiva en caso de que surja algún problema.
En los siguientes puntos se describen algunas distinciones adicionales entre los dos servicios:
| CloudWatch | CloudTrail | |
|---|---|---|
| Funciones gratuitas |
|
|
| Funciones de pago |
|
|
| Frecuencia de datos |
|
|
Resumen
CloudTrail y CloudWatch son dos herramientas de monitorización esenciales que ofrece AWS con diferentes funcionalidades. CloudTrail registra todas las actividades de API en una cuenta de AWS, lo que lo hace adecuado para fines de auditoría y cumplimiento de normativas. CloudWatch se utiliza principalmente para monitorizar el rendimiento de aplicaciones y recursos, alertar cuando haya que estudiar determinadas métricas y encontrar oportunidades de optimización y reducción de costes.
Si unimos los puntos fuertes de ambos servicios lograrás un sistema de monitorización y respuesta integral y automatizado para tu entorno de AWS.