概要

Q: Amazon Simple Notification Service (Amazon SNS) とは何ですか?

Amazon Simple Notification Service (Amazon SNS) は、クラウドからの通知のセットアップ、操作、および送信を容易にするウェブサービスです。アプリケーションからメッセージを発行し、サブスクライバーや他のアプリケーションに迅速に配信するための、スケーラブルかつ柔軟で、費用対効果の高い機能を備えています。このサービスは、ウェブスケールのコンピューティングがデベロッパーにとって容易になるよう設計されています。Amazon SNS は「publish-subscribe (pub-sub)」メッセージングパラダイムに従っており、通知は、新しい情報や更新のために定期的な確認または「ポーリング」を行う必要をなくす「プッシュ」メカニズムを使って配信されます。最小限の初期開発工数しか必要としないシンプルな API を持ち、メンテナンスまたは管理のための諸経費がなく、従量制料金制の Amazon SNS は、アプリケーションに強力な通知システムを組み込むための簡単なメカニズムをデベロッパーに提供します。

Q: Amazon SNS の使用はどのように開始できますか?

10 分間のチュートリアル、ファンアウト通知を送信するを完了することによって、数ステップで Amazon SNS トピックを作成し、メッセージをパブリッシュすることができます。

詳しくは、Amazon SNS デベロッパーガイド、およびリソースセンターにあるサンプルコードをご覧ください。

Q: Amazon SNS を使用することの利点は何ですか?

Amazon SNS には、疎結合な分散型アプリケーションを構築し、統合するための多彩なオプションがあり、以下のような利点があります。

  • 即時性のあるプッシュベースの配信 (ポーリングなし)
  • シンプルな API とアプリケーションとの容易な統合
  • 複数のトランスポートプロトコルに対応する柔軟性のあるメッセージ配信
  • 安価で、前払い料金のない従量課金制
  • ウェブベースの AWS マネジメントコンソールでの、シンプルなポイントアンドクリックインターフェイス

Q: Amazon SNS によるメッセージ通知の使用例にはどんなものがありますか?

Amazon SNS のサービスでは、イベント通知、アプリケーションのモニタリング、ワークフローシステム、タイミングの重要な情報更新、モバイルアプリケーション、通知を必要とするその他あらゆるアプリケーションなど、幅広く多様なニーズがサポートされます。例えば、分散型コンピュータアプリケーション間でのイベントの中継、データストア間でのデータ移動、ビジネスシステム内の記録を更新するためのワークフローシステムで、Amazon SNS を使用できます。検証、承認、在庫変更、発送ステータスに関するイベント更新と通知は、エンドユーザーだけでなく、関連するシステムコンポーネントにも直ちに配信されます。一般的なパターンは、SNS を使用して Amazon SQS メッセージキューに対してメッセージを発行し、メッセージを 1 つまたは複数のシステムコンポーネントに非同期で確実に送信するというものです。また、別の例として、タイミングの重要なイベントをモバイルアプリケーションやデバイスに中継するために Amazon SNS を使用できます。Amazon SNS は信頼性が高くスケーラブルなため、リアルタイムイベントが欠かせないアプリケーションを開発するデベロッパーにとって、これが大きな利点となっています。

Q: Amazon SNS はどのように機能するのですか?

Amazon SNS は非常に簡単に使用を開始できます。デベロッパーは、メッセージをパブリッシュしてクライアントが通知にサブスクライブできるようにするため、まず「アクセスポイント」である「トピック」を作成 (特定のサブジェクトまたはイベントタイプを識別) する必要があります。トピックが作成されると、トピックの所有者はトピックのポリシーを設定できます。例えば、メッセージの発行者または通知のサブスクライバーを制限したり、どの通知プロトコルがサポートされるのか (例: HTTP/HTTPS、E メール、SMS) を指定したりできます。サブスクライバーは、興味を抱くトピックから通知を受け取ることに関心があるクライアントです。サブスクライバーはトピックをサブスクライブできます。またはトピックの所有者はそのサブスクライバーをサブスクライブできます。サブスクライバーは通知を受け取るために、プロトコルとエンドポイント (URL、E メールアドレスなど) を指定します。発行者が情報や更新をサブスクライバーに通知したい場合、メッセージをトピックに対して発行します。これにより、Amazon SNS からこのメッセージが該当する全サブスクライバーに配信されます。

Q: Amazon SNS と Amazon SQS の違いは何ですか?

Amazon Simple Queue Service (SQS) と Amazon SNS は、共に AWS 内のメッセージングサービスですが、デベロッパーにそれぞれ異なった利点を提供します。Amazon SNS を利用すれば、アプリケーションは「プッシュ」メカニズムを使用して、複数のサブスクライバーにタイミングが重要なメッセージを送信することができます。そのため、更新を定期的に確認したり、「ポーリング」したりする必要性がなくなります。Amazon SQS は、分散型アプリケーションによって使用されるメッセージキューサービスで、ポーリングモデルを通じてメッセージを交換し、コンポーネントの送受信を切り離すために使用することができます。Amazon SQS ではアプリケーションの分散型コンポーネントに対して柔軟性が提供され、同時に利用可能な各コンポーネントを必要とすることなくメッセージの送受信を行うことができます。

一般的なパターンは、SNS を使用して Amazon SQS キューに対してメッセージを発行し、メッセージを 1 つまたは複数のシステムコンポーネントに非同期で確実に送信するというものです。

Q: Amazon SNS と Amazon MQ の違いは何ですか?

Amazon MQ、Amazon SQS、Amazon SNS は、スタートアップからエンタープライズまで、すべての方にとって適切なメッセージサービスです。既存のアプリケーションで処理しているメッセージング機能をクラウドにすばやく簡単に移したい場合、Amazon MQ の使用をお勧めします。業界標準の API とプロトコルがサポートされているため、どのような標準に準拠したメッセージブローカーからでも、アプリケーション内のメッセージングコードを書き換えることなく Amazon MQ に切り替えられます。クラウド上でまったく新しいアプリケーションを構築される場合は、Amazon SQS と Amazon SNS のご検討をお勧めします。Amazon SQS と SNS は、ほぼ無制限にスケーリングでき、シンプルで使いやすい API を提供する、軽量な完全マネージド型のメッセージキューサービスおよびトピックサービスです。Amazon SQS と SNS を使用して、マイクロサービス、分散型システム、サーバーなしアプリケーションを疎結合させ、信頼性を向上できます。

Q: Amazon SNS の使用はどのように開始できますか?

Amazon SNS にサインアップするには、Amazon SNS 詳細ページの [Amazon SNS にサインアップ] ボタンをクリックします。このサービスにアクセスするには、アマゾン ウェブ サービスのアカウントが必要です。まだアカウントをお持ちでない場合は、Amazon SNS へのサインアッププロセスを開始するときに、アカウントを作成するプロンプトが表示されます。登録後に Amazon SNS ドキュメントを参照してください。Amazon SNS のご利用開始方法が説明されています。AWS マネジメントコンソールを使用すると、トピックの作成、サブスクライバーの追加、通知の送信、トピックポリシーの編集など、すべての作業をブラウザ上で簡単に行えます。

Q: Amazon SNS は AWS マネジメントコンソールでサポートされていますか?

Amazon SNS は、AWS マネジメントコンソールでサポートされています。このコンソールは、Amazon SNS にアクセスして管理するためのポイントアンドクリック方式のウェブベースのインターフェイスを提供します。AWS マネジメントコンソールを使用すると、トピックの作成、サブスクライバーの追加、通知の送信などの操作をすべてブラウザで行えます。また、簡単に選択したエンドポイント (HTTP、SQS、Lambda、モバイルプッシュ、E メール、SMS) にメッセージを発行し、トピックポリシーを編集して発行者およびサブスクライバーのアクセスを制御することもできます。

Q: 各リージョンにおける Amazon SNS のサービスアクセスポイントを教えてください。

すべての Amazon SNS のサービスアクセスポイントの最新リストについては、AWS ドキュメントの「AWS のリージョンとエンドポイント」セクションを参照してください。

Q: セキュリティ分析、および運用上のトラブルシューティングのために、使用しているアカウントで実行された SNS API コールの履歴を取得できますか?

はい。Amazon SNS は、ユーザーのアカウントの AWS API コールを記録し、ログファイルをユーザーに配信するウェブサービスである、AWS CloudTrail をサポートしています。CloudTrail を利用することで、API 発信者の ID、API コールの時間、API 発信者のソース IP アドレス、リクエストパラメータ、SNS から返される応答要素といった情報の履歴を取得できます。

現在、認証された API コールでのみ CloudTrail 監査がサポートされています。未認証の ConfirmSubscription および Unsubscribe コールの CloudTrail Audit ログは現在使用できません。詳細情報については、SNS デベロッパーガイドの「CloudTrail」セクションを参照してください。

お使いのアカウントで実行された SNS API コールの履歴は、AWS マネジメントコンソールで AWS CloudTrail を有効にするだけで受け取ることができます。AWS CloudTrail に関する詳細については、こちらをクリックしてください。 

請求

Q: Amazon SNS のコストはどれくらいですか?

Amazon SNS には最低料金は設定されておらず、使用分の料金だけを支払います。ユーザーは、Amazon SNS リクエスト 100 万件につき 0.50 USD、HTTP 経由で配信された通知 10 万件につき 0.06 USD、E メール経由での配信された通知 10 万件につき 2.00 USD を支払います。SMS メッセージの場合、送信先の国によって料金が異なります。

また、Amazon SNS には無料利用枠があり、ユーザーは Amazon SNS を無料で利用開始できます。Amazon SNS のお客様は毎月、Amazon SNS のリクエスト 100 万件まで、HTTP 経由の通知 10 万件まで、および E メール経由の通知 1,000 件まで無料でご利用いただけます。

料金およびデータ転送コストに関する追加の詳細情報については、Amazon SNS の特徴ページを参照してください。

Q: Amazon SNS の使用に対して、どのように課金され、請求されますか?

サービスの使用を開始するためのセットアップ料金はありません。月末に、その月の使用料金が自動的にお客様のクレジットカードに請求されます。現在の請求期間の料金はいつでも、アマゾン ウェブ サービスのウェブサイトで確認できます。アマゾン ウェブ サービスのアカウントにログインして、「お客様のウェブサービスアカウント」の下の「アカウントアクティビティ」をクリックしてください。

Q: Amazon SNS の使用に対する請求期間はいつ始まっていつ終わるのですか?

Amazon SNS の請求サイクルは各月の初日に始まり、末日に終わります。月間料金の合計は、各月末に計算されます。

Q: 料金は税込み価格ですか?

別途記載がない限り、表示される料金には付加価値税、売上税など、一切の税金等および関税は含まれません。日本の居住者であるお客様が AWS サービスをご利用になった場合には、料金とあわせて別途消費税をご請求させていただきます。詳細はこちら

特徴と機能

Q: Amazon SNS トピックの形式は何ですか?

トピック名は 256 文字に制限されています。英数字、ハイフン (-) およびアンダースコア (_) を使用できます。トピック名は AWS アカウント内で一意である必要があります。トピックを削除すると、その同じトピック名を再使用できます。トピックが作成されると、Amazon SNS は一意の ARN (Amazon リソース名) をトピックに割り当てます。ARN には、サービス名 (SNS)、リージョン、ユーザーの AWS ID、トピック名が含まれます。ARN は、トピック作成の API コールの一部として返されます。発行者またはサブスクライバーが、トピックに対するアクションを実行する必要がある場合、この一意のトピック ARN を参照します。

トピック名が「mytopic」、トピックの作成者の AWS アカウント ID が「123456789012」、ホストされるリージョンが米国東部リージョンである場合の ARN は次のようになります。

arn:aws:sns:us-east-1:1234567890123456:mytopic 注意: ユーザーは、独立したコンポーネントからトピック ARN を構築することはできません。必ず、API コールから返される名前を使用して、トピックを作成してください。

