株式会社スタイリィでは一緒に働く仲間を募集しています
メール送信はサーバレスで
じぶん仲介を通じてお問い合わせが入った場合など、メールを送信する必要があるのですが、
その周辺はAWSのサービスを利用しサーバレスな構成にしています。
処理として、メール送信とブラックリスト管理があります。
メール送信処理では、SQSにメール送信に必要な情報を都度送信し、CloudWatchから定期的にLambda関数を実行し、DynamoDBのブラックリストをチェックした上で、SESを通じてメール送信を行います。
ブラックリスト管理では、同じくCloudWatchからLambdaを定期的に実行し、SQSにあるバウンスしたメールについて、DynamoDBに登録しています。
ブラックリストと言っても、弊社にとって困る人を登録しておくリストではありません。AWSのSESではメールが届かない割合が一定を超えるとサービスを止められてしまい、回復にはAWSサポートに再発防止策の説明などをしなければならないので、bounce(不達)となったメールアドレスをリスト管理する必要があるのです。
もちろん、EC2にメールサーバを立ててすべてそこで済ませることも出来るのですが、この構成はAWSを活用した際の現状の最適解のひとつかな、と思っています。
もっといい構成をお使いの方、ぜひ教えてください!