AWS End User Messaging SMSで日本語メッセージを送る場合の料金を整理してみた

AWS End User Messaging SMSで日本語メッセージを送る場合の料金を整理してみた

2026.05.18

はじめに

AWS End User Messaging SMSでメッセージを送信する場合、1回の送信リクエストや受信者端末上で1通に見えるメッセージ数ではなく、本文の長さと文字種によって決まるメッセージパート数をもとに課金されます。

特に日本語を含むSMSでは、英数字のみのSMSと比べて1パートに入る文字数が少なくなります。そのため、受信者の端末上では1通に見えても、文字数によっては2パート、3パートとして課金される点に注意が必要です。

本記事では、日本向けに日本語SMSを送る前提で、文字数と料金の関係を整理します。

なお、SMSの単価は国や通信事業者によって異なり、変更される可能性があります。AWS公式料金ページでも、SMS料金は定期的に変わると案内されています。

The price for sending SMS messages varies between countries and regions, and in some cases, between carriers in the same country or region. These prices change regularly.

日本語訳:SMSメッセージの送信料金は国やリージョンによって異なり、場合によっては同じ国やリージョン内のキャリアによっても異なります。これらの料金は定期的に変更されます。

https://aws.amazon.com/jp/end-user-messaging/pricing/

前提

今回の前提は以下のとおりです。

  • 送信先は日本
  • メッセージ本文は日本語を含む

AWSの料金ページでJapanを選択すると、執筆時点では以下のように表示されていました。

Network/ HNI        Transactional SMS    Promotional SMS
All Networks        $0.07451             $0.07451

本記事では、日本向けのSMS料金として確認した 0.07451 USD/メッセージパート を前提に計算します。

SMSの文字数は140バイトを基準に決まる

AWS公式ドキュメントでは、1つのSMSメッセージには最大140バイトの情報を含められると説明されています。

A single SMS message can contain up to 140 bytes of information. The number of characters you can include in a single SMS message depends on the type of characters the message contains.

日本語訳:1つのSMSメッセージには、最大140バイトの情報を含めることができます。1つのSMSメッセージに含められる文字数は、メッセージに含まれる文字の種類によって異なります。

https://docs.aws.amazon.com/sms-voice/latest/userguide/sms-limitations-character.html

この140バイトの中に何文字入るかは、メッセージで使われる文字種によって変わります。

大きく分けると、以下の2パターンです。

文字種 1パートに収まる文字数
GSM 03.38文字のみ 最大160文字
GSM 03.38以外の文字を含む 最大70文字

日本語のひらがな、カタカナ、漢字はGSM 03.38文字ではありません。

そのため、日本語を含むSMSは基本的に non-GSM文字を含むメッセージ として扱われ、1パートに収まる文字数は 70文字まで になります。

日本語SMSは70文字以内なら1パート

日本語SMSの場合、70文字以内であれば1パートとして送信されます。

この場合の料金は、以下のとおりです。

0.07451 USD × 1パート = 0.07451 USD

例えば、以下のような短い認証コード通知であれば、1パートに収まります。

認証コードは123456です。10分以内に入力してください。

このように、認証コードや短い通知であれば70文字以内に収めやすいため、料金も読みやすくなります。

71文字を超えると分割される

日本語SMSが70文字を超えると、メッセージは複数のパートに分割されます。

ここで注意が必要なのは、分割時は1パートあたり70文字ではなく、67文字になる点です。

AWS公式ドキュメントでは、分割されたメッセージでは各パートに追加情報が含まれるため、GSM 03.38文字のみのメッセージは153文字、GSM以外の文字を含むメッセージは67文字に減ると説明されています。

As a result, the number of characters in each message part is reduced to 153 for messages that only contain GSM 03.38 characters, or 67 for messages that contain other characters.

日本語訳:その結果、各メッセージパートに含められる文字数は、GSM 03.38文字のみを含むメッセージでは153文字、その他の文字を含むメッセージでは67文字に減少します。

https://docs.aws.amazon.com/sms-voice/latest/userguide/sms-limitations-character.html

つまり、日本語SMSでは以下のように考えます。

  • 70文字以内は1パート
  • 71文字以上は複数パートに分割
  • 分割時は1パートあたり67文字

分割された時点で、各パートの上限は67文字になります。そのため、2パートで収まるのは以下です。

67文字 × 2パート = 134文字

日本語SMSのパート数は、見積もり上は以下のように考えると分かりやすいです。

70文字以内の場合
1パート

71文字以上の場合
ceil(文字数 ÷ 67)

また、複数のメッセージパートを含むメッセージを送信した場合、メッセージに含まれるパート数に対して課金されます。

When you send a message that contains more than one message parts, you're charged for the number of message parts contained in the message.

