Blog de Amazon Web Services (AWS)

Análisis de eventos de Amazon SES con servicios de analítica de AWS

Por Oscar Mendoza es Arquitecto de Soluciones,
Luis Eduardo Torres es Arquitecto de Soluciones y
Santiago Benavídez es Arquitecto de Soluciones en AWS

 

Intro

En esta publicación, describiremos el uso de los servicios de AWS, como Amazon Kinesis Firehose, Amazon Athena y Amazon QuickSight para monitorear los eventos de envío de correo electrónico de Amazon SES con la granularidad y el nivel de detalle necesarios para obtener información de sus clientes que interactúan con los correos electrónicos que les son enviados.

Hoy en día, los equipos de mercadeo que envían correos electrónicos confían en aplicaciones internas para crear sus campañas o cualquier requerimiento de comunicación, como boletines informativos o contenido promocional. A partir de esas actividades, necesitan recopilar tanta información como sea posible para analizar y mejorar su pipeline para obtener una mejor interacción con los clientes. Datos como correos rebotados, rechazados, recibidos exitosamente, retrasos en la entrega, quejas o tasa de apertura pueden ser una herramienta poderosa para entender a los clientes. Por lo general, las aplicaciones funcionan con datos agregados o de alto nivel sin registro detallado o información granular que podría ayudar a mejorar aún mejor la efectividad de sus campañas.

Amazon Simple Email Service (SES) es una herramienta inteligente para empresas que desean una solución de servicio de correo electrónico rentable, flexible y escalable para integrarse fácilmente con sus propios productos. Amazon SES proporciona métodos para controlar su actividad de envío con integración nativa con Amazon CloudWatch Metrics y también proporciona un mecanismo para recopilar los datos de eventos de envío de correos electrónicos.

En este post, te proponemos una arquitectura y una guía paso a paso para realizar un seguimiento de tus actividades de envío de correo electrónico a nivel granular, donde puedes configurar varios tipos de eventos de envío de correo electrónico, incluyendo envíos, entregas, aperturas, clics, rebotes, quejas, rechazos y retrasos en la entrega. Utilizaremos la función de conjunto de configuración (configuration sets) de Amazon SES para enviar registros detallados a nuestros servicios de análisis para almacenar, consultar y crear tableros de control para una vista detallada.

 

Visión general de la solución

Esta arquitectura utiliza las características integradas de Amazon SES y los servicios de analítica de AWS para proporcionar una solución rápida y rentable para abordar sus requisitos de seguimiento de correo. Se implementarán o configurarán los siguientes servicios:

El siguiente diagrama muestra la arquitectura de la solución:

Serverless Architecture to Analyze Amazon SES eventsFigura 1 Arquitectura Serverless de la solución

El flujo de los eventos comienza cuando un cliente utiliza Amazon SES para enviar un correo electrónico. Cada uno de esos eventos de envío se capturará mediante la característica del conjunto de configuración y los reenviará a un flujo de entrega de Kinesis Firehose para almacenar esos eventos en un bucket de Amazon S3.

Después de almacenar los eventos, se requerirá crear una base de datos y un esquema de tabla y almacenarlo en AWS Glue Data Catalog para que Amazon Athena pueda consultar correctamente esos eventos en S3. Por último, utilizaremos Amazon QuickSight para crear un tablero de control interactivo para buscar y visualizar toda su actividad de envío de correo electrónico con un nivel detallado.

 

Prerrequisitos

Para este recorrido, debe tener los siguientes requisitos previos:

 

Paso a paso

Paso 1: Utilice AWS CloudFormation para implementar algunos requisitos previos adicionales

Puede comenzar con nuestra plantilla de ejemplo de AWS CloudFormation que incluye algunos requisitos previos. Esta plantilla crea un Amazon S3 Bucket, un rol de IAM necesario para acceder desde Amazon SES a Amazon Kinesis Data Firehose.

Para descargar la plantilla, utilice uno de los siguientes comandos dependiendo de su sistema operativo:

En Windows:

curl
https://raw.githubusercontent.com/aws-samples/amazon-ses-analytics-blog/main/SES-Blog-PreRequisites.yml
-o SES-Blog-PreRequisites.yml

En MacOS

wget https://raw.githubusercontent.com/aws-samples/amazon-ses-analytics-blog/main/SES-Blog-PreRequisites.yml

Para desplegar la plantilla utilice el siguiente comando en AWS CLI:

aws cloudformation deploy --template-file
./SES-Blog-PreRequisites.yml --stack-name ses-dashboard-prerequisites
--capabilities CAPABILITY_NAMED_IAM

Después de que la plantilla termine de crear recursos, verá el rol en el servicio de IAM y el flujo de entrega de Kinesis Data Firehose en la pestaña Salidas de la pila de CloudFormation. Utilizará estos recursos en los siguientes pasos.

IAM Service role and Delivery Stream created by CloudFormation templateFigura 2. Salida de template de CloudFormation

 

Paso 2: Crear un conjunto de configuración en SES y establecer el conjunto de configuración predeterminado para una identidad verificada

SES puede rastrear el número de eventos de envío, entrega, apertura, clic, rebote y reclamos para cada correo electrónico que envíe. Puede utilizar la publicación de eventos para enviar información sobre estos eventos a otro servicio de AWS. En este caso vamos a enviar los eventos a Kinesis Firehose. Para ello, se requiere un conjunto de configuración.

Para crear un conjunto de configuración, siga los siguientes pasos:

  1. En la consola de AWS, elija Amazon Simple Email Service.
  2. Elija Conjuntos de configuración.
  3. Haga clic en Crear conjunto.

 

Create a configuration set in Amazon SESFigura 3. Crear Conjunto de Configuración de Amazon SES

4. Establezca un nombre de conjunto de configuración.

5. Deje las otras configuraciones por defecto.

Write a name for your configuration setFigura 4. Nombre de Conjunto de Configuración

 

6. Una vez creado el conjunto de configuración, seleccione Destinos de eventos (Event destinations)

 

Configuration set created successfullyFigura 5. Creación exitosa de Conjunto de Configuración

 

7. Haga clic en Agregar destino (Add destination)

8. Seleccione los tipos de eventos que desea analizar y luego haga clic en siguiente.

 

Sending Events to analyze

Figura 6. Selección de eventos a enviar

9. Seleccione Amazon Kinesis Data Firehose como destino, elija el flujo de entrega y el rol de IAM creado previamente, haga clic en siguiente y en la página de revisión, haga clic en Agregar destino.

Destination for Amazon SES sending events

Figura 7. Destino para envío de eventos de Amazon SES

10. Una vez que haya creado el conjunto de configuración y agregado el destino del evento, puede definir el conjunto de configuración predeterminado para la identidad verificada (dominio o dirección de correo electrónico). En la consola de SES, elija Identidades verificadas (Verified identities).

Amazon SES Verified Identity

Figura 8. Identidades verificadas de Amazon SES

11. Elija la identidad verificada de la que desea recopilar eventos y seleccione Conjunto de configuración. Haga clic en Editar.

Edit Configuration Set for Verified Identity

Figura 9. Edición de Conjunto de Configuración para identidades verificadas

12. Haga clic en la casilla “Asignar un conjunto de configuración predeterminado” (Assign a default configuration set) y elija el conjunto de configuración creado previamente.

Assign default configuration set

Figura 10. Selección de Conjunto de Configuración

13. Una vez que haya completado los pasos anteriores, sus eventos se enviarán a Amazon S3. Debido a la configuración de búferes en el flujo de entrega de Kinesis, los datos se cargarán cada 5 minutos o cada 5 MiB en Amazon S3. Puede verificar la estructura creada en el bucket y ver los registros json con los datos de eventos SES.

Amazon S3 bucket structure

Figura 11. Estructura de Bucket de S3

 

Paso 3: Uso de Amazon Athena para consultar los registros de eventos de SES