Q: Amazon SNS で実行可能な操作はどのようなもので、誰が実行できますか?

Amazon SNS はシンプルな API のセットを提供して、トピックの所有者、サブスクライバー、公開者のためのイベント通知を可能にします。

所有者のオペレーション:

  • CreateTopic – 新規トピックの作成
  • DeleteTopic – 以前作成されたトピックの削除
  • ListTopics – 特定のユーザー (AWS ID) に所有されたトピックのリスト
  • ListSubscriptionsByTopic – 特定のトピックに対するサブスクリプションのリストの表示
  • SetTopicAttributes – 発行者やサブスクライバーのアクセス許可の設定や変更、サポートされるトランスポートなど、トピックの属性の設定や変更
  • GetTopicAttributes – トピックの既存の属性の取得/閲覧
  • AddPermission – 選択されたユーザーに特定のアクションのアクセス許可を付与
  • RemovePermission – 選択されたユーザーから特定のアクションに対する許可を削除

サブスクライバーのオペレーション:

  • Subscribe – 特定のトピックに新規サブスクリプションを登録し、登録時には Amazon SNS からの確認メッセージが生成される
  • ConfirmSubscription – サブスクリプション確認メッセージへの応答。サブスクライブしたトピックから通知を受けるサブスクリプションリクエストの確認
  • UnSubscribe – 登録済みのサブスクリプションの解除
  • ListSubscriptions – 特定のユーザー (AWS ID) が所有するサブスクリプションをリスト

公開者のオペレーション:

  • Publish – トピックに新しいメッセージをパブリッシュ

Q: サブスクリプションをリストするために 2 つの異なる API が存在するのはなぜですか?

サブスクリプションをリストするための 2 つの API は、次の異なる機能を実行し、異なる結果を返します。

  • ListSubscriptionsByTopic API を使用すると、トピックの所有者は、トピックへの登録がアクティブなサブスクライバー全員のリストを表示できます。
  • ListSubscriptions API を使用すると、ユーザーは、すべてのアクティブなサブスクリプション (1 つ以上のトピック) のリストを表示できます。

Q: 通知を受け取るための配信や転送の形式には、どのような種類が何がありますか?

“SQS” – ユーザーは、SQS 標準キューもしくは FIFO キューをエンドポイントとして指定できます。通知メッセージは、Amazon SNS により指定されたキューにを挿入されます (サブスクライバーは、ReceiveMessage や DeleteMessage などの SQS API を使用して、この通知を処理できます)。

  • “HTTP”と“HTTPS” – サブスクライバーはサブスクリプション登録時に URL を指定します。通知は、HTTP POST を通じて、指定された URL に届けられます。
  • 「E メール」と「JSON 形式のメール」– メッセージが E メールとして、登録されたアドレスに送信されます。JSON 形式のメールを選択すると、通知が JSON オブジェクトとして送信されます。E メールを選択すると、テキストベースの E メールとして送信されます。
  • “SQS” – ユーザーは、SQS 標準キューをエンドポイントとして指定できます。通知メッセージは、Amazon SNS により指定されたキューに挿入されます (サブスクライバーは、ReceiveMessage や DeleteMessage などの SQS API を使用して、このメッセージを処理できます)。
  • “SMS” – メッセージは、SMS テキストメッセージとして、登録された電話番号に送信されます。

Q: トピックの所有者は、作成または所有するトピックで許可されるトランスポートをコントロールできますか?

トピックの所有者はアクセスコントロールポリシーを通じて適切な権限を設定することにより、自身のトピックに対する特定のトランスポートを設定できます。

Q: 所有者は、アクセスコントロールポリシーをどのように設定しますか?

アクセスコントロールポリシーの設定の概要については、Amazon SNS 入門ガイドをご覧ください。

Q: 単一のトピックで、複数のプロトコル/トランスポート経由のサブスクリプションをサポートできますか?

Amazon SNS トピックのサブスクライバーは、トピックがサポートする任意のトランスポートで通知を受け取ることができます。トピックは複数のトランスポート経由でのサブスクリプションと通知配信をサポートすることができます。

Q: サブスクライバーは、特定のトピックに対して発行されたメッセージのサブセットのみを選択的に受信できますか?

はい。Amazon Simple Notification Service (SNS) ではメッセージのフィルタリング機能が使用でき、よりシンプルで効率化された、Pub/Sub アーキテクチャを構築できます。メッセージのフィルタリングにより、Amazon SNS トピックのサブスクライバーは、トピックに対して発行されたすべてのメッセージを受信するのではなく、関心があるメッセージのサブセットのみを選択して受信できます。SNS サブスクリプションのフィルターポリシーの使用をモニタリングするには、自動的に収集される Amazon CloudWatch メトリクスを使用します。また、AWS::SNS::Subscription リソースタイプを AWS CloudFormation テンプレート内で使用して、SNS メッセージフィルタリングを使用するソリューションをすばやくデプロイすることもできます。詳細については、10 分間のチュートリアル、「トピックにパブリッシュされたメッセージをフィルタする」をご覧いただくか、AWS ドキュメントの「Amazon SNS でのメッセージのフィルタリング」セクションを参照してください。

Q: Amazon SNS は他の AWS のサービスと併用できますか?

Amazon SNS は、Amazon SQS、Amazon EC2、Amazon S3 といった他の AWS のサービスと共に使用することができます。次に挙げるのは、発注処理ワークフローシステムで、Amazon SNS を Amazon EC2、SQS、SimpleDB と共に使用した例です。このワークフローシステムでは、トランザクションが発生したときや、注文の処理が次の段階に進んだときに、アプリケーションのコンポーネント間でメッセージが送信されます。お客様が最初に注文を行うと、まずトランザクションが Amazon SimpleDB に記録されます。そして Amazon EC2 を実行するアプリケーションが、処理注文リクエストをお客様のクレジットカードまたは銀行の口座から引き落としを行う支払い処理システムに転送します。引き落としが承認されると、注文の確認メッセージが Amazon SNS のトピックに対して発行されます。この場合トピックには、出品者、お客様、サプライチェーンパートナーといった、さまざまな E メールまたは HTTP でのサブスクライバーが登録されています。そのトピックで Amazon SNS によって送信される通知により、支払い処理が完了したことが全員に直ちに伝えられます。また通知は、EC2 で実行される注文処理システムを構成するために利用することもできます。このシステムでは、HTTP 経由で送信された通知が、在庫システムまたは発送サービスといった関連コンポーネント内で、リアルタイムの処理を開始させることができます。Amazon SNS を Amazon SQS と統合させることによって、配信されるすべての通知が、Amazon SQS キューにも保持され、その後監査アプリケーションによって処理されます。

Q: Amazon SNS は、AWS のサービスを利用できるリージョンならばどこでも利用できるのですか?

Amazon SNS をご利用いただけるリージョンに関する最新情報は、AWS ドキュメントの「AWS のリージョンとエンドポイント」セクションをご覧ください。

Q: お客様が以前使用されたトピック名でトピックを再び作成できるようになるまで、どのくらいの時間がかかりますか?

トピック名は通常、同じ名前の以前のトピックが削除されてから約 30~60 秒後に再使用できるようになります。正確な時間は、トピック上でアクティブになっているサブスクリプション数によって異なります。サブスクライバーが少ないトピック名はすぐに再使用できるようになりますが、サブスクライバーの多いトピック名には、より長い時間がかかる場合があります。

FIFO トピック

Q: SNS の FIFO トピックとは何ですか?

標準の SNS トピックと同様に、ユーザーは、SNS FIFO トピックを使用してメッセージをトピックに発行できます。このメッセージは、サブスクライブしている一連のエンドポイントに対し配信されます。サブスクライバーに対するメッセージ配信で、その順番 (ファーストインファーストアウト) と回数 (一度のみ) が決められている場合で、SNS にそのルールを適用する場合には、SNS FIFO トピックが便利です。Amazon SNS FIFO トピックにより、順番が決められたメッセージが Amazon Simple Queue Service (Amazon SQS) FIFO キューに対し配信できるようになり、分散型アプリケーションでのメッセージの順番付けに、エンドツーエンドでの一貫性を実現できます。このサービスをご利用いただくことで、高スループットで順番が保たれたトランザクションを処理するための作業を削減でき、メッセージングのアーキテクチャを簡素化できるようになります。厳密な順序付けが不要な場合でも、Amazon FIFO トピックは Amazon SQS 標準キューにメッセージを配信することもできるため、アプリケーションを柔軟に設計できます。ユースケース例としては、銀行の取引ログ、株式相場表示、フライトトラッカー、最新価格表示、ニュース報道、在庫管理、などが挙げられます。

Q: SNS FIFO トピックおよび Kinesis Data Streams は、それぞれどのような場合に使用しますか?

SNS FIFO トピックと Kinesis Streams はともに、厳密に順番が決められた、多対多のメッセージングが求められるアプリケーションを構築するために使用できます。さらに、SNS FIFO では、最大で 100 までのサブスクライバーに対する、順番付けされた大規模なファンアウトが必要なユースケースでの、アプリケーションの統合が可能になります。一方、Kinesis Streams では、最大 5 までのサブスクライバーに対する、順番の決められたファンアウトがサポートされており、分析や異常検出などのユースケースに多く使用されます。

トランスポート

Q: ユーザーは、どのように E メール経由で配信される通知にサブスクライブすればよいですか?

特定のトピックに関する E メール通知を受け取るには、サブスクライバーがプロトコルとして「E メール」または「JSON 形式のメール」を指定して、エンドポイントとして有効な E メールアドレスを提供する必要があります。これは、AWS Management Console を使用する、または Amazon SNS API を直接呼び出して行います。その後 Amazon SNS から、確認リンクを含む E メールが指定された E メールアドレスに送信されます。また E メールアドレスをモニタリングするユーザーは、特定のトピックについての E メール通知を受け取ることを明示的に選択するよう求められます。E メール内の確認リンクをクリックし、ユーザーが受信希望を確認すると、トピックに対して発行された全メッセージが、その E メールアドレスに配信されます。

Q: E メール経由で通知を受け取るのに、Amazon SNS が 2 つの異なるトランスポートを提供するのはなぜですか?

2 つの E メールトランスポートは、顧客/エンドユーザーの 2 つの異なるタイプのために提供されています。「JSON 形式のメール」は、JSON オブジェクトとして通知を送信し、アプリケーションがプログラム的に E メールを処理するためのものです。「E メール」トランスポートは、エンドユーザーや消費者のために準備され、通知は通常のテキストベースのメッセージで、簡単に判読可能です。

Q: E メールまたは JSON 形式のメール経由で送信される通知の件名と表示名をユーザーが変更することはできますか?

Amazon SNS では、ユーザーが E メールの件名欄を Publish API コールに渡されるパラメータとして指定することが許可されており、これはパブリッシュされるメッセージごとに変えることができます。トピックの表示名は、SetTopicAttributes API を用いて設定できます。この名前は、このトピックから送信されるすべての E メールに対して適用されます。

Q: サブスクライバーは、Amazon SNS からの通知を受け取るために E メール設定を特別に設定する必要がありますか?

ほとんどの場合、ユーザーは特別な設定を行うことなく、Amazon SNS からサブスクリプションの確認と通知を受け取ることができるはずです。ただし、E メールプロバイダーのデフォルト設定、または他のユーザー固有の設定によって、E メールが誤って迷惑メールフォルダに転送される可能性はあります。Amazon SNS から送信される確認メッセージや通知を確実に閲覧できるようにするには、no-reply@sns.amazonaws.com を連絡先リストに追加するか、Amazon SNS からのメッセージが迷惑フォルダに入っていないかどうかを確認します。

Q: エンドポイントとして SQS キューを通過する場合、サブスクライブ前にユーザーがキューを作成する必要はありますか? そのキューにはどのようなアクセス許可が必要ですか?

