利用時、何も考えずメールを大量送信していると以下のようなエラーが出ることがあります。exceeded最大送信レートを超過したぞ、というエラーメッセージです。最大送信レートとはSESのドキュメントには以下のようにあります。この制限を瞬間的に超えることはできますが、制限を超えた状態が長時間続くことは許可されません。1秒あたりの送信メール数制限ということですね。これを超えると前述のエラーが発生するわけです。制限に到達した場合、それ以降のメールは送信されず破棄されてしまいます。やって制限を回避するの?大きく分けて2つの方法が考えられます。利用制限解除時に申請した数値になっています(利用制限解除方法はこちら)手順は制限解除のときと同じです。「希望する最大送信レート」の数値を引き上げて申請しましょう。あまりにも大きい数値は蹴られます。申請して蹴られました。(90までは上げてもらえました)アプリケーションで制御するこちらが現実的になると思います。アプリケーション側で最大送信レート制限に達しないように調整を行います。分間待機したうえで送信リクエストを再試行するようにアプリケーションをプログラムする必要があります」とあるのみで、具体的なプラクティスは提示されていません。アプリケーションで制御するいくつかの実装方法を考えてみました。エラーをキャッチしたらSleep後にリトライするゴリ押し気味ですが、確実性があり簡単な方策。エラーが発生したら時点で一定時間スリープ後、リトライをかけます。入れたほうがいいかもしれません。キューに送信メッセージを蓄え、一定周期で送出する送信メッセージを直ちに送出せず、キューに蓄えます。クラスなどを利用してキューに対してポーリングを行い、送信レート制限分だけ送信メッセージを取り出し、送出します。デメリットは、オペレーションを行ったユーザが送信エラーを知ることができない点が挙げられます。バッチ処理などなら問題はありませんが。側で徐々に引き上げてくれるようです。ポーリング周期を調整する必要があるでしょう。RDSのログ監視をZabbixで。コメントをキャンセルメールアドレスが公開されることはありません。実績のあるOpenSocial対応の企業情報ポータル「infoScoop」の開発者が書くブログです。infoScoopの活用方法から最新トレンドまで、実践的な技術情報をお届けします。reserved.]。