Desarrollo de un rastreador de eventos web altamente escalable con AWS CloudFront
Obtenga más información sobre el enfoque poco ortodoxo y rentable de AWS CloudFront para realizar un seguimiento del comportamiento de los usuarios.
Hoy en día, el seguimiento del comportamiento del usuario en un sitio web se ha convertido en una norma para mejorar la experiencia del usuario. Sin embargo, crear una aplicación para rastrear el comportamiento del usuario no es tan simple. Implica tratar con una gran cantidad de datos con una pequeña carga útil. Por ejemplo, un solo visitante en un sitio web puede navegar a través de enlaces haciendo clic en ellos donde necesitamos enviar cada actividad para su registro y procesamiento posterior.
Seguimiento de actividad dentro del sitio web
El enfoque más utilizado para enviar actividades desde el sitio web es incrustar un JavaScript, que establecerá una cookie del lado del cliente en el navegador. Esta cookie puede rastrear al usuario único para visitas posteriores al sitio web. Luego, para cada acción del usuario, podemos enviar cada actividad a un servidor usando JavaScript. Al implementar esto, es esencial mantener las cargas útiles del mensaje de actividad livianas y asincrónicas. Además, también es necesario mantener el tamaño del script pequeño para que el impacto en la carga del sitio web sea mínimo.
Consejo: utilice Bit.dev para crear, compartir y organizar componentes independientes para sus páginas de marketing. Es una forma rápida de componer páginas nuevas manteniendo una interfaz de usuario coherente.
Procesamiento de datos de clic a escala
Uno de los principales desafíos en la implementación del seguimiento de actividad es que el servidor se puede sobrecargar fácilmente con mensajes de actividad, lo que genera desafíos de escalabilidad. Por lo tanto, necesitamos almacenar y procesar datos en lotes para que el procesamiento sea eficiente. Este enfoque se denomina procesamiento de flujo y necesitaremos un conjunto de herramientas para llevarlo a cabo. Por ejemplo, en AWS Cloud, podemos configurar Amazon API Gateway como un proxy y reenviar mensajes a AWS Kinesis para almacenar primero los mensajes de actividad temporalmente. De esta forma, incluso si llega una gran cantidad de mensajes de actividad, podemos guardarlos sin escalar significativamente la capacidad informática.
Para mitigar este desafío, podemos configurar AWS Kinesis para activar una función Lambda. Por lo tanto, este enfoque puede escalar hasta miles de mensajes por segundo. Sin embargo, costará una cantidad adecuada por cada servicio, y la principal ventaja es que el análisis ocurre casi en tiempo real.
Pero, ¿qué sucede si el procesamiento en tiempo real no es un requisito y desea realizar el procesamiento de mensajes de actividad de manera extremadamente rentable a escala? Averigüemos cómo podemos implementar el procesamiento de mensajes mediante el procesamiento de registros de AWS CloudFront.
Uso de CloudFront para registrar las actividades de los usuarios
Si es nuevo en AWS CloudFront, puede considerarlo como una red de entrega de contenido y un proxy. La característica interesante que viene con CloudFront es que permite el registro de las solicitudes que pasan por CloudFront. Veamos cómo podemos implementar el seguimiento de la actividad del usuario mediante la función de registros de AWS CloudFront. Puede encontrar los pasos para lograrlo de la siguiente manera.
- Almacene una imagen pequeña de un solo píxel en S3 y sírvala a través de AWS CloudFront. Este paso garantiza que almacenamos en caché cada imagen en CloudFront. También acelera la respuesta del registro de actividad en el navegador. Además, otra ventaja es que la solicitud de un solo píxel de CloudFront es altamente escalable.
- Después de eso, mientras solicitamos la imagen de un solo píxel, podemos usar parámetros de consulta para ingresar información sobre la actividad del usuario, y CloudFront registrará cada solicitud junto con los parámetros de consulta. La ventaja aquí es que CloudFront devolverá la imagen de un solo píxel independientemente de los parámetros y valores enviados en la URL.
- Luego, una vez que el lote de registros se escribe en Amazon S3, podemos preconfigurar una función Lambda para procesar los registros de actividad, donde analizaremos la información de la actividad del usuario y la almacenaremos en una base de datos.
Con este enfoque, elimina directamente los costos de Kinesis y API Gateway, donde los precios de CloudFront son significativamente menores en comparación con ellos. También puede encontrar los detalles de implementación de los análisis de registros de CloudFront en el siguiente artículo, Analice sus registros de acceso de Amazon CloudFront a escala.
Resumen
AWS CloudFront proporciona un enfoque poco ortodoxo y rentable para realizar un seguimiento de la información del comportamiento del usuario y procesarla a escala para realizar análisis adicionales. Con este enfoque, cada respuesta ocurre rápidamente, con un efecto mínimo para el sitio web o su rendimiento.
Sin embargo, existen varios desafíos al procesar registros. Uno de ellos es que la entrega de registros podría retrasarse para llegar a S3. Por lo tanto, este enfoque no se adapta al procesamiento en tiempo real.
Además, existe una pequeña posibilidad de que se pierdan algunos registros, según la documentación de AWS. Por lo tanto, si valora cada mensaje de actividad del usuario, debe considerar el otro enfoque mediante el uso de API Gateway y Kinesis.