Introducción
Logs de AWS SES a Opensearch mediante AWS Kinesis.
Por defecto, el servicio de AWS Simple Email Service (SES) no nos ofrece poder visualizar logs de sus acciones/eventos, tan solo podemos ver algunas métricas en Cloudwatch. Desde Geko nos hemos encontrado más de una vez con la necesidad de ver logs de SES, ya sea para diagnosticar incidencias o para conocer mejor el estado del servicio. Pues bien, para que esto sea posible, hacemos uso de AWS Kinesis. Vamos a explicar como lo montamos. Empecemos!
Configuración en Kinesis
Kinesis es un recolector, procesador y transmisor de datos. El primer paso es crear un Delivery Stream. Accedemos al servicio de Kinesis, Delivery Streams y creamos un Delivery Stream
En «Source» eleccionamos «Direct PUT» y en Destination «Amazon OpenSearch Service». Existen otras opciones de destino como Redshift, S3, Dynatrace.. En el desplegable aparecen todas las disponibles.
Añadimos un nombre al objeto «Delivery Stream» y añadimos nuestro OpenSearch. En nuestro caso, al ya tener un OpenSearch creado y operativo simplemente accediendo a «Browse» nos ha aparecido para seleccionarlo.
Ponemos el nombre de índice que queremos que nos cree
Y por defecto nos selecciona VPC, Subnet y Security Group en base a nuestro OpenSearch.
Finalmente creamos el objeto «Delivery Stream»
Configuración SES
Ahora accedemos al servicio SES, accedemos a «Configuration Sets» y «Create Set»
Ponemos un nombre al «Configuration Set» y lo creamos.
Una vez creado el «Configuration Set» vamos a «Event Destionation» y «Add Destination» para crear uno.
Seleccionamos el tipo de evento que queremos y vamos al siguiente paso
Seleccionamos «Amazon Kinesis Data Firehose», ponemos un nombre y seleccionamos el «Delivery Stream» que hemos creado anteriormente.
Cuidado! Ahora hay que crear un «IAM Role» para que SES pueda escribir en Firehose, nosotros lo hemos creado así:
Con esta Policy
Y esta Trust Relationship
Finalmente creamos la «Configuration Set»
Ahora, para testearlo, se puede enviar un email de test desde SES asignando a nuestro test la «Configuration Set» que hemos creado. Esta «Configuration Set» se puede aplicar a cualquier Identity que tengamos en SES. De hecho vamos a hacer una prueba enviado un email de test. Vemos el log de test que hemos generado en nuestro OpenSearch:
Y en el monitoring de Delivery de Kinesis:
Desde Geko esperamos que si has llegado hasta aquí, esta entrada sea justo lo que andabas buscando! Te invitamos también a que leas otros de nuestros posts de labs.