Amazon SES publica registros de eventos de envío de correo electrónico a Amazon Kinesis Data Firehose en formato JSON. El objeto JSON de nivel superior contiene una cadena EventType, un objeto de correo y un objeto Bounce, Complaint, Delivery, Send, Reject, Open, Click, Rendering Failure o DeliveryDelay, dependiendo del tipo de evento.

  1. Para simplificar el análisis de los eventos de envío de correo electrónico, crea la tabla sesmaster ejecutando el siguiente script en Amazon Athena. No olvides cambiar la ubicación en el siguiente script con tu propio bucket que contiene los datos de los eventos de envío de correo electrónico.

 

  1. CREATE EXTERNAL TABLE sesmaster (
    
    eventType string,
    
    complaint struct<arrivaldate:string,
    complainedrecipients:array<struct<emailaddress:string>>,
    complaintfeedbacktype:string,
    feedbackid:string,
    `timestamp`:string,
    useragent:string>,
    
    bounce struct<bouncedrecipients:array<struct<action:string,
    diagnosticcode:string,
    emailaddress:string,
    status:string>>,
    bouncesubtype:string,
    bouncetype:string,
    feedbackid:string,
    reportingmta:string,
    `timestamp`:string>,
    
    mail struct<`timestamp`:string,
    source:string,
    sourceArn:string,
    sendingAccountId:string,
    messageId:string,
    destination:string,
    headersTruncated:boolean,
    headers:array<struct<name:string,
    value:string>>,
    commonHeaders:struct<`from`:array<string>,
    to:array<string>,
    messageId:string,
    subject:string>,
    tags:struct<ses_configurationset:string,
    ses_source_ip:string,
    ses_outgoing_ip:string,
    ses_from_domain:string,
    ses_caller_identity:string> >,
    
    send string,
    
    delivery struct<processingtimemillis:int,
    recipients:array<string>,
    reportingmta:string,
    smtpresponse:string,
    `timestamp`:string>,
    
    open struct<ipaddress:string,
    `timestamp`:string,
    userAgent:string>,
    
    reject struct<reason:string>,
    
    click struct<ipAddress:string,
    `timestamp`:string,
    userAgent:string,
    link:string>
    
    ) 
    ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
    WITH SERDEPROPERTIES (
    "mapping.ses_configurationset"="ses:configuration-set" , "mapping.ses_source_ip"="ses:source-ip" , 
    "mapping.ses_from_domain"="ses:from-domain" , "mapping.ses_caller_identity"="ses:caller-identity" , 
    "mapping.ses_outgoing_ip"="ses:outgoing-ip" ) LOCATION 's3://aws-s3-ses-analytics-<aws-account-number>/'

    La tabla sesmaster utiliza la biblioteca SerDe org.openx.data.jsonSerde.jsonSerde para deserializar los datos JSON.

    Hemos aprovechado el soporte para matrices y mapas JSON y el soporte para estructuras de datos anidadas. Esas características facilitan el proceso de preparación y visualización de datos.

    En la tabla sesmaster, se aplicaron los siguientes mapeos para evitar errores debido al nombre de los campos JSON que contienen dos puntos.

    • «mapping.ses_configurationset»=»ses:configuration-set»
    • «mapping.ses_source_ip»=»ses:source-ip»
    • «mapping.ses_from_domain»=»ses:from-domain»
    • «mapping.ses_caller_identity»=»ses:caller-identity» «mapping.ses_outgoing_ip»=»ses:outgoing-ip»

     

    1. Una vez que la tabla sesmaster está lista, es una buena estrategia crear vistas curadas de sus datos. La primera vista llamada VWSESmaster contiene todos los registros de eventos de envío de correo electrónico y todos los campos que son únicos en cada evento. Cree la vista VWSESMaster ejecutando el siguiente script en Amazon Athena.
  2. CREATE OR REPLACE VIEW vwSESMaster AS
    SELECT
    eventtype as eventtype
    , mail.messageId as mailmessageid
    , mail.timestamp as mailtimestamp
    , mail.source as mailsource
    , mail.sendingAccountId as mailsendingAccountId
    , mail.commonHeaders.subject as mailsubject
    , mail.tags.ses_configurationset as mailses_configurationset
    , mail.tags.ses_source_ip as mailses_source_ip
    , mail.tags.ses_from_domain as mailses_from_domain
    , mail.tags.ses_outgoing_ip as mailses_outgoing_ip
    , delivery.processingtimemillis as deliveryprocessingtimemillis
    , delivery.reportingmta as deliveryreportingmta
    , delivery.smtpresponse as deliverysmtpresponse
    , delivery.timestamp as deliverytimestamp
    , delivery.recipients[1] as deliveryrecipient
    , open.ipaddress as openipaddress
    , open.timestamp as opentimestamp
    , open.userAgent as openuseragent
    , bounce.bounceType as bouncebounceType
    , bounce.bouncesubtype as bouncebouncesubtype
    , bounce.feedbackid as bouncefeedbackid
    , bounce.timestamp as bouncetimestamp
    , bounce.reportingMTA as bouncereportingmta
    , click.ipAddress as clickipaddress
    , click.timestamp as clicktimestamp
    , click.userAgent as clickuseragent
    , click.link as clicklink
    , complaint.timestamp as complainttimestamp
    , complaint.userAgent as complaintuseragent
    , complaint.complaintFeedbackType as complaintcomplaintfeedbacktype
    , complaint.arrivalDate as complaintarrivaldate
    , reject.reason as rejectreason
    FROM
    sesmaster

    La tabla sesmaster contiene algunos campos que están representados por matrices anidadas, por lo que es necesario aplanarlos en múltiples filas. A continuación se pueden ver los tipos de eventos y los campos que deben aplanarse.

    • Tipo de evento SEND: campo Mail.commonHeaders
    • Tipo de evento BOUNCE: campo bounce.bouncedrecipients
    • Tipo de evento COMPLAINT: campo complaint.complainedrecipients

    Para aplanar esas matrices en varias filas, se utilizó CROSS JOIN junto con el operador UNNEST utilizando la siguiente estrategia para los tres eventos:

    • Cree una vista temporal con el mail.MessageID y el campo a aplanar.
    • Cree otra vista temporal con la matriz aplanada en varias filas.
    • Cree la vista final uniendo la tabla sesmaster con la segunda vista temporal por tipo de evento y mail.messageID.

    Para crear esas vistas, sigue los siguientes pasos.

    3. Ejecute los siguientes scripts en Amazon Athena para aplanar la matriz Mail.commonHeaders en el tipo de evento SEND

