Fugu Log

げきょゎエンジニアの技術修行ブログ

Amazon SESの送信者評価通知まわりに少し詳しくなった話

こんにちは。
最近Amazon primeで劇場版クレヨンしんちゃんシリーズを一気見するのにハマっています。

割と泣けるんだよなぁ…

前提


今の現場ではスクラム開発をやっているのですが、最近開発メンバーの一部から問合せ対応専任を抜擢して
ローテーションするという試みを始めました。


2週間前からとうとう自分にもローテーションが回ってきて、
毎日ヒィヒィ言いながら問合せ対応をしています。


今日はその問合せ対応で、Amazon SESに関する質問の回答をする上で調査の必要があり、
サービスの送信者評価通知の仕組みをちょっと勉強したのでその話をします。
(間違った情報があったらスミマセン...)


Amazon SESってどんなサービスなの


f:id:siromamex:20191221135014p:plain
Amazon Simple Email Service


aws.amazon.com

Amazon Simple Email Service (Amazon SES) は、デジタルマーケティング担当者やアプリケーション開発者がマーケティング、通知、トランザクションに関するEメールを送信できるように設計された、クラウドベースのEメール送信サービスです。Eメールを利用してお客様とのつながりを維持するあらゆる規模の企業を対象とした、コスト効率の高い信頼できるサービスです。

Email"送信"に特化したサービスのようですね。(受信もできるみたいですが)
効率的に大量のメール送信を行うことができるらしいです。


例えば、新製品を開発したので宣伝したい!といったときにもAmazon SESを使えばお得意様先にシュシュっとメールを飛ばせちゃいます。
その他にも、製品のバージョンアップ連絡やライセンス更新のお知らせなど、
製品関係の通知に使ったりするというユースケースがあるみたいですね。


自分でメールサーバを立てたり運用する必要はなく、気軽に大量のメール送信ができる。
かかるコストもメールを送った分だけという素晴らしいサービスです。

送信者評価ってなに


こんな感じで気軽に大量のメール送信ができちゃう便利なAmazonSESですが、
その気軽さ故に悪意のある送信者が使用する危険性もあるわけです。


大量にスパムメールなんかを送ったりすることにも使えるということですね。
これをAmazonSESを使ってバンバンやられたら、Amazonとしても困ります。


そこで「送信者評価」の話になります。



例えば、送ったメールのうち、どのくらいの割合でメールが到達しないで返ってきてしまうのか。(バウンス率)
どのくらいの割合で送信したメールに対しての苦情がきているのか。(苦情率)


これらを常にAmazonから監視されており、この送信者は良い送信者か悪い送信者かということを評価されています。

あまりにもこの割合が高い=送信者評価が悪い場合は
AmazonからSESを使えないようにされてしまいます。


SESを健全に使うために


悪意のある人は、上記のAmazonが監視してくれる仕組みで野放しにされないようになっています。
しかし、特に悪意がなかったとしても、バウンス率や苦情率が高くなってしまうことがあるようです。


別に意図してなかったのに送信者としての質が悪い!とされ、ある日突然サービスが使えなくなったら困りますよね。


そこで、送信者としての質が悪い場合はAmazonから通知が行われます。
これがタイトルの「送信者評価通知」ってやつですね。

Amazon SES では、送信者としての評価にダメージを与える可能性のあるメトリクスや、メール配信率の低下を招く可能性のあるメトリクスなど、複数のメトリクスがアクティブに追跡されます。このプロセスで監視する 2 つの重要なメトリクスは、アカウントのバウンス率と苦情率です。アカウントのバウンス率や苦情率が高すぎる場合、アカウントを確認し、アカウントの E メール送信機能を一時停止することがあります。

https://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuide/monitor-sender-reputation.html


具体的には、バウンス率が5%以上になったら一旦警告が行われ、
10%以上になったら一時的にSESサービスが利用停止になるそうです。
その後、改善活動を実施したということをAmazonに伝えればまた使えるようになる…らしい?(ソースは不明)


ちなみに、「送信者評価通知」という言葉は私が適当に考えた言葉なので、意味とかはあまり気にしないでください。


バウンス率が5%を超えた時点での通知は、
SESコンソールの評価ダッシュボードに届くようです。
コンソールの [Sending Statistics]ページではバウンス率や苦情率といったメトリクスの推移をグラフで見ることができます。


でもこれ、具体的な数値はダッシュボードに表示されて、メトリクスの推移は[Sending Statistics]ページに
表示されるんだよなぁ…どっちもダッシュボードで見れたらいいのに…
(グラフではなんとなく視覚的にこの辺かな?という割合は確認できるけど、具体的な数値は表示されない)


コンソールから直接モニタリングできるけど、そんなのいちいち見るのめんどくさい!という人は
CloudWatchでバウンス率が高騰した時にメールやSMSで通知を送ってくれるように設定できます。



バウンスメールが発生する原因を根本から分析して解決したいという人は、
Amazon SNSと連携してバウンスメールや苦情が発生した時にフィードバック返信をくれるように設定したり、
トピックを作成してバウンスや苦情の詳細情報をJSON形式で受け取ることができるみたいです。


なんかよくわからんがバウンス率や苦情率があがっとるな?と感じた場合は
この情報を使って配信設定を改善して、送信者評価の悪化を未然に防ぐということができますね。


https://docs.aws.amazon.com/ja_jp/ses/latest/DeveloperGuide/configure-sns-notifications.html

まとめ


2ヶ月前くらいにSAAの勉強をしていましたが、Amazon SESに関してはそこまで勉強してなかったので
今回、問合せ対応をきっかけにサービスをざっくり理解できてよかったです。
試験にSESってそんな出てきてなかったような気がするけど…^^;


あと、Developerガイドって調べたいことが明確な時はとても有用なんですね。
Amazon公式ドキュメントにしてはわりとわかりやすかった気がします。


問合せ対応って大変だなぁ…



おしまい