SESのログをDataFirehose経由でS3に取得する方法

0

SESのログを取得するため、「設定セット」を用いてDataFirehose から S3にログをテキストデータで格納するよう設定を行いましたところ、下記2点の問題が発生致しました。 1.検証環境の東京リージョンS3のみ、SESのログが取得できている 下記4パターンで同じ設定を実施し、ログが取得できているのはAのみです。  A.検証環境の東京&バージニアリージョンSESから検証環境の東京リージョンS3へログ取得  B.検証環境の東京&バージニアリージョンSESから検証環境のバージニアリージョンS3へログ取得  C.本番環境の東京&バージニアリージョンSESから本番環境の東京リージョンS3へログ取得  D.本番環境の東京&バージニアリージョンSESから本番環境のバージニアリージョンS3へログ取得

2.上記1のAにおいても、S3に取得できていないログがある SESのダッシュボードやCloudWatchでのメトリクス数と、S3に格納されたSESログを比較すると、件数に差異がある。 原因調査にて試したこと ・SESでのテストメール送信  1のA~Dにて、期待通りログがS3に格納される。プログラムからSES経由で配信されるメールにて未格納が発生している ・バージニアリージョンの送信先バケットを東京リージョンではなくバージニアリージョンに変更(1のB)  →S3にログが取得されない ・DataFirehose+S3でなく、EventBridge+CloudWatchLogsでのログ取得を追加  →DataFirehose+S3と同様に件数に差異が発生する 設定内容はA~Dで同一内容で行っており、念のため権限の再設定を実施しましたが、症状は変わりませんでした。 原因の切り分けが進められるよう、アドバイスをお願い致します。

4回答
1

1.検証環境の東京リージョンS3のみ、SESのログが取得できている 下記4パターンで同じ設定を実施し、ログが取得できているのはAのみです。

Aはできているということなので、想定ではCもできるはずということでよろしいでしょうか?
Kinesis DataFirehoseに設定したIAMロールのポリシーにS3バケットにアクセスする権限がないのではないかと思いました。
なので、まずはKinesisに設定したIAMロールで各リージョンのS3バケットにアクセスできるか確認していただくのがよいと思います。

2.上記1のAにおいても、S3に取得できていないログがある SESのダッシュボードやCloudWatchでのメトリクス数と、S3に格納されたSESログを比較すると、件数に差異がある。

メール送信時に設定セットを含めないで送信していたりしないでしょうか?
マネジメントコンソールからテストメールを送るとログが出力されるということなのでプログラム側に何か問題があるように思いました。

profile picture
エキスパート
回答済み 1年前
1

プログラムなどにも問題が無くログが送れるときと送れないときがあるとなるとAWS側でログの欠損などが起きているくらいしか現状だと思いつきません。(ただ、それを調べる術が無いので本当にAWS側が問題なのかといった判断が難しいです)

一応Kinesis側で落ちていないかみたいなのは確認ができるみたいです。
https://dev.classmethod.jp/articles/logging-when-s3-output-failure-of-amazon-kinesis-data-firehose-data/

profile picture
エキスパート
回答済み 1年前
0

早速のご回答、ありがとうございます。

Aはできているということなので、想定ではCもできるはずということでよろしいでしょうか? ご記載の通りに考えています。

ロール・権限は設定時に確認しましたが、問題切り分けのため、S3へのアクセスを確認してみます。

回答済み 1年前
0

なので、まずはKinesisに設定したIAMロールで各リージョンのS3バケットにアクセスできるか確認していただくのがよいと思います。 ロール及びポリシーを確認致しましたが、S3バケットへはアクセスが可能でした。 (Cのパターンでも、テストメール送信時にはS3バケットにログが格納されている) ポリシー内で記述していたS3関連の部分を削除しテストメールを送信した場合S3には配信されず、元通りにすると期待通り配信されたことから、権限の問題ではないと判断できると考えています。

メール送信時に設定セットを含めないで送信していたりしないでしょうか? マネジメントコンソールからテストメールを送るとログが出力されるということなのでプログラム側に何か問題があるように思いました。 こちらテストメールの際に設定セットを使用するのはもちろん、実際のメール送信にも反映されるよう前述したA~Dの4パターンのどの時点でも、ドメインに対しデフォルト設定セットとして割り当てをしておりました。 またログ取得の確認もできている、検証環境の東京リージョンに関しましても上記デフォルト設定セットの割り当てのみで、プログラム側で特別処理変更なども行っておりません。

調査中に追加で判明した点として、メール送信のメトリクスに対しログが取得できていない場合は、DataFirehoseでのモニタリングにも受け取りのメトリクスが表示されていませんでした。 よってSES→DataFirehose間の問題とも考えたのですが、こちらもテストメール送信時やログが取得できているメール送信時は差異なくメトリクス表示がされているため、やはり切り分けができない状況です。

他に確認するべき点がございましたら、アドバイスを頂けますと幸いです。

回答済み 1年前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン