メニュー
Amazon Simple Notification Service
開発者ガイド (API バージョン 2010-03-31)

SMS メッセージプリファレンスの設定

Amazon SNS を使用して、配信の最適化の方法 (コストに対してか、確実な配信に対してか)、毎月の使用量の上限、メッセージ配信がログに記録される方法、SMS の毎日の使用状況レポートをサブスクライブするかどうかなど、SMS メッセージのプリファレンスを指定します。

これらの設定は、アカウントから送信するすべての SMS メッセージに対して有効になりますが、個々のメッセージの送信時に上書きすることができます。 詳細については、「SMS メッセージの送信」を参照してください。

プリファレンスの設定 (コンソール)

  1. AWS マネジメントコンソールにサインインした後、Amazon SNS コンソール (https://console.aws.amazon.com/sns/v2/home) を開きます。

  2. コンソールメニューで、SMS メッセージングをサポートしているリージョンにリージョンセレクタを設定します。

  3. ナビゲーションペインで、[Text messaging (SMS)] を選択します。

  4. [Text messaging (SMS)] ページで、[Manage text messaging preferences] を選択します。

  5. [Text messaging preferences] ページで、[Default message type] に対して、通常送信する SMS メッセージのタイプを選択します。

    • プロモーション (default) – マーケティングメッセージなどの非クリティカルなメッセージ。 Amazon SNS は、最も低いコストが発生するようにメッセージ配信を最適化します。

    • トランザクション – Multi-Factor Authentication のワンタイムパスコードなど、顧客のトランザクションをサポートするクリティカルメッセージ。 Amazon SNS は、メッセージ配信を最も高い信頼性の実現のために最適化します。

    メッセージを送信するとき、この設定をオーバーライドできます。

    プロモーションおよびトランザクションメッセージの料金表の詳細については、「グローバル SMS 料金表」を参照してください。

  6. [アカウントの使用料制限] に、各暦月での SMS メッセージに使用する上限額 (USD) を入力します。 Amazon SNS が、SMS メッセージを送信するとその月の使用限度を超えるコストが発生すると判断した場合、Amazon SNS は、数分以内に SMS メッセージの発行を停止します。

    重要

    Amazon SNS は分散システムであるため、使用制限を超えると数分以内に SMS メッセージの送信を停止します。 その間に、SMS メッセージを送信し続ければ制限を超えるコストが発生する可能性があります。

    デフォルトでは、使用制限は 1.00 USD に設定されます。制限を引き上げる場合は、SNS テキストメッセージングのケースを AWS サポート に送信します。[New limit value] に、必要な月ごとの使用制限を入力します。[Use Case Description] フィールドで、月ごとの SMS 使用制限の引き上げをリクエストしていることを説明します。通常、AWS サポートでは 2 営業日以内にケースが処理されます。AWS サポート では、リクエストする使用制限およびケースの複雑さに応じて、リクエストを確実に処理するために、さらに 3~5 日必要になることがあります。

  7. CloudWatch ログアクセスの IAM ロールに対して、Amazon SNS が、SMS 配信のために CloudWatch Logs でログに書き込めるようにする IAM ロールを作成します。

    1. [Create IAM role] を選択します。

    2. [SNS is requesting permission to use resources in your account] ページで [Allow] を選択します。

  8. [Default percentage of success to sample] で、Amazon SNS が CloudWatch Logs でログを書き込む、正常な SMS 配信の割合を指定します。 たとえば、失敗した配信にのみログを書き込むには、この値を 0 に設定します。 正常な配信の 10% に対してログを書き込むには、10 に設定します。 割合を指定しないなら、Amazon SNS は、すべての正常配信に対してログを書き込みます。

  9. [デフォルトの送信者 ID] に、少なくとも 1 つの文字を含み、スペースは含まない、11 文字以内の英数字のカスタム ID を入力します。 送信者 ID は、受信デバイスにメッセージ送信者として表示されます。 たとえば、メッセージ ソースを識別しやすいように、ビジネスブランドを使用できます。

    送信者 ID のサポートについては、国またはリージョンによって異なります。たとえば、米国の電話番号へ配信されるメッセージは、送信者 ID を表示しません。 送信者 ID をサポートする国およびリージョンについては、「サポートされているリージョンおよび国」を参照してください。

    送信者 ID を指定しない場合、サポートされている国およびリージョンでは、メッセージは送信者 ID として長いコードを表示します。アルファベットの送信者 ID を必要とする国およびリージョンでは、メッセージは送信者 ID として NOTICE を表示します。

    メッセージを送信するときに、この設定をオーバーライドできます。

  10. レポートストレージで、Amazon S3 バケットの名前を入力して、Amazon SNS. から SMS の毎日の使用状況レポートを受け取ります。 Amazon SNS は、受信するように Amazon S3 バケットを指定しない限り、毎日の使用状況レポートを作成しません。 詳細については、「SMS の毎日の使用状況レポートの表示」を参照してください。

  11. [Update preferences] を選択します。

プリファレンスの設定 (AWS SDK)

AWS SDK の 1 つを使用して SMS プリファレンスを設定するには、Amazon SNS API の SetSMSAttributes リクエストに対応する SDK のアクションを使用します。 このリクエストによって、月ごとの使用制限およびデフォルトの SMS 型 (プロモーションまたはトランザクション) などの、異なる SMS の属性に値を割り当てます。すべての SMS 属性については、「Amazon Simple Notification Service API Reference」の「SetSMSAttributes」を参照してください。

プリファレンスの設定 (AWS SDK for Java)

次の例では、AmazonSNSClient クラスの setSMSAttributes メソッドを使用して、異なる属性名に値を設定します。

public static void main(String[] args) { AmazonSNSClient snsClient = new AmazonSNSClient(); setDefaultSmsAttributes(snsClient); } public static void setDefaultSmsAttributes(AmazonSNSClient snsClient) { SetSMSAttributesRequest setRequest = new SetSMSAttributesRequest() .addAttributesEntry("DefaultSenderID", "mySenderID") .addAttributesEntry("MonthlySpendLimit", "1") .addAttributesEntry("DeliveryStatusIAMRole", "arn:aws:iam::123456789012:role/mySnsRole") .addAttributesEntry("DeliveryStatusSuccessSamplingRate", "10") .addAttributesEntry("DefaultSMSType", "Transactional") .addAttributesEntry("UsageReportS3Bucket", "sns-sms-daily-usage"); snsClient.setSMSAttributes(setRequest); Map<String, String> myAttributes = snsClient.getSMSAttributes(new GetSMSAttributesRequest()) .getAttributes(); System.out.println("My SMS attributes:"); for (String key : myAttributes.keySet()) { System.out.println(key + " = " + myAttributes.get(key)); } }

この例では、MonthlySpendLimit 属性の値を 1.00 USD に設定します。デフォルトでは、これは Amazon SNS で許可される最大額です。制限を引き上げる場合は、SNS テキストメッセージングのケースを AWS サポート に送信します。[New limit value] に、必要な月ごとの使用制限を入力します。[Use Case Description] フィールドで、月ごとの SMS 使用制限の引き上げをリクエストしていることを説明します。通常、AWS サポートでは 2 営業日以内にケースが処理されます。AWS サポート では、リクエストする使用制限およびケースの複雑さに応じて、リクエストを確実に処理するために、さらに 3~5 日必要になることがあります。

属性が正しく設定されたことを確認するために、この例では、getSMSAttributes メソッドの結果を表示します。 この例を実行すると、IDE のコンソール出力ウィンドウに属性が表示されます。

My SMS attributes: DeliveryStatusSuccessSamplingRate = 10 UsageReportS3Bucket = sns-sms-daily-usage DefaultSMSType = Transactional DeliveryStatusIAMRole = arn:aws:iam::123456789012:role/mySnsRole MonthlySpendLimit = 1 DefaultSenderID = mySenderID