(レポート) ARC342: AWSを利用したエンドツーエンドのEメールソリューションを設計・構築する #reinvent

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Eメールは終わったのか?

いや、そんなことはないです。世界では1秒間に200万通のメールが送受信されています。(スパムが多いと思うけど。。。)

従来のEメールのアーキテクチャーといえば、メール管理者、配達の管理、システム管理、エンジニアなどが必要で、めっちゃお金掛かっていました。

例えば、メール管理者は、メールボックスの中からスパムを排除し、送信者評価を行い、誤った判定がないか確認し、ボットかスパムか確認し、送信者の判定ロジックを更新する必要がありました。配達の管理では、多くの宛先に届き、SPFやDKIMに対応するなどが必要でした。システム管理やエンジニアは、ファイアウォール、セキュリティアプライアンス、メールボックスサーバー、キャンペーンマネジメント、カスタマーサポート、アーカイブなどが必要でした。まぁオフィスワーカーがGmailとかOffice365使っていれば、ある程度は受信周りの管理はできていたと思うのですが、メールの送受信に連動する自社のアプリケーションにおいては、まだまだ考えなければならないことが多く、多大なコストが掛かっているのが現状かと思います。逆に、この面倒な部分をスマートに設計し運用することができれば、ビジネスインパクトを出せると思います。

 

AWSによるのEメールアーキテクチャー

以下は、クラシックなEメール連動アプリケーションの例です。とにかくお金掛かるやつですね。

screenshot 2015-10-13 15.22.25

 

Amazon SESがEメール配信を解決

マーケティングメールなど、大量に送信するニーズに答えるためにSESが使えます。

screenshot 2015-10-14 17.37.53

Amazon SESがEメール受信を解決

先日、SESの新たな機能としてメール受信機能が加わりました。メール管理者のサービス化です。受信したメールに対して様々な操作をおこなうことができます。例えば、添付ファイルを取り出したり、ヘッダをチェックしたり、文字列にマッチしたりです。

screenshot 2015-10-17 10.12.18

以上により、メールの送受信に関する様々な煩わしさをSESがフロントで解決してくれます。もちろん、スケールしますし、可用性も高いです。

screenshot 2015-10-14 17.38.32

KMSで暗号化してS3に保存したり

screenshot 2015-10-14 17.38.39

SNSを経由してキューに溜めて非同期処理を行なったり

screenshot 2015-10-14 17.38.46

文字列のマッチングやヘッダのチェックなど

screenshot 2015-10-14 17.38.52

メーラーに流しこんだりできます。

screenshot 2015-10-14 17.38.59

ルールの適応

SESにはレシピルールという機能があります。特定のアドレス宛に来たメールの処理を振り分けるなどです。

screenshot 2015-10-14 17.39.08

IPアドレスでフィルターすることもできます。

screenshot 2015-10-14 17.39.17

これにより、メールアドレスを知らない相手と匿名のコミュニケーションを行うことも可能になりますね。

screenshot 2015-10-14 17.39.48

ちなみに、メールそのものがRFCで定められている形式のものかチェックする仕組み自体が搭載されていますので、自らロジックを書く必要はありません。

Eメールアプリケーションの構築

それでは、Eメールを活用したアプリケーション例についてご紹介したいと思います。

例1:売り手と書い手の匿名のコミュニケーション

売り手が送ったメールは、SESを経由してS3に保管され、Lambdaが呼び出されます。次に受信相手をDynamoDBから見つけ出します。そして書い手にメールを送ります。

screenshot 2015-10-18 10.58.23

例2:メーリングリストからの削除

Gmailなどの一部のメーラーは、メーリングリストからの削除に関するヘッダを読み取ってくれます。そこで、SESを使ってML購読削除を実現する例です。

screenshot 2015-10-18 11.04.30

SESの受信ルールを使ってML登録削除かどうか判断します。

screenshot 2015-10-18 11.08.22

ヘッダに含まれている情報から対象を特定して登録から削除します。

screenshot 2015-10-18 11.09.35

 

例3:不正利用のフィルタリングの共通化

スパムやウィルスは当然受けとりたくありません。基本的な考え方は、SESルールセットによって宛先を振り分けます。そして、適切な処理を行います。

screenshot 2015-10-18 11.11.54

スパムかどうかの判定をはじめ、どのようなフィルタをすれば良いのかは、AWSのブログやフォーラムで議論していますので、見てみてください。

screenshot 2015-10-18 11.13.26

まとめ

Amazon SESの機能追加によって、メール受信をできるようになりました。受け取ったメールのヘッダ情報などから、処理を振り分けるルールセットを定義できるようになりました。他のAWSサービスとの連携も容易で、Lambdaなどを使って内容を精査したり、添付ファイルを保存したり、暗号化したり、自動返信したりと、様々な応用アプリケーションを簡単に作れるようになりました。

Eメールは、世界中で共通で使われているソリューションです。今までは高額なソリューションが必要でしたが、SESによって、安く早く、カスタマイズ可能になりました。これらを活用してビジネスを伸ばしましょう!

参考資料

(ARC342) Designing & Building An End-To-End Email Solution Using AWS slideshare

AWS re:Invent 2015 | (ARC342) Designing and Building an End-to-End Email Solution Using AWS youtube

Amazon SES Blog