日本語訳:複数のメッセージパートを含むメッセージを送信する場合、メッセージに含まれるメッセージパート数に対して課金されます。

https://docs.aws.amazon.com/sms-voice/latest/userguide/sms-limitations-character.html

日本語SMSの文字数と料金の早見表

日本語SMSを送る場合の文字数、メッセージパート数、料金を整理すると以下のとおりです。

単価は 0.07451 USD/メッセージパート で計算しています。

日本語文字数 メッセージパート数 料金
1〜70文字 1パート 0.07451 USD
71〜134文字 2パート 0.14902 USD
135〜201文字 3パート 0.22353 USD
202〜268文字 4パート 0.29804 USD
269〜335文字 5パート 0.37255 USD
336〜402文字 6パート 0.44706 USD
403〜469文字 7パート 0.52157 USD
470〜536文字 8パート 0.59608 USD
537〜603文字 9パート 0.67059 USD
604〜630文字 10パート 0.74510 USD
631文字以上 送信失敗 Invalid Message Exception

ここでポイントになるのが、630文字を9パートとは見積もらない点です。

分割時は1パートあたり67文字になるため、9パートで収まる文字数は以下です。

67文字 × 9パート = 603文字

そのため、604文字以上630文字以下の日本語SMSは10パートになります。

実際に、603文字、604文字、630文字の日本語メッセージを送信し、メッセージパート数を確認したところ、以下のようになりました。

  • 603文字:9パート
  • 604文字:10パート
  • 630文字:10パート

603文字の場合
603文字の場合

また、配信ログの delivery.numberOfMessageParts からも、送信されたメッセージパート数を確認できます。

delivery.numberOfMessageParts が 10 の場合
delivery.numberOfMessageParts が 10 の場合

AWS公式ドキュメントでは、non-GSM文字の最大サポートサイズは630文字と記載されています。一方、分割時は1パートあたり67文字となるため、603文字を超える604〜630文字は10パートとして扱われます。

最大文字数は630文字

AWS公式ドキュメントでは、サポートされる最大サイズはGSM文字の場合1530文字、non-GSM文字の場合630文字と記載されています。

The maximum supported size of any message is 1530 GSM characters or 630 non-GSM characters. If the message size is greater than the supported size, the message will fail and AWS End User Messaging SMS will return an Invalid Message Exception.

日本語訳:メッセージの最大サポートサイズは、GSM文字の場合は1530文字、non-GSM文字の場合は630文字です。メッセージサイズがサポートされているサイズを超えると、メッセージは失敗し、AWS End User Messaging SMSはInvalid Message Exceptionを返します。

https://docs.aws.amazon.com/sms-voice/latest/userguide/sms-limitations-character.html

そのため、日本語SMSの最大文字数は 630文字 です。

630文字を超えた場合、送信は失敗し、AWS End User Messaging SMSは Invalid Message Exception を返します。

英数字だけのメッセージでも注意が必要

日本向けSMSであっても、本文がGSM 03.38文字だけで構成されている場合は、1パートあたり最大160文字まで送信できます。

ただし、本文にGSM 03.38以外の文字が1文字でも含まれると、メッセージ全体がnon-GSM扱いになります。

例えば、英語の文章でも以下のような文字が含まれると注意が必要です。

  • 全角文字
  • 日本語
  • 一部の特殊記号
  • Wordなどで自動変換される閉じシングルクォート

AWS公式ドキュメントでも、通常のアポストロフィ ' ではなく、閉じシングルクォート が含まれることで、GSM外文字として扱われる例が紹介されています。

In this example, the character is a closing single quote (’), which is a different character from a regular apostrophe (').

日本語訳:この例では、その文字は閉じシングルクォート(’)であり、通常のアポストロフィ(')とは異なる文字です。

https://docs.aws.amazon.com/sms-voice/latest/userguide/sms-limitations-character.html

そのため、SMS料金を見積もる場合は、本文にGSM 03.38以外の文字が含まれていないか確認し、GSM扱いかnon-GSM扱いかを判断する必要があります。

まとめ

AWS End User Messaging SMSで日本語SMSを送る場合、料金は メッセージパート単位 で課金されます。

日本語SMSは基本的にnon-GSM扱いとなり、70文字以内は1パート、71文字以上は67文字ごとに分割されます。今回確認した日本向けSMS単価 0.07451 USD/メッセージパート の場合、70文字以内は 0.07451 USD、71〜134文字は 0.14902 USD です。

最大文字数は630文字で、631文字以上は Invalid Message Exception により送信失敗します。

参考

https://docs.aws.amazon.com/sms-voice/latest/userguide/sms-limitations-character.html

https://aws.amazon.com/jp/end-user-messaging/pricing/

https://dev.classmethod.jp/articles/amazon-connect-sms-cost-summary/

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事