CREATE OR REPLACE VIEW vwSendMailTmpSendTo AS 
SELECT
mail.messageId as messageid
, mail.commonHeaders.to as recipients
FROM
sesmaster
WHERE 
eventtype='Send'
SQL
CREATE OR REPLACE VIEW vwsendmailrecipients AS 
SELECT
messageid
, recipient
FROM
("vwSendMailTmpSendTo"
CROSS JOIN UNNEST(recipients) t (recipient))
SQL
CREATE OR REPLACE VIEW vwSentMails AS
SELECT 
eventtype as eventtype
, mail.messageId as mailmessageid
, mail.timestamp as mailtimestamp
, mail.source as mailsource
, mail.sendingAccountId as mailsendingAccountId
, mail.commonHeaders.subject as mailsubject
, mail.tags.ses_configurationset as mailses_configurationset
, mail.tags.ses_source_ip as mailses_source_ip
, mail.tags.ses_from_domain as mailses_from_domain
, mail.tags.ses_outgoing_ip as mailses_outgoing_ip
, dest.recipient as mailto
FROM
sesmaster as sm
,vwsendmailrecipients as dest
WHERE
sm.eventtype = 'Send'
and sm.mail.messageid = dest.messageid
SQL

 

4. Ejecute los siguientes scripts en Amazon Athena para aplanar el arreglo bounce.bouncedrecipients en el tipo de evento BOUNCE

 

