Amazon SNSでSMS送信の使用制限に抵触したので上限を引き上げてみた

2021.10.20

こんにちは、CX事業本部 IoT事業部の若槻です。

今回は、Amazon SNSでSMS送信の使用制限に抵触したので上限を引き上げてみました。

トピックでイベントを発行しても、サブスクリプションのSMSにメッセージが届かない

最近案件でSMS送信を扱う機会があり、SNSトピックにSMSのサブスクリプションを登録してメッセージ送信を行う検証をしていました。

最初は問題なく動作していたのですが、途中からイベント発行をしてもSMSのメッセージ送信が行われなくなる事象が発生しました。

  • 最初の十数通程度は問題なくSMS送信できていた
  • 同じAWSアカウントに作成し直したSNSトピックでも同じ事象が発生する
  • Emailなどのサブスクリプションであれば同じトピックでもメッセージが届く
  • 他のAWSアカウントに作成すれば同じ番号のSMSのサブスクリプションであってもメッセージが届く

原因調査

まず疑ったのはAmazon SNSのクォータ(使用制限)に抵触したことです。ドキュメントには下記のような記載がありました。

毎月の SMS メッセージングの使用制限に達すると、Amazon SNS で「アカウントのクォータが残っていません」というエラーが表示されます。

しかしメッセージ発行時(マネジメントコンソール)にエラーなどは特に表示されませんでした。

一方下記のドキュメントを見ると、AWSアカウントごとにSMSの使用料は1.00USDとのことです。

SMS のアカウント使用料しきい値 | アカウントあたり 1.00 USD

そこで請求ダッシュボードを見てみると「Amazon Simple Notification Service APN1-SMS-Price-ROW」が0.969USDとなっており、SMSの使用制限にほぼ抵触していました。

image

AWSでのSMS利用料金

AWSでのSMSの料金は、日本国内の場合は下記のようになります。1通あたり$0.07451と思ったより高い印象です。

TransactionalとPromotionalの用途ごとに料金があるのが面白いですね。

使用制限(の最大値)引き上げの申請

SMS送信の使用制限の引き上げはAWSのサポートセンターから起票して行います。制限タイプでSNS Text Messagingを選択し、その他情報をオプションとして指定します。

起票から数時間後にAWSから下記のメールが届きました。SMSの月額使用限度額が無事20USDに引き上げられたとのこと。

平素は Amazon Web Services をご利用いただき、誠にありがとうございます。

アジアパシフィック (東京) リージョンにおいて、新しいSMSの月額使用限度額$20USDが適用されました。

***注意事項***
メッセージを送信する前に、Amazon SNS コンソール または API を使用してアカウントの使用限度額を更新する必要があります。この処理がコンソールに反映されるまでに最大 1 時間かかる場合があります (https://docs.aws.amazon.com/ja_jp/sns/latest/dg/sms_preferences.html)。

そしてメールを見て気がついたののですが、申請を受けてAWSサポートが行ったのは月額使用限度額の「最大値」の引き上げだったようです。よって更にユーザーによる使用限度額の引き上げ設定操作が必要のようです。

使用限度額の引き上げ設定

Amazon SNSのマネジメントコンソールで[Mobile]-[テキストメッセージング(SMS)]で[テキストメッセージングの優先設定]の[編集]をクリックします。

[デフォルトのメッセージタイプ]でトランザクション(またはプロモーション)を選択、[アカウントの使用制限]で20USD/月を指定して、[変更の保存]をクリックします。

トピックでメッセージを発行するとSMSでメッセージを受信できるようになりました。

配信統計にもSMSの配信の成功が記録されています。

まとめ

  • Amazon SNSのデフォルトのSMS月額送信限度額は$1.00。
  • AWSでのSMS1通あたりの送信料金は$0.07451(日本国内)。デフォルトで13通まで送信可能
  • 送信限度額の最大値を引き上げるためにはAWSのサポートセンターへの申請が必要。
  • 送信限度額の最大値が引き上げられた後に、ユーザー自身でアカウントの送信限度額の引き上げ操作が必要。

参考

以上