Amazon Athena で Amazon SES のメール送信ログを表示してみる
2023-12-15
azblob://2023/12/15/eyecatch/2023-12-15-aws-ses-athena-mail-log-query-000_1.png

この記事はFIXER Advent Calendar 2023( FIXER Advent Calendar 2023 - Adventar ) 12月15日の記事です。

Amazon SESから送信したメールのログを Amazon Athena から検索して表示してみたので、やったことを自分の備忘録として書いていきます。(細かい手順や設定は省きます)

構成イメージ

image

構築

Amazon S3

SESのログ保管用とAthenaのクエリ結果保存用に2つ用意します。

  • SESログ保管用
    s3-log
  • Athenaクエリ結果保存用
    s3-athena

Amazon Kinesis Data Firehose

先ほど作成したS3を指定し、動的パーティションを有効にします。
firehose-s3

!{partitionKeyFromQuery:eventType}/d=!{partitionKeyFromQuery:timestamp}

Amazon Athena

クエリ結果を保存するS3を設定します。

athena-s3

データベースを作成します。

CREATE DATABASE sesdbtest
athena-db-create

テーブルを作成します。

CREATE EXTERNAL TABLE sesdbtest.delivery (
~以下略~
athena-table-creat

Amazon SES

適当に用意します。設定セットにてFirehoseへログを流す設定を組み立てます。その後、検証済みのIDに設定セットを割り当てるか、メール送信テストから一時的に設定セットを割り当ててメール送信した際のログがFirehoseからS3に保管されることを確認します。

動作確認(ログ検索)

Athenaからクエリを叩いてログを検索します。ログが正常に表示されてることが分かります。

最後に

勉強がてら作ってみました。

本当はMicrosoft Fabricから可視化までやるつもりでしたが、それはまた今度に書くことにします。