SQS キューでトピックをサブスクライブする前に、ユーザーは SQS コンソールを使用してキューを作成する必要があります。このキューをコンソールで選択し、メニューバーの [Queue Actions] のドロップダウンの一覧から [Subscribe Queue to SNS Topic] を選択します。登録のダイアログボックスで、[Choose a Topic] ドロップダウンの一覧からトピックを選択し、[Subscribe] ボタンをクリックします。ステップバイステップの全手順については、Amazon SNS のドキュメントを参照してください。

Q: Amazon SNS の通知を受け取るために、デベロッパーが Amazon SQS のキューで行うべきセットアップについて教えてください。

Amazon SNS が SQS キューへ通知を送信できるようにするために、デベロッパーは「SQS」をトランスポートとして、また有効な SQS 標準キューをエンドポイントとして指定するトピックをサブスクライブするように設定します。SQS キューで Amazon SNS からの通知を受信できるようにするには、SQS キューの所有者がその SQS キューで Amazon SNS のトピックをサブスクライブし、メッセージがキューに送信されるように設定する必要があります。

ユーザーが、サブスクライブされる Amazon SNS トピックと、通知を受け取る SQS キューの両方を所有していれば、何も必要ありません。トピックに対して発行されるどのようなメッセージも、自動的に指定された SQS キューへ送信されます。SQS キューを所有するユーザーがトピックの所有者でない場合、Amazon SNS は、サブスクリプションリクエストに対する明示的な確認を求めます。

SQS キューをトピックにサブスクライブする、および SQS キューのためにアクセスコントロールポリシーを設定することに関する詳細については、Amazon SNS のドキュメントを参照してください。。

Q: 複数の SQS キューに対して、どのように同一のメッセージをファンアウトできますか?

まず、SNS を使用して SNS トピックを作成します。次に、複数の SQS 標準キューを作成し、SNS トピックにサブスクライブします。その後、メッセージを SNS トピックに送信するたびにメッセージが複数の SQS キューへ同時に送信されます。つまり、トピックに登録しているすべての SQS キューに、SNS からメッセージが届きます。

Q: Amazon SNS が送信する構造化通知メッセージの形式は何ですか?

HTTP、HTTPS、JSON 形式のメール、および SQS トランスポートプロトコル経由での配信のために Amazon SNS が送信する通知メッセージは、シンプルな JSON オブジェクトで構成され、以下の情報が含まれます。

  • MessageId: UUID (Universally Unique Identifier)で、パブリッシュされる通知ごとに固有です。
  • Timestamp: 通知が発行された時刻 (GMT)
  • TopicArn: このメッセージが発行されたトピック
  • Type: 通知配信用「通知」に設定された、配信メッセージの種類
  • UnsubscribeURL: このトピックからエンドポイントのサブスクライブを解除し、これ以上通知を受信しないようにするためのリンク
  • Message: 発行者から受信するメッセージのペイロード (本文)
  • Subject: 件名欄 – オプションのパラメータとして発行 API に含まれる場合、メッセージと共に呼び出される
  • Signature: メッセージ、メッセージ ID、件名 (存在する場合)、タイプ、タイムスタンプ、トピック値の Base64 でエンコードされた「SHA1withRSA」署名。
  • SignatureVersion: 使用される Amazon SNS 署名のバージョン。

「E メール」トランスポート経由で送信される通知メッセージには、発行者から受信するペイロード (メッセージ本文) のみが含まれます。

Q: ユーザーは、どのように SMS 経由で配信される通知にサブスクライブすればよいですか?

以下の「SMS 関連の質問」セクションを参照してください。

セキュリティ

Q: トピックに送信されるメッセージをユーザーはどのように保護できますか?

Amazon SNS 宛のすべての API コールは、ユーザーの AWS ID および署名に対して検証されます。さらに AWS では、ユーザーが AWS の安全な SSL エンドポイントに接続することによって、通信回線上でのデータの安全を確保することが推奨されています。

Q: 誰がトピックを作成できますか?

トピックは、Amazon SNS にサインアップした、有効な AWS ID を持つユーザーのみが作成できます。トピックを作成するための最も簡単な方法は、AWS マネジメントコンソールを使用することです。CreateTopic API を使用して作成することもできます。AWS マネジメントコンソールは http://aws.amazon.com/console からご利用いただけます

Q: 複数のユーザーが単一のトピックに発行することはできますか?

トピックの所有者は、2 人以上のユーザー (有効な AWS ID を持つ) がトピックに発行することを可能にする明示的な許可を設定できます。デフォルトでは、トピックの所有者のみがトピックに発行する許可を持っています。

Q: 所有者は、どのようにトピックに対するパブリッシュ許可またはサブスクライブ許可をどのように付与または取り消すことができますか?

AddPermission および RemovePermission API は、トピックに対する許可を追加または取り消すためのシンプルなインターフェイスをデベロッパーに提供します。ただし、条件付きのアクセス、およびより高度なユースケースについては、ユーザーがアクセスコントロールポリシーを使用して、許可を管理するようにしてください。許可を管理するための最も簡単な方法は、AWS マネジメントコンソールを使用することです。AWS マネジメントコンソールは http://aws.amazon.com/console からご利用いただけます

Q: トピックの所有者は、受信者に対してどのようにアクセスを提供しますか? サブスクライバーは有効な AWS ID を所有する必要がありますか?

Amazon SNS は、AWS ID がある、および AWS ID のないユーザーの両方が通知を容易に受け取れるようにします。トピックの所有者は、アクセスコントロールポリシーを使用して、トピックに対する適切なアクセス許可を設定することにより、サブスクライバーのアクセス許可の付与や制限を行うことができます。ユーザーは、以下の 2 通りのやり方で Amazon SNS から通知を受けることができます。

  • AWS ID を所有するユーザー: 有効な AWS ID (AWS ID 取得について詳しくはこのリンクをご覧ください) を所有するサブスクライバーは、トピックの所有者が許可していれば、任意のトピックを直接サブスクライブできます。AWS ID は、サブスクリプション登録をする際に認証されます。
  • それ以外のユーザー: トピックの所有者は、AWS ID を持たないユーザーのために、サブスクライブとエンドポイントの登録を行うことができます。

いずれの場合でも、サブスクリプションエンドポイントの所有者は、Amazon SNS が送信する確認メッセージに返信することによって、サブスクリプションを明示的に選択し、確認する必要があります。

Q: Amazon SNS は、API コールをどのように認証しますか?

Amazon SNS に対して行われたすべての API コールは、リクエストが AWS ID アカウントのシークレットキーで署名されていることを要求し、そのリクエストに含まれる署名を検証することによって信憑性を確認します。

Q: Amazon SNS は、どのようにサブスクリプションリクエストを認証して、通知がスパムとしてユーザーに送信されないようにしますか?

サブスクリプション登録の一環として、Amazon SNS は、通知が有効で、登録済みのサブスクライバーやエンドポイントのみに送信されるようにします。スパムを防ぎ、サブスクライバーエンドポイントが特定のトピックからの通知の受信を希望していることを確実にするために、Amazon SNS は 2 要素ハンドシェイクを使用したサブスクライバーからの明示的なオプトインを必須としています。

i.ユーザーが最初に Subscribe API を呼び出してエンドポイントを登録するときに、Amazon SNS は指定されたエンドポイントに確認メッセージを送信します。

ii.エンドポイントで確認メッセージを受け取ると、サブスクライバーは有効な応答を送信することによって、サブスクリプションリクエストを確認する必要があります。その場合に限り、Amazon SNS はサブスクリプションリクエストが有効であるとみなします。問い合わせに対する応答がない場合、Amazon SNS はそのエンドポイントに対していかなる通知も送信しません。サブスクリプションの確認の正確なメカニズムは、選択されるトランスポートプロトコルによって異なります。

  • HTTP または HTTPS 通知では、Amazon SNS は確認メッセージ (トークンを含む) を指定された URL に POST します。URL をモニタリングしているアプリケーションでは、トークンと共に ConfirmSubscription API を呼び出す必要があります。
  • E メールや JSON 形式のメールでの通知の場合、Amazon SNS は指定されたアドレスに、埋め込まれたリンクを含む E メールを送信します。ユーザーは埋め込まれたリンクをクリックし、サブスクリプションリクエストを確認する必要があります。
  • SQS 通知の場合、Amazon SNS は、トークンを含む確認メッセージを指定したキューに投入します。キューをモニタリングしているアプリケーションでは、トークンと共に ConfirmSubscription API を呼び出す必要があります。

注意: 上記で説明された明示的な「オプトイン」の手順は、お客様が Amazon SQS キューを Amazon SNS トピックに登録し、両者が同一の AWS アカウントで「所有」されているという特殊な場合では必要ありません。

Q: 確認の待機中、サブスクリプションリクエストはどれくらいの期間保留されますか?

サブスクリプションリクエスト時にエンドポイントに送信された確認メッセージに含まれるトークンの有効期限は 2 日間です。

Q: 誰がトピックの許可を変更できますか?

トピックの所有者のみが、そのトピックに対するアクセス許可を変更できます。

Q: ユーザーは、通知メッセージが Amazon SNS から送信されることをどのように検証できますか?

