Amazon Athena で Amazon SES のメール送信ログを表示してみる
この記事はFIXER Advent Calendar 2023( FIXER Advent Calendar 2023 - Adventar ) 12月15日の記事です。
Amazon SESから送信したメールのログを Amazon Athena から検索して表示してみたので、やったことを自分の備忘録として書いていきます。(細かい手順や設定は省きます)
構成イメージ

構築
Amazon S3
SESのログ保管用とAthenaのクエリ結果保存用に2つ用意します。
- SESログ保管用
- Athenaクエリ結果保存用
Amazon Kinesis Data Firehose
先ほど作成したS3を指定し、動的パーティションを有効にします。
!{partitionKeyFromQuery:eventType}/d=!{partitionKeyFromQuery:timestamp}

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

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

テーブルを作成します。
CREATE EXTERNAL TABLE sesdbtest.delivery (
~以下略~

Amazon SES
適当に用意します。設定セットにてFirehoseへログを流す設定を組み立てます。その後、検証済みのIDに設定セットを割り当てるか、メール送信テストから一時的に設定セットを割り当ててメール送信した際のログがFirehoseからS3に保管されることを確認します。
動作確認(ログ検索)
Athenaからクエリを叩いてログを検索します。ログが正常に表示されてることが分かります。

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