AWSではSESと呼ばれるメールサービスがあります。Azureで言うところのSendGridみたいな、APIからメールが送れたり、MTAからリレーできたりする便利な奴なんですが、スパムに利用されないように、バウンスメール(ようするに不達で帰ってくるメール)が多いとスパマーと判定されてペナルティを食らうらしい・・・
参考:Amazon SES のバウンスに関するよくある質問
そのための仕組みとして、SESではバウンスメールアドレスを通知する仕組みがあります。
この仕組みを利用して、SNS経由で用意したAPIを叩いてDBの消しこみをする。なんて例が良く出てきます。
たとえばこんなのとか。
ただ、当然というか、外部にAPIを晒すという事は、悪戯されたり不正アクセスをされたりするわけで、ちゃんと電子証明書の検証をしないといけない。
これはこれで面倒そう・・・・
なので、SNSからさらにSQSを連携させ、バウンスメール処理をキューで処理する仕組みを構築してみました。
キューに貯める事により、複数台のサーバで並列して処理したりできますし、APIを作ったり外部へ晒したりしなくてよいです。
具体的な構築手順は例によってWiKiに記載しています。
今回、あまりAWS SDK for RubyでSQS処理するプログラムを見かけなかったので、作ってみました。
勿論SDKのVer2対応です!!
0 件のコメント:
コメントを投稿