通知の信憑性を確実にするため、Amazon SNS は、暗号学的にセキュアで、非対称のメカニズム (証明書に基づくプライベート/パブリックキーペア) を使用してすべての通知配信に署名します。Amazon SNS は、その証明書を周知の場所 (例: 米国東部リージョンには http://sns.us-east-1.amazonaws.com/SimpleNotificationService.pem) にパブリッシュし、その証明書のプライベートキーでメッセージに署名します。デベロッパー/アプリケーションは、証明書を取得して、証明書のパブリックキーで通知の署名を認証することで、通知が実際に Amazon SNS から送信されたものであることを確認します。証明書の場所ついて詳しくは、Amazon SNS の詳細ページをご覧ください。

Q: 発行者もメッセージに署名する必要がありますか?

Amazon SNS は、秘密の AWS キーでメッセージに署名することによってメッセージを有効にするよう、AWS ID を保有する発行者に求めます。その後署名は Amazon SNS によって認証されます。

Q: 発行者やサブスクライバーが SSL を使用してメッセージを保護できますか?

はい。発行者もサブスクライバーも、SSL を使用してチャネルを保護して、メッセージを送信したり受信したりできます。発行者は HTTPS 経由で Amazon SNS に接続し、SSL チャネル経由でメッセージを発行できます。サブスクライバーは、サブスクリプションの登録時に SSL が有効になっているエンドポイントを登録します。その後通知は、SSL チャネルを経由して、そのエンドポイントへ配信されます。

Q: Amazon SNS が登録されたエンドポイントに通知を送信できるようにするには、サブスクライバーにどのようなアクセス許可が必要ですか?

通知を受け取るエンドポイントの所有者は、そのエンドポイントへメッセージを送信する許可を Amazon SNS に付与する必要があります。

Q: サブスクリプションはどのように解除できますか?

サブスクライバーのサブスクリプションは、サブスクリプションリクエストを確認するために使用されたメカニズムに応じて、トピックの所有者、サブスクリプションの所有者、またはその他によって解除できます。

  • ConfirmSubscription API コールに対する呼び出しで True に設定された AuthenticateOnUnsubscribe フラグを使って確認されたサブスクリプションは、トピックの所有者またはサブスクリプションの所有者のみが解除できます。
  • AuthenticateOnUnsubscribe フラグが True に設定されることなく、匿名でサブスクリプションが確認された場合は、匿名でサブスクリプションを解除できます。

サブスクリプションの所有者によってサブスクライブが解除される場合を除き、すべての場合において、最終のキャンセル確認メッセージがエンドポイントに送信されます。これによって、エンドポイントの所有者は (サブスクリプションの解除が意図しないものまたはエラーである場合) トピックの再サブスクライブを簡単に登録できます。ConfirmSubscription API について詳しくは、Amazon SNS ドキュメントをご覧ください。

コンプライアンス

Q: Amazon SNS は HIPAA に準拠していますか?

はい。AWS HIPAA コンプライアンスプログラムには、Amazon SNS が HIPAA 対応サービスとして含まれています。AWS と事業提携契約 (BAA) を締結している場合は、Amazon SNS を使用して HIPAA 準拠アプリケーションを構築できるようになりました。BAA を締結していない、または HIPAA 準拠アプリケーションに対する AWS の使用に関する質問がおありの場合は、詳細について AWS にお問い合わせください。Amazon SNS のモバイルプッシュ通知と SMS 機能は、サービスの HIPAA の適格外になるため保護されるべき医療情報 (PHI) の送信には不適切である点にご注意ください。

詳細は以下のリソースをご覧ください。

Amazon SNS が対象範囲に含まれるコンプライアンスプログラムの最新リストについては、コンプライアンスプログラムによる AWS 対象範囲内のサービスを参照してください。

Q: 他に Amazon SNS が準拠しているものはありますか?

SNS およびその他の AWS のサービスに関する最新情報については、コンプライアンスプログラムによる AWS 対象範囲内のサービスを参照してください。

信頼性

Q: Amazon SNS に発行されたデータにはどのくらいの耐久性がありますか?

SNS は、受け取るすべてのメッセージのために耐久性の高いストレージを提供します。発行リクエストを受け取ると、SNS は送信者にリクエストの受信確認を送る前に、メッセージの複数の (ディスクへの) コピーを複数のアベイラビリティーゾーンに保存します。各 AWS リージョンには、アベイラビリティーゾーンという複数の独立したロケーションがあります。まれなこととして、あるゾーンで障害が発生しても、SNS の機能とメッセージの耐久性は途絶えることなく継続されます。

Q: 通知に 2 つ以上のメッセージが含まれますか?

いいえ。すべての通知メッセージには、単一の発行済みメッセージが含まれます。

Q: サブスクライバーはメッセージを何回受信しますか?

ほとんどの場合、メッセージはお客様のアプリケーションに対して 1 度のみ配信されますが、Amazon SNS の分散型の特質と転送ネットワークの状況により、場合によってはサブスクライバー側で二重にメッセージを受け取る可能性があります。デベロッパーは、メッセージの受信の重複によってエラーや不整合が生じないようにアプリケーションを設計する必要があります。

Q: メッセージは発行された正確な順序で配信されますか?

Amazon SNS のサービスでは、トピックに対して発行された順序で、発行者からのメッセージを配信しようと試みます。ただしネットワーク上の問題により、結果的にサブスクライバー側にメッセージの順番が入れ替わって届く可能性もあります。

Q: 発行後にメッセージを削除できますか?

いいえ。トピックに対してメッセージが正常に発行されると、それを取り消すことはできません。

Q: Amazon SNS では、サブスクライブされたエンドポイントに必ずメッセージが配信されますか?

はい。サブスクライブされたエンドポイントがアクセス可能な限り、必ず配信されます。クライアント側またはサーバー側のエラーにより Amazon SNS がサブスクライブされたエンドポイントにアクセスできない場合、メッセージ配信は失敗します。エンドポイントの所有者によってサブスクライブされたエンドポイントが削除された場合、または Amazon SNS がこのエンドポイントにメッセージを配信できないようにアクセス権限が変更された場合には、クライアント側でエラーが発生します。Amazon SQS や AWS Lambda などのサブスクライブされたエンドポイントを支えるサービスが利用できない場合には、サーバー側でエラーが発生します。Amazon SNS がクライアント側のエラーを受信した場合、または対応する再試行ポリシーで指定された再試行回数を超えてサーバー側のエラーを受信し続けた場合、Amazon SNS はメッセージを破棄します。ただし、デッドレターキューがサブスクリプションにアタッチされている場合は除きます。詳細については、「メッセージ配信の再試行」と「Amazon SNS デッドレターキュー」をご参照ください。

Q: サブスクライブしているエンドポイントが利用できない場合、Amazon SNS メッセージはどうなりますか?

最初の試行でメッセージが正常に配信されない場合、Amazon SNS では再試行ポリシーに従って、次の 4 段階の処理が行われます。(1) 試行間で遅延なしでの再試行、(2) 最小遅延間隔での再試行、(3) バックオフモデルを使用した再試行、(4) 最大遅延間隔での再試行です。メッセージ配信の再試行ポリシーがすべて使用されると、Amazon SNS はメッセージをデッドレターキュー (DLQ) に移動できます。詳細については、「メッセージ配信の再試行」と「Amazon SNS デッドレターキュー」を参照してください。

ワールドワイド SMS

Q: 新しいワールドワイド SMS にはどのような機能がありますか?

Amazon SNS は、SMS (テキスト) メッセージを 200 以上の国に配信するために使用でき、以前ののように受信者が明示的にオプトインすることを義務付けません。電話番号に SMS メッセージを送信する場合、現地の法律と規制により求められているのであれば、受信者から事前に許可を得ておく必要があります。さらに、SMS メッセージにトランザクションとしてマーク付けして、確実な配信のために最適化したり、プロモーションとしてマーク付けしてコスト節減のために最適化したりすることもできるようになりました。また、不注意による限度超過を予防するため、アカウントレベルおよびメッセージレベルの使用クォータを設定することができます。

Q: どのようなときに SMS メッセージをトランザクションとしてマーク付けすべきですか?

ビジネスにとって優先度の高い SMS メッセージをトランザクションとしてマーク付けすべきです。こうすることにより、ワンタイムパスワード (OTP) や PIN といった内容のメッセージを、最高度の配信信頼性を持つルートを経由して配信させることができます。米国以外の国では、これらのルートの料金はプロモーションメッセージングに比べて高くなる傾向があります。マーケティング用のメッセージをトランザクションとしてマークすることはしないでください。一部の国では現地の規制ポリシーに違反する可能性があり、不正利用としてマークされてアカウントが停止される場合があります。

Q: どのような場合に SMS メッセージをプロモーションとしてマークすればよいですか?

マーケティング用メッセージングの SMS メッセージはプロモーションとしてマークします。Amazon SNS では、合理的な配信信頼性を有しながらも、最も信頼性の高いルートに比較すると大幅に安価なルートによってメッセージが送信されるようにします。これにより、Amazon SNS では現地の法律と規制を遵守しながらメッセージを処理し、配信することができます。

Q: アカウントレベルおよびメッセージレベルの使用クォータとは何ですか? また、どのように機能しますか?

使用クォータは AWS アカウントに対して、および個別のメッセージに対して指定でき、SMS メッセージの送信コストにのみ適用されます。

1 アカウントあたりの使用クォータはデフォルトで (指定されない場合) 1.00 USD/月です。クォータの引き上げをご希望の場合は、SNS クォータ引き上げケース を送信してください。[新しい制限値] には、ご希望の毎月の使用クォータを入力してください。[申請理由の説明] フィールドには、SMS の月次使用制限の引き上げをリクエストしていることを記載してください。

Amazon SNS は、SMS トラフィックについて発生した合計コストが暦月の使用クォータ未満である間、パブリッシュされる SMS メッセージを送信します。使用クォータに達すると、使用クォータが引き上げられるか、新しい暦月の開始まで、Amazon SNS からメッセージが配信されなくなります。同様に、個別のメッセージに対して使用クォータを指定することもできます。コストがクォータ以下である場合にのみ、Amazon SNS からメッセージが送信されます。アカウントレベルの使用クォータが超過した場合、メッセージレベルの使用クォータが超過したかどうかにかかわらず、Amazon SNS から SMS メッセージが送信されなくなります。

Q: 双方向 SMS はサポートされていますか?

現地の規制により要求されている場合のオプトアウトを除き、現時点で Amazon SNS は双方向 SMS をサポートしていません。

Q: SMS メッセージを送信する前にその電話番号を SNS トピックにサブスクライブする必要がありますか?

メッセージの送信先となる電話番号を Amazon SNS トピックにサブスクライブする必要はなくなりました。Amazon SNS コンソール、または Amazon SNS API の Publish リクエストを使用して、電話番号にメッセージを直接パブリッシュすることが可能になりました。

Q: AWS では、購入用のショートコードを発行していますか?

はい。ご使用のアカウントに割り当てられ、お客様のみが使用できる専用ショートコードを予約できます。

ショートコードを予約するには、AWS サポートセンターでケースを作成します。 詳細については、Amazon SNS デベロッパーガイドの「SMS メッセージングの専用ショートコードを予約する」を参照してください。

料金については、「ワールドワイド SMS の料金」を参照してください。

Q: AWS では、購入用のロングコードを発行していますか?

はい。Amazon SNS で使用するためにロングコードを購入できます。詳しくはこちらを参照してください。

Q: SMS 通知は特定の発信番号から届きますか?

Amazon SNS は、お客様のアカウント用に設定された番号を使用します。専用ショートコード、専用ロングコードの優先順位で番号を使用します。専用の番号をお持ちでない場合は、Amazon SNS は代わりに共有セットの番号で SMS 通知を送信します。共有セットを使用する場合、Amazon SNS は特定の電話番号に対して同じ番号でメッセージを送信するよう試みます。これは「スティッキー送信者 ID」と呼ばれます。ネットワークの状態や利用可能なスループットといった要因により、別の番号が使用されることもあります。

Amazon SNS でメッセージを送信するために使用する発信元 ID を管理するには、専用のショートコードまたはロングコードを予約してください。1 つまたは複数の番号を予約することで、利用者はお客様の企業からのメッセージを簡単に見分けられるようになります。詳細については、Amazon SNS デベロッパーガイドの「SMS メッセージングの専用ショートコードを予約する」または「SMS メッセージングの専用ロングコードを予約する」を参照してください。

Q: Amazon SNS のワールドワイド SMS ではどの国がサポートされていますか?

Amazon SNS では 200 を超える国がサポートされており、その範囲は拡大を続けています。サポートされている発信側の国の包括的なリストについては、SMS でサポートされている国のリストを参照してください。 中国に送信される SMS メッセージについては、当社あてにご連絡ください。

Q: ワールドワイド SMS は、どの AWS リージョンでサポートされていますか?

Amazon SNS を使用して SMS を送信するアプリケーションをホストできるリージョンの最新リストについては、Amazon SNS ドキュメントの SNS がサポートするリージョンと国のページを参照してください。

Q: AWS 側の電話番号は変わりますか?

はい。Amazon SNS は、アカウントに設定された専用の番号をショートコード、ロングコードの優先順位で使用します。専用の番号が設定されていない場合は、共有セットの番号を使用します。

Q: 同じキャリアのデバイスでも異なる電話番号からメッセージが届く場合があるのはなぜですか?

Amazon SNS は、アカウントに設定された専用の番号をショートコード、ロングコードの優先順位で使用します。専用の番号が設定されていない場合は、共有セットの番号を使用します。

Q: 他の国にメッセージを送信する場合の電話番号はどのような形式になりますか?

AWS では、「宛先」および「発信者」フィールドの両方 (該当する場合) で、常に E.164 番号フォーマットを使用することが強く推奨されています。サポートされている国の包括的なリストについては、SMS サポート対象国のリストを参照してください。

Q: Amazon SNS では、電話番号が、携帯電話、固定電話、または VoIP であるかどうかが判定されますか?

いいえ。現在 Amazon SNS では、電話番号が携帯電話、固定電話、または VoIP であるかどうかは判定されません。

Q: SMS メッセージの時間ベース配信または予約配信はサポートされていますか?

いいえ。Amazon SNS では、時間ベース配信や予約配信はサポートされていません。

Q: SMS メッセージの配信ステータスをどのように追跡できますか?

Amazon SNS の配信ステータス機能を有効にすることで、各メッセージについて、メッセージ ID、送信時刻、送信先電話番号、後処理、後処理の理由 (該当する場合)、料金、ドウェル時間についての情報を取得できます。

Q: MMS はサポートされていますか?

いいえ。Amazon SNS は現在 MMS メッセージをサポートしていません。

Q: Amazon SNS からの SMS メッセージを受信するにはどれくらいのコストがかかりますか?

SMS メッセージ受信のコストは、受信側の無線またはモバイルキャリアのデータおよびメッセージングに関するプランによって異なります。

Q: 受信者は、AWS からの SMS メッセージ受信をどのようにしてオプトアウトするのですか?

受信者は、以下のいずれかでメッセージに返信することで、自分のデバイスを使用してオプトアウトできます。

  • ARRET (フランス語)
  • CANCEL
  • END
  • OPT-OUT
  • OPTOUT
  • QUIT
  • REMOVE
  • STOP
  • TD
  • UNSUBSCRIBE

オプトアウトするには、Amazon SNS がメッセージの配信に使用したものと同じロングコードまたはショートコードに受信者が返信する必要があります。オプトアウト後は、受信者の電話番号をオプトインしない限り、受信者は AWS アカウントから配信される SMS メッセージを受信しなくなります。

Q: 受信者のデバイスがグローバル SMS を「オプトアウト」したことは、どのように確認できますか?

アカウントでオプトアウトした番号のリストが SNS コンソールに表示されます。加えて、Amazon SNS API にはオプトアウトした番号をリスト表示する ListPhoneNumbersOptedOut リクエストが用意されています。

Q: ユーザーがオプトアウトした場合、その番号の SNS トピックのサブスクリプションも自動的に解除されますか?

いいえ。オプトアウトによって、Amazon SNS トピックのサブスクリプションから電話番号が解除されるのではなく、サブスクリプションが無効化されます。つまり、電話番号をオプトインする場合、その番号のトピックへのサブスクリプションを再登録する必要もありません。

Q: エンドユーザーに届く SMS メッセージをどのように確認できますか?

配信ステータス機能を使用して、SMS メッセージの最終処理状況についての情報を取得できます。この機能、およびその使用方法に関する詳細については、AWS のドキュメントを参照してください。

Q: Amazon SNS に SMS メッセージの配信確認機能はありますか?

AWS の配信ステータス機能で、宛先キャリアから受信した配信確認に基づく情報を利用できます。配信ステータス機能とその使用方法に関する詳細については、AWS のドキュメントを参照してください。

Q: Google Voice や Hangouts などの VoIP サービスへの配信はサポートされていますか?

はい。Amazon SNS は、SMS メッセージを受信できる VoIP サービスへの配信をサポートしています。

10 桁のロングコード (10DLC)

Q.10DLC とは何ですか?

A.10DLC はテキストメッセージ (SMS) を米国のコンシューマーに送付する際に発信元アイデンティティとして使用できる、10 桁のロングコードです。1 秒あたり 100 テキストメッセージ (TPS) の最大スループットをサポートします。AWS がお客様に割り当てられたスループットを決定するのではなく、米国のキャリアが 10DLC に登録する際にスループットを割り当てます。10DLC 番号を使用するために、キャリアはお客様に、会社とユースケースについての情報を提示するよう求めます (10DLC キャンペーンとも呼ばれます)。

Amazon Pinpoint コンソールで、お客様の会社と 10DLC キャンペーンを登録する必要があります。登録が完了し、お客様のアカウントでアクティブな 10DLC が利用できるようになると、この番号を発信元 ID として使用し、Amazon SNS を用いて SMS を送信することができます。Amazon はキャンペーンレジストリ (TCR) を通じて登録をサポートしています。TCR とは、キャリアがブランド情報や 10DLC キャンペーン詳細を検証するために使用するサードバーティーの中核となるエンティティです。

Q: 10DLC キャンペーンの登録にかかる時間を教えてください。

A: 登録が即時に完了する場合もあります。例えば、以前キャンペーンレジストリ (TCR) に登録していたお客様の場合、すでに情報が存在する可能性があります。ただし、キャンペーンによっては、承認を受け取るまでに 1 週間以上を要する場合があります。TCR によって会社と 10DLC キャンペーンが承認されると、10DLC 番号を購入してキャンペーンに関連付けることができます。10DLC 番号を購入すると、アクティブ化に最長 1 週間かかる場合があります。詳細については、Amazon SNS デベロッパーガイドの 10DLC を参照してください。

Q.未登録の P2P ロングコードを購入して、米国の電話番号に A2P SMS を送信できますか?

A.いいえ。2021 年 2 月 16 日現在、AWS から、SMSが有効な未登録の P2P (person-to-person) ロングコードは購入できません。2021 年 6 月 1 日より、Amazon SNS では、米国を送信先とする未登録の米国のロングコードを経由した A2P (application-to-person) の SMS メッセージ送信がサポートされなくなります。それに代わり、米国を送信先とする発信元 ID として、ショートコード、10DLC、通話料無料番号を購入して使用することができます。詳細については、Amazon SNS デベロッパーガイドの発信番号をご参照ください。

Q:AWS アカウントにある未登録の米国ロングコードを削除する必要はありますか?

A.はい。2021 年 6 月 1 日、キャリアでは、未登録のロングコードを通じて送られたメッセージは米国の送信先に送信されなくなります。他の目的 (他の AWS 製品を使用した音声テレフォニーなど) で必要ではない場合、アカウントから削除してください。SMS を送信するには、既存の未登録のロングコードを 10DLC キャンペーンと関連付けることで 10DLC 番号に変換することができます。詳細については、Amazon SNS デベロッパーガイドのロングコードを 10DLC キャンペーンに関連付けるの項目を参照してください。Amazon SNS では 10DLC キャンペーンの管理に Amazon Pinpoint を使用します。

Q.Amazon SNS や Amazon Cognito のみを使用している場合、10DLC キャンペーンを登録するために引き続き Amazon Pinpoint を使用する必要がありますか?

A.はい。Amazon Pinpoint を使用して 10DLC ブランドとキャンペーンを登録する必要があります。登録プロセスを完了し、10DLC 番号がアクティブ化されると、Amazon SNS と Amazon Cognito は SMS 送信時に発信元 ID として、お客様のアカウントで自動的に 10DLC を使用します。

Q.10DLC 番号に移行するときにロングコードを継続して使用することができますか?

A.はい。10DLC 番号に変換するときは、発信元の IDとしてロングコードを継続して使用することができます。2021 年 6 月 1 日以前に 10DLC プロセスを完了した場合、当該日付以降は、未登録のロングコードは使用できませんのでご注意ください。

Q.10DLC キャンペーンとは何ですか? キャンペーンを作成するためにどのような情報を提供する必要がありますか?

A.10DLC キャンペーンとは、お客様が顧客にテキストメッセージを送信するユースケースを指しています。例えば、顧客の請求期限になると、通知を送信する場合があります。SMS を送信する前に、テキストメッセージ送信のユースケースを登録し、10DLC 番号を 10DLC キャンペーンと関連付ける必要があります。詳細については、Amazon SNS デベロッパーガイドの 10DLC キャンペーンの登録を参照してください。Amazon SNS では 10DLC キャンペーンの管理に Amazon Pinpoint を使用します。

Q: SMS を送信するとき、Amazon SNS ではどのように AWS アカウントに関連付けられた発信元 ID から選ぶのですか?

A: メッセージを Amazon SNS に公開するとき、AWS.MM.SMS.OriginationNumber 属性を設定して登録済みの発信元 ID の 1 つを選択することができます。AWS では、メッセージ公開時に発信元 ID を指定することを推奨しています。

メッセージを Amazon SNS に公開するときに発信元 ID を指定しない場合、以下が適用されます。

  • AWS リージョンで 1 つのみの 10DLC 番号がアカウントに設定されている場合、すべての SMS メッセージは当該 10DLC 番号を使用して米国の送信先に送信されます。
  • AWS アカウントに関連付けられた発信元 ID が複数ある場合、Amazon SNS はショートコード、10DLC、通話料無料番号の順序に基づいて、発信元 ID を選択します。

発信元 ID の指定方法について詳しくは、Amazon SNS デベロッパーガイドの携帯電話への公開を参照してください。

Q.1 つのキャンペーンに複数の 10DLC 番号を使用できますか?

A: はい。複数の 10DLC 番号を 1 つのキャンペーンに関連付けることができます。ただし、複数のキャンペーンにわたって同じ 10DLC 番号を使用することはできません。

Q.10DLC 会社とキャンペーンに登録できましたが、関連付けられた 10DLC 番号が「保留」のままです。どうすればよいですか?

A.10DLC 番号が保留状態になっている場合、AWS では 10DLC キャンペーンでお客様の番号のアクティブ化処理中であることを意味します。番号をアクティブ化するには、有効かつアクティブな 10DLC ブランドと 10DLC キャンペーンが必要です。アクティブ化には、完了までに 1 週間以上かかる場合があります。10DLC 番号が 1 週間以上保留状態である場合は、AWS Support コンソールからサポートケースを申請してください。

Q.Amazon Pinpoint コンソールを使用せずに、AWS API アクションを使用して 10DLC 番号をリクエストできますか?

A.いいえ。現在、Amazon Pinpoint コンソールを使用してのみ 10DLC 番号をリクエストできます。Amazon SNS では 10DLC キャンペーンの管理に Amazon Pinpoint を使用します。

Q.AWS アカウントのさまざまな AWS リージョンにわたって 10DLC を使用するにはどうすればよいですか?

A.10DLC 会社と 10DLC キャンペーン登録は AWS アカウントに固有ですが、10DLC 番号は AWS リージョンに固有です。同じ 10DLC キャンペーンを参照する AWS リージョンでは、複数の 10DLC 番号を保有できます。

Q.特定の市外局番を含む 10DLC 番号を取得することはできますか?

A.いいえ。現在、AWS では 10DLC 番号の選択をサポートしていません。

Q.米国外に SMS を送信するための発信元 ID として 10DLC 番号を使用できますか?

A.いいえ。米国を送信先とする SMS メッセージ送信にのみ、10DLC 番号を使用してください。

Q.音声メッセージの送信に 10DLC 番号を使用できますか?

A.はい。音声メッセージの送信に 10DLC 番号を使用するには、この番号をプロビジョニングするときに音声機能を選択してください。Amazon SNS では音声メッセージをサポートしていませんのでご注意ください。しかし、これらの番号は他の AWS のサービスでご利用いただけます。

Q.10DLC キャンペーンのサンプルメッセージに変数を使用できますか?

A.はい。サンプルメッセージに変数コンテンツを使用するには、10DLC キャンペーンを登録するときに提示するテンプレートにプレースホルダ―を使用できます。例えば、「こんにちは、ジョン。君の OTP は 1234 です」とメッセージを読んでもらうには、 テンプレートには、「こんにちは、{#var1}。君の OTP は {#var2} です」と記入します。

Q.それぞれの 10DLC キャンペーンのメトリクスをキャプチャする方法はありますか?

A.現在、10DLC キャンペーンや電話番号ごとに送信したメッセージを追跡するメトリクスは Amazon SNS にはありません。詳しくは、Amazon SNS デベロッパーガイドの SMS 活動のモニタリングを参照してください。

Q.1 つの AWS アカウントから別のアカウントに 10DLC の登録を移行できますか? どのくらいかかりますか?

A.はい。所有する AWS アカウント間で 10DLC 登録を移行するには、AWS サポートセンターで、サービスクォータ増加に関するサポートケースを作成してください。2 週間以内に対応いたします。

Q.キャンペーンレジストリ (TCR) ポータルから直接会社を登録しました。AWS アカウントに同じ登録を使用できますか?

A.いいえ。Amazon SNS を使用して SMS を送信するには、Amazon Pinpoint コンソールを使用してお客様のブランドと 10DLC キャンペーンを AWS に登録する必要があります。詳しい情報は、Amazon SNS デベロッパーガイドの 10DLC を開始するをご参照ください。

Q.複数の AWS リージョンから Amazon SNS を使用して SMS メッセージを送信します。運用している AWS リージョンで 10DLC 番号を登録する方法を教えてください。

A.10DLC 番号は AWS リージョンに固有です。10DLC 会社とキャンペーンは、同じ AWS アカウントで、AWS リージョンにわたって有効です。ブランドとキャンペーンを 1 つの AWS リージョンで登録することができ、これらの 10DLC キャンペーンに新しい 10DLC 番号を購入し、必要に応じて他の AWS リージョンで使用してください。

Q.10DLC キャンペーンのスループットクォータよりも高いレートで SMS メッセージを送信するとどうなりますか?

A.スループットクォータを超過すると、AWS アカウントではスロットリングエラーが発生します。スループットクォータは以下のように分類されています。

  • AWS 全般的なリファレンスの Amazon SNS エンドポイントとクォータで定める、SMS のアカウントレベルの配信レート。
  • Amazon SNS デベロッパーガイドの 10DLC で説明する、10DLC キャンペーン機能に基づくスループットクォータ。

Q.2 つの異なる AWS アカウントに会社を登録するにはどうすればよいですか?

A: 10DLC 会社とキャンペーンは、単一の AWS アカウント内に存在します。複数のアカウントを保有している場合は、それら他のアカウントと主要アカウントを関連付けて、それらのアカウントのいずれかの 10DLC 番号を使用することができます。詳しくは、Amazon SNS デベロッパーガイドの 10DLC クロスアカウントアクセスを参照してください。Amazon SNS では 10DLC キャンペーンの管理に Amazon Pinpoint を使用します。

Q: 10DLC メッセージに Tiny URL を使用できますか?

A: いいえ。キャリアは、bit.ly のようなサービスが提供する Tiny URL の使用を許可していません。AWS は会社のドメインと一致する、完全な URL を使用することを推奨しています。もしくは、カスタムまたはバニティードメインを提供し、メッセージを送信するブランドと明らかに関連する URL 短縮サービスを使用することができます。10DLC キャンペーン登録期間中、サンプルメッセージにこの URL 例を必ず提示してください。

Q: Amazon SNS を使用して SMS を送信し、「OriginationNumber」属性を設定していません。AWS アカウントに複数のキャンペーンがある場合、Amazon SNS はどの 10DLC キャンペーンを使用しているのかをどのように判断するのですか?

A.AWS アカウントに複数の 10DLC キャンペーンがある場合、AWS では、Amazon SNS を通じてメッセージを送信するときに「OriginationNumber」パラメータを使用して、正しい 10DLC キャンペーンを使用することを推奨しています。このパラメータを指定しない場合、Amazon SNS は発信元の ID を選択します。

Amazon SNS は、ショートコード、10DLC、通話料無料番号の順序で、発信元の ID タイプを選択します。複数の特定の発信元 ID タイプを保有している場合、Amazon SNS は選択された発信元 ID タイプからランダムで 1 つを選択します。

Q.Amazon Cognito を使用して、電話番号の検証、OTP、MFAに SMS メッセージを送信します。具体的な 10DLC キャンペーンをどのように使用できますか?

A.Amazon Cognito はお客様を代理して Amazon SNS を呼び出し、SMS を送信します。AWS アカウントで 1 つの 10DLC 番号とキャンペーンを登録している場合、Amazon SNS は お客様の代わりに SMS を送信するとき、その番号を使用します。

AWS リージョンで複数の 10DLC 番号が設定されている場合、Amazon Cognito のカスタム SMS 送信者 Lambda トリガーを使用して、Amazon SNS を使用して SMS を送信するときに使用する発信元番号を選択することができます。詳しくは、Amazon Cognito デベロッパーガイドのカスタム SMS 送信者 Lambda トリガーを参照してください。

Q.Amazon Pinpoint がサポートしていない AWS リージョンから 10DLC 番号を通じて Amazon SNS を使用して SMS を送信する方法を教えてください。

A.番号が AWS リージョンで設定されると、そのリージョンで継続的に Amazon SNS を使用することができます。AWS リージョンで 10DLC を登録でき、サービスクォータ増加のサポートケースを作成し、この番号から、選択する別の AWS リージョンに移行するリクエストを提出してください。詳しくは、Amazon SNS デベロッパーガイドの SMS メッセージング用の 10DLC 番号、通話料無料番号、P2P ロングコードのリクエストを参照してください。

SMS の料金

Q: SMS メッセージを送信するために課金される金額を教えてください。

SMS メッセージの送信料金は、受信者の国やリージョンによって異なるほか、受信者のモバイルキャリアによっても異なります。最新の料金は、SMS 料金ページでご覧いただけます。

Q: SMS メッセージの送信料金が、同じ宛先国やキャリアでも変わるのはなぜですか?

異なる国やリージョンへの SMS メッセージの送信に関連する費用は (その国やリージョン内の別のキャリア宛ての送信の場合でも)、ほぼ通知なし (またはまったく通知なし) で頻繁に変更される可能性があります。キャリアのポリシーや技術的変更に加え、地理的な問題によって、SMS メッセージの送信料金が変更される場合があります。

AWS では、SMS 料金ページに現在の SMS 送信料金を公開することで、料金の透明性を保つよう努めています。

Q: SMS メッセージが配信されなくても課金されますか?

無効な電話番号へのメッセージ送信が試行されたと宛先キャリアから報告された場合、配信が失敗していても課金されます。電話番号が無効になる理由はいくつかあります。電話番号が存在しない、受信者の口座に十分な残金がない、宛先の番号が固定電話の番号である、などです。SMS の障害は、他のシナリオでも課金されます。

Q: メッセージの長さは支払う料金に影響しますか?

はい。1 つの SMS メッセージには、最大 140 バイトの情報を含めることができます。メッセージに 140 バイトを超える情報が含まれている場合、Amazon SNS では自動的に複数のメッセージに分割されます。Amazon SNS で長いメッセージが複数の短いメッセージに分割された場合には、それぞれのメッセージに対して料金が発生します。

1 つのメッセージに含められる最大文字数は、文字のエンコード方法によって異なります。GSM-7 (GSM 03.38 とも呼ばれる) エンコーディングを使用するメッセージには、最大 160 文字を含めることができます。ASCII エンコーディングを使用するメッセージには、最大 140 文字を含めることができます。UCS-2 エンコーディングを使用するメッセージには、最大 70 文字を含めることができます。Amazon SNS を使用して SMS メッセージを送信する場合、そのメッセージ内のすべての文字をサポートする最もコンパクトなエンコーディングが自動的に選択されます。

SMS メッセージ送信に関する詳細については、Amazon Simple Notification Service デベロッパーガイドの 「SMS メッセージの送信」を参照してください。

Q: SMS メッセージ送信に AWS 無料利用枠はありますか?

いいえ。

クォータと制限

Q: トピック数または 1 トピックあたりのサブスクライバー数にクォータはありますか?

デフォルトで、SNS は 1 トピックあたり 1,000 万のサブスクリプション、アカウントあたり 100,000 のトピックが利用できます。クォータの引き上げのご要望は、サポートにお問い合わせください。

Q: メッセージには、どのような種類のデータをどれだけ使用できますか?

SMS メッセージを除いて、Amazon SNS のメッセージとして送信できるのは、最大 256 KB のテキストデータ (XML、JSON、未フォーマットのテキストなど) です。

以下の Unicode 文字を使用できます。

#x9 | #xA | #xD | [#x20~#xD7FF] | [#xE000~#xFFFD] | [#x10000~#x10FFFF]

(http://www.w3.org/TR/REC-xml/#charsets より)。

発行されるデータの 64 KB のチャンクが、1 つのリクエストとして課金されます。例えば、256 KB のペイロードを持つ単一の API コールは、4 件のリクエストとして課金されます。

SMS メッセージ

各 SMS メッセージには最大 140 バイトを含めることができ、文字制限はエンコードスキームによって異なります。例えば、1 通の SMS には以下を含めることができます。

  • 160 GSM 文字
  • 140 ASCII 文字
  • 70 UCS-2 文字

サイズ制限を超えるメッセージを発行した場合、Amazon SNS では複数のメッセージとして送信され、それぞれがサイズ制限内に合わせて調整されます。メッセージは単語の途中ではなく、全単語の境界で分割されます。1 件の SMS 発行アクションの合計サイズ制限は 1,600 バイトです。

Q: トピックに適用できるメッセージフィルターの数はいくつですか?

デフォルトでは、各リージョンでアカウントごとに 200 のフィルターポリシーをトピックに適用できます。増量する必要がある場合は、AWS までお問い合わせください。

Q: SNS と EC2 の間のクロスリージョン通信に使用すべき TCP ポートはありますか?

はい。80/443/4080/8443 以外のポートでの SNS と EC2 間のクロスリージョン通信については動作が保証されていないため、これらのポートは使用しないでください。

raw メッセージの配信

Q: raw メッセージの配信とは何ですか?

raw 形態、つまりパブリッシュした形態通りにメッセージが配信されるようにオプトインすることができます。デフォルトでは、JSON 形式でエンコードされたメッセージが配信されます。JSON 形式では、メッセージおよびトピックに関するメタデータが提供されます。サブスクリプションに「RawMessageDelivery」プロパティを設定することで、raw メッセージの配信が可能になります。このプロパティを設定するには、AWS マネジメントコンソールか SetSubscriptionAttributes API を使用します。

Q: サブスクリプションに raw メッセージの配信プロパティが設定されていない場合、デフォルトの動作はどのようになりますか?

このプロパティが設定されていない場合、デフォルトでは JSON 形式のメッセージが配信されます。これが現在の動作です。これにより、既存のアプリケーションが期待どおりに動作し続けます。

Q: raw メッセージの配信は、どの種類のエンドポイントでサポートされていますか?

raw メッセージの配信は、SQS および HTTP(S) のエンドポイントでサポートされています。Lambda、E メール、SMS のエンドポイントへの配信は、「RawMessageDelivery」プロパティと関係なくこれまでどおりに機能します。

Q: raw メッセージは、HTTP エンドポイントにどのように配信されますか?

raw 形式のメッセージが HTTP/s エンドポイントに配信されると、HTTP POST の本文にメッセージ本文が含まれます。

モバイルプッシュ通知

Q: SNS モバイルプッシュとは何ですか?

SNS モバイルプッシュでは、Simple Notification Service (SNS) を使用して、Apple、Google、Fire OS、Windows のデバイスにプッシュ通知を配信できます。中国では Baidu Cloud Push を使用して Android デバイスに配信することもできます。プッシュ通知を使用することで、インストールされているモバイルアプリケーションからユーザーに、イベントなどの通知をアプリケーションを開くことなく瞬時にポップアップ表示させることができます。例えば、スポーツアプリケーションをインストールしていてプッシュ通知を有効にしている場合、アプリケーションを実行していないときでもお気に入りのチームの最新のスコアが通知されるようになります。通知はデバイス上に表示され、ユーザーが確認するとアプリケーションが起動して詳細な情報が表示されます。ユーザーエクスペリエンスは SMS の受信に似ていますが、さらに機能が向上し、かかる費用もわずかです。

Q: プッシュ通知の送信をどのように開始できますか?

プッシュ通知はアプリケーションがインストールされているデバイス、および通知を受信するよう選択しているユーザーにのみ送信できます。SNS モバイルプッシュではプッシュ通知の送信を明示的に選択する必要はありませんが、iOS、Android、Kindle Fire オペレーティングシステムでは選択する必要があります。SNS でプッシュ通知を送信するには、アプリケーションおよびインストールされている各デバイスを SNS に登録する必要があります。詳細については、「Amazon SNS モバイルプッシュ通知の使用」を参照してください。

Q: サポートされているプッシュ通知プラットフォームは何ですか?

現在、次のプッシュ通知プラットフォームがサポートされています。

  • Amazon Device Messaging (ADM)
  • Apple プッシュ通知サービス (APNS)
  • Firebase クラウドメッセージング (FCM)
  • Windows プッシュ通知サービス (WNS): Windows 8 以降と Windows Phone 8.1 以降が対象
  • Microsoft プッシュ通知サービス (MPNS): Windows Phone 7 以降が対象
  • Baidu Cloud Push: 中国国内の Android デバイスが対象

Q: SNS 無料利用枠で送信できるプッシュ通知の数はいくつですか?

SNS 無料利用枠には 100 万件の発行と 100 万件のモバイルプッシュ配信が含まれます。したがって、毎月 100 万件までのプッシュ通知を無料で送信できます。すべてのモバイルプッシュエンドポイントへの通知が、この無料のモバイルプッシュ配信 100 万件に含まれます。

Q: プッシュ通知を有効にする際に SNS モバイルプッシュで特別な確認は必要ですか?

いいえ、必要ありません。SNS がプッシュ通知を配信してもしなくても、エンドユーザーは初めてアプリケーションを実行したときにプッシュ通知を受信するよう選択します。

Q: SNS モバイルプッシュを使用するためにクライアントアプリケーションに変更を加える必要はありますか?

SNS を使用するためにクライアントアプリケーションに変更を加える必要はありません。Baidu Cloud Push が正しく動作するには、Baidu 固有のコンポーネントがクライアントコードに追加されている必要があります。これは、SNS を使用するかどうかとは関係なく必要です。

Q: SNS トピックとモバイルプッシュの動作の仕組みを教えてください。

SNS トピックには、サポートされているプッシュ通知プラットフォームのサブスクライバーと、SMS や E メールなどの他のエンドポイントのサブスクライバーが登録できます。トピックに通知を発行すると、トピックをサブスクライブしている各エンドポイントに、SNS がメッセージの同一コピーを送信します。各プッシュプラットフォームに送信された正確なペイロードを定義するためにプラットフォーム固有のペイロードを使用している場合は、該当するプッシュ通知プラットフォームで設定されたペイロードの最大サイズを超えると発行は失敗します。

Q: 各種ターゲットプラットフォームでサポートされているペイロードサイズはどれくらいですか?

SNS では基盤となるネイティブプラットフォームでサポートされている最大ペイロードサイズがサポートされます。JSON オブジェクトを使用するとプラットフォーム固有のメッセージを送信できます。詳細については、「SNS モバイルプッシュ API の使用」を参照してください。

Q: プラットフォーム固有のペイロードの仕組みを教えてください。

トピックへ発行するときに、異なるプッシュ通知プラットフォームのエンドポイントにカスタマイズしたメッセージを送信する場合は、[Publish] ダイアログボックスで [Use different message body for different protocols] オプションを選択してメッセージを更新する必要があります。プラットフォーム固有のペイロードを使用して、各プッシュ通知サービスへ中継される正確な API 文字列を指定できます。例えば、プラットフォーム固有のペイロードを使用して、APNS 経由で iOS アプリケーションのバッジカウントを操作できます。詳細については、「Amazon SNS モバイルプッシュ通知の使用」を参照してください。

Q: 1 つのトークンで複数のトピックにサブスクライブできますか?

はい。1 つのトークンで SNS トピックに無制限にサブスクライブできます。

Q: 直接アドレス指定とは何ですか? どのような仕組みですか?

直接アドレス指定では、同一のメッセージをトピックのすべてのサブスクライバーへ送信するのではなく、1 つのエンドポイントへ通知を直接送信できます。これは、厳密にターゲットを絞ったメッセージを対象の受信者へ送信する場合に便利です。デバイストークンを SNS に登録すると、SNS がそのトークンに対応するエンドポイントを作成します。トピックへ発行するのと同じように、トークンエンドポイントに発行できます。通知のテキスト、またはアプリケーションのバッジカウントの更新などのプラットフォーム固有の機能を利用するプラットフォーム固有のペイロードを直接発行できます。直接アドレス指定は、現在プッシュ通知のエンドポイントでのみ利用可能です。

Q: SNS では SMS や E メールの直接アドレス指定がサポートされていますか?

現時点では、直接アドレス指定がサポートされているのは、モバイルプッシュエンドポイント (APNS、FCM、ADM、WNS、MPNS、Baidu) と SMS のみです。E メールによるメッセージングでは、トピックを使用する必要があります。

Q: SNS モバイルプッシュでは、通知サービスからのトークンフィードバックがどのように処理されますか?

APNS や FCM などのプッシュ通知サービスからは、期限切れの可能性のあるトークンや、新しいトークンに置き換えられた可能性のあるトークンに関するフィードバックが提供されます。APNS または FCM のいずれかが、特定のトークンの有効期限が切れているか無効であると報告した場合、SNS はそのトークンに関連付けられているアプリケーションエンドポイントを自動的に「無効」にし、イベントを通じてこの変更を通知します。具体的には、FCM はトークンが無効であることを示すだけでなく、SNS への応答でアプリケーションエンドポイントに関連付けられた新しいトークンも提供します。この場合、SNS では、関連付けられたエンドポイントが新しいトークンの値に自動的に更新され、エンドポイントが有効なままとなります。その後、この変更がイベントで通知されます。

Q: SNS モバイル通知に Google クラウドメッセージング (GCM) を使用しています。GCM が非推奨になったときはどうなりますか?

GCM デバイストークンは、新しい Firebase クラウドメッセージング (FCM) デバイストークンと完全に互換性があります。既存の GCM トークンがある場合でも、それらを使用して通知を送信できます。この記述は、今後、生成する GCM トークンにも当てはまります。詳細については、ブログ「 Google クラウドメッセージングの終了とアプリにとっての意味」をご覧ください。

Q: 既存のアプリケーションを SNS モバイルプッシュに移行できますか?

はい。コンソールインターフェイスまたは API 経由で既存のデバイストークンを Amazon SNS にバルクアップロードできます。また、関連するプッシュ通知サービスの証明書をアップロードしてアプリケーションを SNS に登録し、プロキシやアプリケーションを構成して今後の新しいトークンを SNS に登録します。

Q: Amazon CloudWatch 経由で自分のプッシュ通知をモニタリングできますか?

はい。SNS では、発行したメッセージ数、通知に成功した数、通知に失敗した数、フィルターで除外された通知数、発行したデータサイズの Cloudwatch メトリクスを発行します。メトリクスはアプリケーションごとに確認可能です。CloudWatch メトリクスは、AWS マネジメントコンソールまたは CloudWatch API 経由でアクセスできます。

Q: Amazon SNS はどのような種類の Windows プッシュ通知をサポートしていますか?

SNS は、トースト、タイル、バッジ、raw 通知 を含む、Microsoft WNS と MPNS が提供するすべての種類のプッシュ通知をサポートしています。どの種類の通知を使用するかは、TYPE メッセージ属性で指定します。デフォルトのペイロードを使用して同じメッセージをすべてのモバイルプラットフォームに送信する場合は、特に指定しない限り、Windows プラットフォームに対してはトースト通知が選択されます。プラットフォーム固有のペイロードを使用する場合には、Windows プラットフォームの通知の種類を指定する必要があります。

Q: SNS は、Windows の Raw プッシュ通知をサポートしていますか?

はい。Raw 通知を SNS 経由で送信するには、通知ペイロードをテキストとしてエンコードする必要があります。

Q: Baidu Cloud Push とは何ですか?

Baidu Cloud Push とは、Android デバイスのための、サードパーティによる代替プッシュ通知中継サービスです。Baidu Cloud Push を使用すると、開発したアプリケーションをユーザーがどの Android アプリストアからダウンロードするかを問わず、中国国内の Android ユーザーに通知を配信できるようになります。Baidu Cloud Push に関する詳細については、https://push.baidu.com/ を参照してください。

Q: Baidu 通知は、どのパブリック AWS リージョンからでも発行できますか?

はい。SNS は、すべてのパブリック AWS リージョンからの Baidu プッシュ通知をサポートしています。

Q: Baidu 通知は、どの Android アプリストアに対しても使用できますか?

はい。Baidu プッシュ通知は、どの Android アプリストアからインストールされたアプリケーションに対しても動作します。

Q: メッセージ属性とは何ですか?

メッセージ属性を使用すると、メッセージに関する構造化メタデータ項目 (タイムスタンプ、地理空間データ、署名、識別子など) を指定することができます。メッセージ属性は必須ではなく、メッセージ本文とは分かれていますが、本文とともに送信されます。この情報は、受信者がそのメッセージの扱い方をメッセージ本文を処理する前に判断するのに役立ちます。

SNS メッセージ属性は、SQS やモバイルプッシュのエンドポイントとともに使用できます。メッセージ属性に関する詳細については、SNS 入門ガイドを参照してください。

Q: SNS ではどのようなメッセージ属性がサポートされていますか?

SNS でサポートされるメッセージ属性は、エンドポイントのタイプごとに異なります。これは、各エンドポイントタイプが何をサポートするかによって決まります。

  • SQS エンドポイントの場合は、名前、型、値の 3 つからなる属性を 1 メッセージにつき 10 個まで指定できます。サポートされるタイプには、文字列、バイナリ、数値 (整数、浮動小数点、倍精度浮動小数点を含む) があります。
  • モバイルプッシュエンドポイントの場合は、各モバイルプラットフォームがサポートするメッセージ属性 (通知の種類など) を利用できます。

Q: 有効期限 (TTL) とは何ですか?

SNS で送信できるメッセージの中には、意味や価値を持つ時間が限られているものがあります。Amazon SNS では、メッセージごとに TTL (有効期限) の値を設定できるようになりました。あるメッセージが配信されず、エンドユーザーに読まれなかった場合は、TTL が経過するとそのメッセージは削除されます。TTL は秒単位で指定され、Publish コールが行われた時点が基準となります。

Q: メッセージの TTL は、どのように指定すればよいですか?

TTL は、コンソールまたは API を使用して指定できます。メッセージの発行時に、次のメッセージ属性を使用して TTL を指定します。プラットフォームごとに異なる属性があります。特定のプラットフォームに対して指定された属性は、そのプラットフォームへの通知配信のみに適用されます。

Q: デフォルト TTL とは何ですか?

SNS で使用されるデフォルトの有効期限 (TTL) は、どのモバイルプラットフォームも 4 週間です。

Q: TTL メッセージ属性は、メッセージペイロード内で指定された TTL よりも優先されますか?

はい。Google FCM と Amazon ADM では、メッセージペイロード内で TTL を指定することが認められています。TTL がメッセージペイロード内とメッセージ属性内の両方で指定されている場合は、SNS ではメッセージ属性での指定が優先されます。

Q: TTL = 0 と指定するとどうなりますか?

プラットフォームによっては、TTL = 0 は特殊なケースとして扱われます。メッセージがすぐに配信される場合もあれば、無効となる場合もあります。TTL = 0 を指定した場合は、この特殊ケースに応じた処理が行われるようにするため、メッセージは TTL = 0 のまま、SNS から該当するサービスに中継されます。

Q: どの SNS エンドポイントが TTL をサポートしていますか?

TTL を使用できるのは、APNS、APNS_Sandbox、FCM、ADM、Baidu、WNS のモバイルプッシュエンドポイントです。Microsoft MPNS では、現時点では TTL はサポートされません。TTL は、SQS、HTTP、E メール、SMS のエンドポイントにもサポートされていません。

Q: Amazon SNS の配信ステータス機能は何をするものですか?

配信ステータス機能を使用することにより、サポートされているモバイル通知プラットフォームに関するプッシュ通知の成功率、失敗率、ドウェル時間に関する情報を収集できます。現在サポートされているプラットフォームには、Apple (APNS)、Google (FCM)、Windows (WNS と MPNS)、Amazon (ADM)、Baidu があります。ステータス情報は、ユーザーに代わって Amazon SNS が作成する Amazon CloudWatch ロググループにキャプチャされます。また、Amazon CloudWatch でアクション可能なメトリクスを作成し、興味のあるパターンに基づいてアラームをトリガーできます。

Q:Amazon SNS の配信ステータス機能は、モバイルプッシュ通知向けのみで使用可能な機能でしょうか? 他のエンドポイントタイプ向けにこの機能をサポートする予定はありますか?

現在、配信ステータス機能はモバイルプッシュ通知と SMS で使用できます。この機能を他のエンドポイントタイプに拡張するかどうかは、お客様からのフィードバックに基づいて検討させていただきます。

Q: 配信ステータス機能をアクティブ化する方法を教えてください。


配信ステータス機能は、Amazon SNS コンソールからアクティブ化できます。アプリケーションの [Application Actions] ドロップダウンメニューで [Delivery Status] オプションを選択します。詳細については、AWS のドキュメントをお読みください。

Q: Amazon SNS API から配信ステータス機能をアクティブ化できますか?

はい。関連するアプリケーションレベルの属性を 追加することで、Amazon SNS API からこの機能をアクティブ化できます。AWS のドキュメントには、追加する必要があるアプリケーションレベルの属性と、この機能を有効化するために実行する必要がある特定の API コールが記載されています。

Q: 配信ステータス機能のコストはどれくらいになりますか?


現在、配信ステータス機能の使用に追加の Amazon SNS 料金は発生しません。ただし、この機能では Amazon CloudWatch ロググループが作成されるため、その使用量によっては、CloudWatch の使用料が発生することがあります。CloudWatch の使用料と無料利用枠に関する詳細については、料金表ページを参照してください。

Q: 成功した配信試行のサンプリング率のみが選択できて、失敗した配信試行をサンプリングできないのはなぜですか?

お客様からのフィードバックに基づき、ほとんどのデベロッパーがアプリケーションに関して失敗した配信試行のすべてを把握することに興味を持っておられ、成功した配信については、すべてではなくサンプルのみを保存しておくことを希望されていることがわかりました。

Q: 失敗メトリクスまたはドウェル時間メトリクスに基づいてアラームを設定する方法を教えてください。

配信ステータス機能をアクティブ化にした後で、Amazon SNS がユーザーに代わって作成したロググループのための Amazon CloudWatch ログでログメトリクスフィルタを定義する必要があります。このメトリクスフィルターを定義することにより、失敗率やドウェル時間など、自分の関心のある情報を抽出できます。メトリクスフィルターを定義したら、そのフィルターを作成して、メトリクスを割り当てることができます。このメトリクスを使用することにより、定義したしきい値に基づいてアラームの設定や通知の送信を実行できます。詳細については、AWS のドキュメント、またはブログをご覧ください。

Q: Amazon SNS は APNS エンドポイントに対するモバイルプシュ通知のために HTTP/2 をサポートしていますか?

Amazon SNS では、p12 証明書のある HTTP/2 が使用されています。プッシュ通知は、Apple Push Notification Service (APNS) を介して、iOS および macOS のエンドポイントに送信されます。

Q: 2020 年 11 月以降の、APNS でのバイナリープロトコルの非推奨化にともない、アプリケーションの変更は必要になりますか?

Amazon SNS では、p12 証明書のある HTTP/2 が使用されています。Amazon SNS では、レガシーのバイナリープロトコルを利用していないため、このサービスを介してプッシュ通知を送信しているアプリケーションでも、変更は必要ありません。

AWS Lambda の SNS サポート

Q: Amazon SNS における AWS Lambda エンドポイントのサポートとは何を意味しますか?

AWS Lambda 関数がサブスクライブされている Amazon SNS トピックにメッセージをパブリッシュすることで、AWS Lambda 関数を呼び出すことができます。Amazon SNS はメッセージのファンアウトをサポートしているため、単一のメッセージをパブリッシュすることによって異なる AWS Lambda 関数を呼び出す、またはサポートされている Amazon SNS の送信先 (モバイルプッシュ、HTTP エンドポイント、SQS、E メール、SMS など) に対して通知を配信することに加えて、Lambda 関数を呼び出すこともできます。

Q: AWS Lambda はどのようなサービスですか?

AWS Lambda は、イベント発生時にお客様のコードを実行し、コンピューティングリソースを自動的に管理するコンピューティングサービスで、新規情報に迅速に対応するアプリケーションの構築を容易に行うことができます。AWS Lambda および AWS Lambda 関数の作成方法に関する詳細については、こちらで説明されています。

Q: AWS Lambda 関数と Amazon SNS を組み合わせて何ができますか?

AWS Lambda 関数を Amazon SNS トピックでサブスクライブすることで、カスタムのメッセージ処理を実行できます。AWS Lambda 関数を呼び出してカスタムのメッセージ配信処理を実行できます。それには、最初に AWS Lambda 関数にメッセージを発行し、Lambda 関数でメッセージの修正 (言語のローカライズなど) を行ってから、それらのメッセージをフィルタリングして、別のトピックおよびエンドポイントにルーティングします。Amazon SNS 通知を既に送信しているアプリケーションやサービス (Amazon CloudWatch など) では、インフラストラクチャのプロビジョニングや管理を行うことなく、AWS Lambda をすぐに活用してカスタムのメッセージ処理を実行できます。また、他の AWS のサービス (Amazon Kinesis や Amazon S3) にメッセージを発行する方法として、AWS Lambda 関数への配信を利用することもできます。AWS Lambda 関数を Amazon SNS トピックでサブスクライブして、その Lambda 関数で別のサービスにメッセージを送信することができます。

Q: Amazon SNS で AWS Lambda エンドポイントのサポートを有効にするにはどうすればよいですか?

まず AWS アカウントおよび AWS Lambda コンソールで AWS Lambda 関数を作成してから、Amazon SNS コンソールまたは Amazon SNS API を使用して、その AWS Lambda 関数をトピックにサブスクライブします。この操作が完了すると、Lambda 関数がサブスクライブされている Amazon SNS トピックに対して発行されたメッセージはすべて、適切な Lambda 関数、およびそのトピックをサブスクライブしているその他すべての宛先に配信されます。

Q: Amazon SNS から AWS Lambda 関数にメッセージを配信するとどうなりますか?

Amazon SNS から AWS Lambda 関数へのメッセージの配信は、AWS Lambda 関数のインスタンスを作成し、ユーザーのメッセージをインプットとしてその関数を呼び出します。メッセージの形式に関する詳細については、Amazon SNS のドキュメントおよび AWS Lambda のドキュメントを参照してください。

Q: この機能のコストはどれくらいになりますか?

Amazon SNS でメッセージを発行すると、100 万リクエストにつき 0.50 USD の料金が発生します。AWS のサービスを使用することによって発生した料金以外には、AWS Lambda 関数へのメッセージの配信に対する追加料金はありません。Amazon SNS には、毎月 100 万リクエストの無料利用枠があります。詳細については、Amazon SNS の料金表を参照してください。AWS Lambda 関数の料金は、関数に対するリクエスト数と、コードの実行時間に基づいて算出されます。AWS Lambda の無料利用枠には、毎月 100 万件のリクエストと、毎月 40 万 GB-秒のコンピューティング時間が含まれています。詳細については、AWS Lambda の料金表を参照してください。

Q: 私が所有する Amazon SNS トピックに、他の誰かが作成した AWS Lambda 関数をサブスクライブできますか?

現時点では、AWS のアカウントの所有者が、別のアカウントに属する AWS Lambda 関数をサブスクライブすることはできません。自分の AWS Lambda 関数を自分の Amazon SNS トピックでサブスクライブすることはできます。また、自分の AWS Lambda 関数を他のアカウントで作成された Amazon SNS トピックでサブスクライブすることもできます (ただし、その SNS トピックのトピックポリシーで許可されていることが条件)。

Q: 1 つの Amazon SNS トピックでサブスクライブできる AWS Lambda 関数の数に制限はありますか?

Amazon SNS では、AWS Lambda 関数を他の宛先と同様に扱います。デフォルトで、SNS は 1 トピックあたり 1 千万サブスクリプションを上限として設定しています。クォータの引き上げのご要望については、AWS までお問い合わせください。

Q: AWS Lambda 関数には、どのようなデータを渡すことができますか?

Amazon SNS メッセージを送信した結果として呼び出された AWS Lambda 関数は、SNS イベントを介して、メッセージ ID、トピック ARN、メッセージペイロード、メッセージ属性などのデータを受け取ります。AWS Lambda 関数に渡されるイベント構造について詳しくはブログをご覧ください。

Q: AWS Lambda 関数に対するメッセージ配信のステータスを追跡することはできますか?

メッセージ配信の成功や失敗を追跡するには、Amazon SNS の配信ステータス機能を有効にする必要があります。この機能を有効にする方法について詳しくは、ブログをご覧ください。

Q: AWS Lambda はどのリージョンで利用できますか?

AWS のリージョンとエンドポイント」のリストをご覧ください。

Q: AWS Lambda 関数は、Amazon SNS で使用されているのと同じリージョンに存在する必要がありますか?

AWS Lambda 関数は、任意のリージョンの Amazon SNS トピックでサブスクライブできます。

Q: AWS Lambda 関数を呼び出すことによってデータ転送コストは発生しますか?

AWS Lambda 関数へのメッセージ配信にはデータ転送コストが発生します。詳細については、料金表を参照してください。

Q: AWS Lambda 関数の同時実行性にクォータはありますか?

AWS Lambda は現在、1 つのリージョンの 1 つの AWS アカウントごとに、同時に 1,000 個の実行をサポートしています。お客様が AWS Lambda に Amazon SNS メッセージを配信したことにによってこの同時実行上限値を超えた場合、お客様の Amazon SNS メッセージ配信はスロットリング (調整) されます。AWS Lambda が Amazon SNS メッセージをスロットルする場合、Amazon SNS は配信を再試行します。AWS Lambda の同時実行クォータに関する詳細については、AWS Lambda ドキュメントを参照してください。

Q: Amazon SNS では、ユーザーが他のサービス (例えば Amazon S3) で使用しているものと同じ AWS Lambda 関数を使用できますか?

Amazon SNS で、ユーザーが他のサービスで使用している AWS Lambda 関数を使用するには、その Lambda 関数が当該サービスのイベント形式だけでなく、Amazon SNS のイベント形式も解析できる必要があります。SNS イベント形式についてはブログをお読みください。

VoIP iOS と Mac OS 通知

Q: iOS 向け VoIP プッシュ通知とは何ですか?

iOS 8 以降では、ユーザー向けの着信 VoIP コールが届いたときに、必要に応じて iOS がアプリケーションを起動またはスリープ解除できるように、voice-over-IP (VoIP) アプリケーションを VoIP リモート通知用に登録できます。VoIP 通知の登録手順は、iOS での通常のプッシュ通知の登録と同様です。詳細については、AWS のドキュメントを参照してださい。

Q: VoIP プッシュ通知と他のプッシュ通知を同じ iOS アプリケーションで使用できますか?

はい。両方の種類のプッシュ通知を受信するよう登録した iOS アプリケーションが可能です。ただし、通常のプッシュ通知証明書の他に、VoIP プッシュ通知証明書を Apple から取得し、新しいプラットフォームアプリケーションを Amazon SNS で作成して、プラットフォームタイプに Apple VoIP プッシュを選択する必要があります。詳細については、AWS のドキュメントを参照してださい。

Q: Mac OS プッシュ通知とは何ですか?

Amazon SNS を使用して Mac OS X Lion (10.7) 以降が搭載されている Mac OS デスクトップにプッシュ通知を送信することができるようになりました。詳細については、AWS のドキュメントを参照してださい。

Amazon SNS の料金に関する詳細

料金ページにアクセスする
構築準備が整いましたか?
Amazon SNS の使用を開始する
ご不明な点がおありですか?
お問い合わせ