CREATE OR REPLACE VIEW vwbouncemailtmprecipients AS 
SELECT
mail.messageId as messageid
, bounce.bouncedrecipients
FROM
sesmaster
WHERE (eventtype = 'Bounce')
SQL
CREATE OR REPLACE VIEW vwbouncemailrecipients AS 
SELECT
messageid
, recipient.action
, recipient.diagnosticcode
, recipient.emailaddress
FROM
(vwbouncemailtmprecipients
CROSS JOIN UNNEST(bouncedrecipients) t (recipient))
SQL
CREATE OR REPLACE VIEW vwBouncedMails AS
SELECT
eventtype as eventtype
, mail.messageId as mailmessageid
, mail.timestamp as mailtimestamp
, mail.source as mailsource
, mail.sendingAccountId as mailsendingAccountId
, mail.commonHeaders.subject as mailsubject
, mail.tags.ses_configurationset as mailses_configurationset
, mail.tags.ses_source_ip as mailses_source_ip
, mail.tags.ses_from_domain as mailses_from_domain
, mail.tags.ses_outgoing_ip as mailses_outgoing_ip
, bounce.bounceType as bouncebounceType
, bounce.bouncesubtype as bouncebouncesubtype
, bounce.feedbackid as bouncefeedbackid
, bounce.timestamp as bouncetimestamp
, bounce.reportingMTA as bouncereportingmta
, bd.action as bounceaction
, bd.diagnosticcode as bouncediagnosticcode
, bd.emailaddress as bounceemailaddress
FROM
sesmaster as sm
,vwbouncemailrecipients as bd
WHERE
sm.eventtype = 'Bounce'
and sm.mail.messageid = bd.messageid
SQL

 

5. Ejecute los siguientes scripts en Amazon Athena para aplanar el arreglo de complaint.complainedrecipients en el tipo de evento COMPLAINT

 

CREATE OR REPLACE VIEW vwcomplainttmprecipients AS 
SELECT
mail.messageId as messageid
, complaint.complainedrecipients
FROM
sesmaster
WHERE (eventtype = 'Complaint')
SQL
CREATE OR REPLACE VIEW vwcomplainedrecipients AS 
SELECT
messageid
, recipient.emailaddress
FROM
(vwcomplainttmprecipients 
CROSS JOIN UNNEST(complainedrecipients) t (recipient))
SQL

Al final tenemos una tabla y cuatro vistas que se pueden utilizar en Amazon QuickSight para analizar eventos de envío de correo electrónico:

  • Tabla sesmaster
  • Vista vwSESMaster
  • Vista vwSentMails
  • Vista vwBouncedMails
  • Vista vwComplainedemails

 

Paso 4: Analice y visualice datos con Amazon QuickSight

En este blog, utilizamos Amazon QuickSight para analizar y visualizar los eventos de envío de correo electrónico desde la tabla sesmaster y las cuatro vistas creadas previamente. Amazon QuickSight puede acceder directamente a los datos a través de Athena. Su precio de pago por sesión le permite poner visualizaciones de analítica en manos de todos los miembros de su organización.

Primero necesita seleccionar la tabla y las vistas creadas previamente, para crear nuevas fuentes de datos en Athena y luego usar estas fuentes de datos para poblar la visualización. A continuación, describimos un ejemplo de cómo visualizar los datos. Siéntase libre de crear su propia visualización basada en sus necesidades de información.

Antes de poder utilizar los datos en Amazon QuickSight, primero debe conceder acceso al bucket S3 subyacente. Si aún no lo ha hecho para otros análisis, consulte nuestra documentación sobre cómo hacerlo.

  1. En la página principal de Amazon QuickSight, elija Conjuntos de datos en el menú del lado izquierdo y, a continuación, elija Nuevo conjunto de datos en la esquina superior derecha, establezca y elija Athena como fuente de datos. En el siguiente cuadro de diálogo, asigne a la fuente de datos un nombre descriptivo y elija “Crear fuente de datos”.

 

Create New Athena Data Source

Figura 12. Crear nueva fuente de datos de Athena

 

2. En el siguiente cuadro de diálogo, seleccione el Catálogo y la Base de datos que contienen su sesmaster y las vistas curadas. Seleccione la tabla sesmaster para crear algunos Indicadores Clave de Desempeño básicos. Seleccione la tabla sesmaster y haga clic en el botón Seleccionar.

 

