Amazon SNS で SMS を一定量送信後に、急に送信できなくなった時の対処法

SMS メッセージを送る場合、デフォルトでは 1 ドルの使用制限があります。 CloudWatch Logs にて「No quota left for account」の記録をご確認ください。 AWSサポートへ上限緩和依頼が可能です。
2021.03.19

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

Amazon SNS を用いて SMS の送信テストを行っていました。

しかし、一定の量を送信した後、送信エラーが発生しました。

対処法を教えてください。

どう対応すればいいの?

Amazon SNS にて SMS メッセージを送る場合、デフォルトでは 1 ドルの使用制限があります。

使用当初は 1 ドルに満たないため送信することは可能ですが、1 ドルの使用量を超えると送信エラーとなります。

送信エラーとなった場合は、クォータ制限の上限緩和を AWS サポートへご依頼ください。

クォータ制限に達していることをどのように確認できますか?

使用制限に達して送信に失敗している場合は「No quota left for account」というエラーメッセージが CloudWatch Logs に記録されます。

{
    "notification": {
        "messageId": "SAMPLE01-0123-4567-89abcd-SAMPLEef0123",
        "timestamp": "YYYY-MM-DD HH:mm:ss.ddd"
    },
    "delivery": {
        "destination": "+81**********",
        "smsType": "Promotional",
        "providerResponse": "No quota left for account",
        "dwellTimeMs": 123
    },
    "status": "FAILURE"
}

CloudWatch Logs へ記録する場合は以下の手順を実行します。

  • Amazon SNS コンソールの左ペインから「テキストメッセージング (SMS)」を選択
  • 「テキストメッセージングの優先設定」の項目の「編集」ボタンを押下
  • 配信ステータスのログ記録にて、CloudWatch Logs へログを記録するために用いるサービスロールを作成

上限緩和はどのように行えばいいですか?

AWS のサポートセンターへ上限緩和申請を行ってください。上限緩和の際は参考資料「Amazon SNS で SMS メッセージの使用制限の引き上げをリクエストする」に記載の情報が必要となります。

参考資料

SMS 配信用の Amazon CloudWatch のメトリクスおよびログを表示する - Amazon Simple Notification Service

Amazon SNS で SMS メッセージの使用制限の引き上げをリクエストする

AWS Developer Forums: SMS: No quota left for account ...