Amazon SES の送信レート上限を超えているはずなのにメールを送信できる原因を教えてください
困っていること
Amazon SES のサンドボックス環境で、最大送信レートが 1 通/秒 であることを確認しました。
送信レート超過時のエラーを検証するため、複数のメールを同時に送信しましたが、Maximum sending rate exceeded などの送信レート超過エラーは発生せず、Amazon SES への送信リクエストは正常に受け付けられました。
送信レート上限を超えているにもかかわらず、エラーが発生しない原因を教えてください。
どう対応すればいいの?
Amazon SES の最大送信レートは、1 秒単位で厳密に送信可否を判定する制限ではありません。
送信レートクォータは瞬間的に超過できるため、最大送信レートが 1 通/秒 の場合でも、複数の送信リクエストを短時間に実行しただけでは、送信レート超過エラーが発生しないことがあります。
一方で、送信レートを超える状態を継続すると、Amazon SES の送信制限に達し、送信リクエストがスロットリングされる場合があります。
Amazon SES API または AWS SDK を使用して送信する場合、送信制限を超えると ThrottlingException が返され、エラーメッセージには Maximum sending rate exceeded が含まれます。Amazon SES SMTP インターフェイスを使用する場合は、454 Throttling failure: Maximum sending rate exceeded が返される場合があります。
そのため、送信レート超過エラーを検証する場合は、単発の同時送信ではなく、最大送信レートを超える送信リクエストを一定時間継続し、各リクエストの結果や例外を確認してください。
また、AWS SDK のバージョンやリトライ設定によっては、スロットリングエラーが自動的に再試行され、最終結果だけを見ると成功したように見える場合があります。エラーを検証する際は、SDK のリトライ設定やデバッグログもあわせて確認してください。
なお、Amazon SES の送信クォータはメッセージ数ではなく受信者数に基づいて消費されます。たとえば、10 件の宛先を指定したメールは、クォータ上では 10 通として扱われます。送信レートの検証では、To、CC、BCC の宛先数も考慮してください。
送信レート – Amazon SES が 1 秒あたりにアカウントから受け付けることができる E メールの最大数。このクォータを瞬間的に超えることはできますが、制限を超えた状態が長時間続くことは許可されません。
(略)
メッセージ数ではなく、受取人数に基づいた送信クォータがあります。たとえば、受取人数が 10 人である E メールは、クォータに対しては 10 通とカウントされます。
補足:SES の送信設定を確認する
以下の AWS CLI コマンドで、指定した AWS リージョンにおける Amazon SES の本番アクセス有無、送信可否、および最大送信レートを確認できます。
aws sesv2 get-account \
--region ap-northeast-1 \
--query '{
ProductionAccessEnabled: ProductionAccessEnabled,
SendingEnabled: SendingEnabled,
Max24HourSend: SendQuota.Max24HourSend,
MaxSendRate: SendQuota.MaxSendRate,
SentLast24Hours: SendQuota.SentLast24Hours
}' \
--output json
出力例は以下のとおりです。
{
"ProductionAccessEnabled": false,
"SendingEnabled": true,
"Max24HourSend": 86400.0,
"MaxSendRate": 1.0,
"SentLast24Hours": 19.0
}
各項目は次のように確認します。
| 項目 | 確認内容 | 今回の出力から分かること |
|---|---|---|
| ProductionAccessEnabled | 本番アクセスの有無 | false のため、SES サンドボックス環境です。 |
| SendingEnabled | SES からのメール送信可否 | true のため、送信機能は有効です。 |
| MaxSendRate | 1 秒あたりの最大送信レート | 1.0 のため、送信レートは 1 通/秒です。 |
| Max24HourSend | 24 時間あたりの送信クォータ | 86400.0 のため、24 時間で最大 86,400 通です。 |
| SentLast24Hours | 過去 24 時間の送信数 | この例では 19 通送信済みです。 |