Select Sesmaster Table

Figura 13. Seleccionar la tabla sesmaster

 

3. La tabla sesmaster ahora es una fuente de datos para Amazon QuickSight y podrá visualizar datos de la misma.

 

QuickSight Visualize Data

Figura 14. Visualizar datos en QuickSight

 

4. Puede ver los campos de lista a la izquierda. El lienzo de la derecha sigue vacío. Antes de poblarlo con datos, seleccione Indicador Clave de Desempeño (Key Performance Indicator) de los tipos visuales disponibles .

QuickSight Visual Types

Figura 15. Tipos visuales disponibles

 

5. Para poblar la gráfica, arrastre y suelte los campos de la lista de campos de la izquierda a sus respectivos destinos. En nuestro caso, ponemos el campo send en el campo de valor y usamos count como agregación.

 

Add Send field to visualization

Figura 16. Agregar campo Send para visualización

 

6. Agregue otra visualización desde el lado superior izquierdo y seleccione Indicador clave de rendimiento como tipo visual.

Add a new visual

Figure 17. Add a new visual

Key Performance Indicator Visual Type

Figura 18. Tipos de visualizaciones para indicadores clave de rendimiento

 

7. Coloque el campo Delivery en el campo de valor y use count como agregación.

 

Add Delivery Field to visualization

Figura 19. Agregar campo Delivery para visualización

 

8. Repita el mismo procedimiento, (pasos 1 a 4) para contar el número de eventos Open, Click, Bounce, Complaint y Reject Events. Al final, deberías ver algo similar a la siguiente visualización. Después de cambiar el tamaño y reorganizar los visuales, debe obtener un análisis como el que se muestra en la imagen de abajo.

 

Preview of Key Performance Indicators

Figura 20. Preview de los indicadores clave de rendimiento

 

9. Agregue otro conjunto de datos haciendo clic en el lápiz a la derecha del Dataset actual.

Add a New Dataset

Figura 21. Agregar nuevo conjunto de datos

 

10. En el siguiente cuadro de diálogo, seleccione Agregar conjunto de datos.

Add a New Dataset

Figura 22. Agregar nuevo conjunto de datos

11. Seleccione la vista llamada vwsesmaster y haga clic en Seleccionar.

Add vwsesmaster dataset

Figura 23. Agregar nuevo conjunto de datos vwsesmaster

 

12. Ahora puede ver todos los campos disponibles de la vista vwsesmaster.

New fields from vwsesmaster dataset

Figura 24. Nuevos campos del conjunto de datos de vwsesmaster

 

12. Cree una nueva visualización y seleccione el tipo de visualización Tabla.

QuickSight Visual Types

Figura 25. Tipos de visualizaciones de QuickSight

 

13. Arrastre y suelte los campos de la lista de campos de la izquierda en sus respectivos destinos. En nuestro caso, ponemos los campos eventtype, mailmessageid y mailsubject en el campo Group By, pero puede agregar tantos campos como necesite.

Add eventtype, mailmessageid and mailsubject fields

Figura 26. Agregar campos eventtype, mailmessageid y mailsubject

 

14. Ahora cree un filtro para esta visualización con el fin de filtrar por tipo de evento. Asegúrese de seleccionar la tabla y luego haga clic en Filtrar en el menú de la izquierda.

Add a Filter

Figura 27. Agregar el filtro

 

15. Haga clic en Create One y seleccione el campo eventtype en la ventana emergente. Ahora seleccione el filtro eventtype para ver las siguientes opciones.

Create eventtype filter

Figura 28. Crear filtro eventtype

 

16. Haga clic en los puntos a la derecha del filtro eventtype y seleccione Agregar a hoja.

Add filter to sheet

Figura 29. Agregar filtro a la hoja

 

17. Deje todos los valores predeterminados, desplácese hacia abajo y seleccione Aplica

Apply filters with default values

Figura 30. Aplicar filtros con valores default

 

18. Ahora puede filtrar la vista vwsesmaster por tipo de evento.

