(レポート) ARC342: AWSを利用したエンドツーエンドのEメールソリューションを設計・構築する #reinvent
Eメールは終わったのか?
いや、そんなことはないです。世界では1秒間に200万通のメールが送受信されています。(スパムが多いと思うけど。。。)
従来のEメールのアーキテクチャーといえば、メール管理者、配達の管理、システム管理、エンジニアなどが必要で、めっちゃお金掛かっていました。
例えば、メール管理者は、メールボックスの中からスパムを排除し、送信者評価を行い、誤った判定がないか確認し、ボットかスパムか確認し、送信者の判定ロジックを更新する必要がありました。配達の管理では、多くの宛先に届き、SPFやDKIMに対応するなどが必要でした。システム管理やエンジニアは、ファイアウォール、セキュリティアプライアンス、メールボックスサーバー、キャンペーンマネジメント、カスタマーサポート、アーカイブなどが必要でした。まぁオフィスワーカーがGmailとかOffice365使っていれば、ある程度は受信周りの管理はできていたと思うのですが、メールの送受信に連動する自社のアプリケーションにおいては、まだまだ考えなければならないことが多く、多大なコストが掛かっているのが現状かと思います。逆に、この面倒な部分をスマートに設計し運用することができれば、ビジネスインパクトを出せると思います。
AWSによるのEメールアーキテクチャー
以下は、クラシックなEメール連動アプリケーションの例です。とにかくお金掛かるやつですね。
Amazon SESがEメール配信を解決
マーケティングメールなど、大量に送信するニーズに答えるためにSESが使えます。
Amazon SESがEメール受信を解決
先日、SESの新たな機能としてメール受信機能が加わりました。メール管理者のサービス化です。受信したメールに対して様々な操作をおこなうことができます。例えば、添付ファイルを取り出したり、ヘッダをチェックしたり、文字列にマッチしたりです。
以上により、メールの送受信に関する様々な煩わしさをSESがフロントで解決してくれます。もちろん、スケールしますし、可用性も高いです。
KMSで暗号化してS3に保存したり
SNSを経由してキューに溜めて非同期処理を行なったり
文字列のマッチングやヘッダのチェックなど
メーラーに流しこんだりできます。
ルールの適応
SESにはレシピルールという機能があります。特定のアドレス宛に来たメールの処理を振り分けるなどです。
IPアドレスでフィルターすることもできます。
これにより、メールアドレスを知らない相手と匿名のコミュニケーションを行うことも可能になりますね。
ちなみに、メールそのものがRFCで定められている形式のものかチェックする仕組み自体が搭載されていますので、自らロジックを書く必要はありません。
Eメールアプリケーションの構築
それでは、Eメールを活用したアプリケーション例についてご紹介したいと思います。
例1:売り手と書い手の匿名のコミュニケーション
売り手が送ったメールは、SESを経由してS3に保管され、Lambdaが呼び出されます。次に受信相手をDynamoDBから見つけ出します。そして書い手にメールを送ります。
例2:メーリングリストからの削除
Gmailなどの一部のメーラーは、メーリングリストからの削除に関するヘッダを読み取ってくれます。そこで、SESを使ってML購読削除を実現する例です。
SESの受信ルールを使ってML登録削除かどうか判断します。
ヘッダに含まれている情報から対象を特定して登録から削除します。
例3:不正利用のフィルタリングの共通化
スパムやウィルスは当然受けとりたくありません。基本的な考え方は、SESルールセットによって宛先を振り分けます。そして、適切な処理を行います。
スパムかどうかの判定をはじめ、どのようなフィルタをすれば良いのかは、AWSのブログやフォーラムで議論していますので、見てみてください。
まとめ
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