Filter vwsesmasterview by eventtype

Figura 31. Filtrar vista vwsesmasterview por eventtype

 

19. Puede continuar personalizando su visualización con todos los datos disponibles en la tabla sesmaster, la vista vwsesmaster e incluso agregar más conjuntos de datos para incluir datos de las vistas vwSentMails, vwBouncedMails y vwComplainedemails. A continuación, puedes ver algunas otras visualizaciones creadas a partir de esas vistas.

Final visualization 1

Figure 32. Final visualization 1

 

Final visualization 2

Figura 33. Visualización final 2

 

Final visualization 3

Figura 34. Figura 33. Visualización final 3

 

Limpiar

Para evitar cargos adicionales, limpie los recursos que creo como parte de esta publicación:

  1. Elimine las visualizaciones creadas en Amazon Quicksight.
  2. Dese de baja de Amazon QuickSight si no lo está utilizando para otros proyectos.
  3. Elimine las vistas y tablas creadas en Amazon Athena.
  4. Elimine el conjunto de configuración de Amazon SES.
  5. Elimine los eventos de Amazon SES almacenados en S3.
  6. Elimine la pila de CloudFormation para eliminar el flujo de entrega de Amazon Kinesis Data Firehose.

 

Conclusión

En este blog mostramos cómo puede utilizar los servicios y características nativas de AWS para crear rápidamente una solución de seguimiento de correo electrónico basada en eventos de Amazon SES para tener una vista más detallada de sus actividades de envío. Esta solución utiliza una arquitectura sin servidor completa, en la cual no tiene que administrar la infraestructura subyacente y le brinda la flexibilidad de usar la solución para el uso pequeño, mediano o intenso de Amazon SES.

Le mostramos algunos ejemplos de tableros de control y análisis que se pueden construir para la mayoría de los requerimientos de los clientes, pero por supuesto, puede evolucionar esta solución y personalizarla de acuerdo a sus necesidades, agregando o eliminando gráficos, filtros o eventos al tablero. Consulte la siguiente documentación para conocer los eventos de Amazon SES disponibles, su estructura y también cómo crear análisis y paneles en Amazon QuickSight:

Desde una perspectiva de rendimiento y rentabilidad todavía hay varias configuraciones que se pueden hacer para mejorar la solución, por ejemplo, usar un formato de archivos columnar como parquet, comprimir con snappy o configurar su estrategia de partición en S3 de acuerdo con su uso de envío de correo electrónico. Otra mejora podría ser importar datos a SPICE para leer datos en Amazon Quicksight. El uso de SPICE da como resultado que los datos se carguen desde Athena solo una vez, hasta que se actualicen manualmente o se actualicen automáticamente utilizando una calendarización.

Puede usar este paso a paso para configurar tu primer tablero de control de SES y comenzar a visualizar los detalles de los eventos. Puede ajustar los servicios descritos en este blog de acuerdo a los requerimientos de su empresa.

 


Acerca de los autores

Oscar Mendoza es Arquitecto de Soluciones en AWS basado en Bogotá, Colombia.  Oscar trabaja con nuestros clientes para proporcionar orientación en las mejores prácticas arquitectónicas y para crear soluciones en AWS siguiendo las recomendaciones del Well-Architected Framework. Le gusta pasar tiempo con su familia y su perro, y tocar música.

 

 

 

 

Luis Eduardo Torres es Arquitecto de Soluciones en AWS basado en Bogotá, Colombia.  Ayuda a las empresas a desarrollar sus negocios utilizando la plataforma en la nube de AWS. Tiene un gran interés en la analítica y lidera el podcast de analítica de AWS Podcast en español.

 

 

 

 

Santiago Benavídez es Arquitecto de Soluciones en AWS con sede en Buenos Aires, Argentina, con más de 13 años de experiencia en TI, ayudando actualmente a los clientes de DNB/ISV a alcanzar sus objetivos de negocio utilizando la amplitud y profundidad de los servicios de AWS, diseñando arquitecturas altamente disponibles, resilientes y costo-eficientes.