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

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

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

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

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 CloudTrail がサポートされています。このウェブサービスでは、自分のアカウントの AWS API コールを記録し、ログファイルを取得できます。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 メッセージングでは、100 件の通知を無料で送信でき、それ以降のメッセージの料金は配信先の国によって変わります。

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

価格設定とデータ転送費用について詳しくは、Amazon SNS 詳細ページをご覧ください。

Q: Amazon SNS を利用すると、どのように課金され、請求されますか?

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

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

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

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

別途記載がない限り、表示される料金には VAT、売上税その他取引に対して適用される一切の税金等および関税は含まれません。 日本の居住者であるお客様が 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: 通知を受け取るための、別の配信フォーマット/トランスポートとは何ですか?

配信メカニズムにおいてお客様により幅広い柔軟性を提供するために、Amazon SNS では複数のトランスポートプロトコルでの通知をサポートしています。お客様は、サブスクリプションのリクエスト時に、以下のトランスポートの中から 1 つを選択できます。

  • 「HTTP」と「HTTPS」– サブスクライバーはサブスクリプション登録時に URL を指定します。HTTP POST を通じて、通知が指定された URL に届けられます。
  • 「E メール」と「JSON 形式のメール」– メッセージが E メールとして、登録されたアドレスに送信されます。JSON 形式のメールを選択すると、通知が JSON オブジェクトとして送信されます。E メールを選択すると、テキストベースの E メールとして送信されます。
  • 「SQS」– ユーザーは、SQS 標準キューをエンドポイントとして指定できます。Amazon SNS は、指定されたキューに通知メッセージを投入します (これは ReceiveMessage、DeleteMessage などの SQS API を使用して、サブスクライバーが処理できます)。現在、FIFO キューはサポートされていません。
  • 「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 分間のチュートリアル、「Filter Messages Published to Topics」、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 秒後にその名前のトピック名が再使用可能となります。正確な時間は、トピック上でアクティブになっているサブスクリプション数によって異なります。サブスクライバーの少ないトピックの名前はすぐに再使用可能となりますが、サブスクライバーの多いトピックの名前はより多くの時間を要する場合があります。


Q: 通知が E メール経由で配信されるようにするには、ユーザーはどのようにサブスクリプション登録すればよいですか?

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

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

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

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

Amazon SNS では、ユーザーが E メールの件名欄を発行 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 SQS のドキュメントをご覧ください。

Q: Amazon SQS FIFO キューは、Amazon Simple Notification Service (SNS) と互換性がありますか?

Amazon SNS は現在 Amazon SQS FIFO キューへのメッセージ転送をサポートしていません。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: 共通のユニークな識別子。発行される各通知で一意
  • 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 の有無に関わらず、簡単に通知を受け取ることができます。トピックの所有者は、アクセスコントロールポリシーを使用して、トピックに対する適切なアクセス許可を設定することにより、サブスクライバーのアクセス許可の付与や制限を行うことができます。ユーザーは、以下の 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: 確認の待機中、サブスクリプションリクエストはどれくらいの期間保留中となるのですか?

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

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 ID を保有する発行者に求めます。その後署名は Amazon SNS によって認証されます。

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

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

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

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

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

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

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

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


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

はい。AWS HIPAA コンプライアンスプログラムには、Amazon SNS が HIPAA 対応サービスとして含まれています。AWS と事業提携契約 (BAA) を締結している場合は、Amazon SNS を使用して、HIPAA 準拠アプリケーションを構築できるようになりました。BAA を締結していない場合、またはお使いの HIPAA 準拠アプリケーションへの AWS の使用に関してご質問がある場合は、お問い合わせください。

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

コンプライアンスプログラムの対象範囲に含まれる 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 はそのトピックについて登録した全サブスクライバーに対して通知の配信を試みます。インターネット上の問題や E メール配信の制約が原因で、時として通知が HTTP または E メールのエンドポイントに到達しないことがあります。HTTP の場合は、SNS 配信ポリシーを使用して再試行パターン (線形、幾何学的、指数的バックオフ)、再試行遅延の最大値/最小値などのパラメータを制御することができます。発行されるメッセージすべてが正常に処理されることが必要不可欠である場合は、通知が SQS キューにも (他のトランスポート経由の通知に加えて) 配信されるように設計してください。

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

SNS に送信されたすべてのメッセージは、直ちに処理されて配信されます。最初の試行でメッセージが正常に配信されない場合、SNS では次の 4 段階の再試行ポリシーに従った処理が行われます。(1) 遅延なしの再試行、(2) 最小遅延間隔での再試行、(3) バックオフモデル (線形または指数的) を使用した再試行、(4) 最大遅延間隔での再試行です。 

ポリシーはエンドポイントによって、以下のように異なります。

  • SQS: SQS キューが利用できない場合、SNS は直ちに 10 回、続いて 20 秒間隔で 100,000 回の再試行を行います。つまり 23 日あまりで合計 100,010 回の再試行が行われます。この再試行後に配信されないメッセージは SNS から破棄されます。
  • Lambda: Lambda が利用できない場合、SNS では 1 秒間隔で 2 回、続いて 1 秒から 20 分までの指数的バックオフで 10 回、最後に 20 分間隔で 38 回の再試行が行われます。つまり、13 時間あまりで合計 50 回の再試行が行われます。この再試行後に配信されないメッセージは SNS から破棄されます。 
  • HTTP/HTTPS: 特定のトピックに関連付けられた HTTP/HTTPS エンドポイントに対して、それぞれ配信ポリシーを設定できます。それぞれの配信ポリシーには、再試行ポリシーとスロットルポリシーが含まれます。例えば、再試行ポリシーでは、再試行の最小/最大遅延間隔、遅延ありの前に行う再試行の回数、および再試行で使用するバックオフ方式 (線形、指数、または算術) を指定できます。  再試行が指定した回数に達すると、メッセージは SNS から破棄されます。スロットルポリシーは、サブスクリプションごとの 1 秒あたりの最大配信試行回数を定義するものです。  詳しくは、「HTTP/HTTPS エンドポイントに対する Amazon SNS 配信再試行ポリシーの設定」をご覧ください。
  • E メール: E メールエンドポイントが利用できない場合、SNS では直ちに 1 回、10 秒置いて 1 回、10 秒から 5 分までの線形バックオフで 10 回、最後に 5 分間隔で 90 回の再試行が行われます。つまり、7 時間あまりで合計 102 回の再試行が行われます。この再試行後に配信されないメッセージは SNS から破棄されます。
  • モバイルプッシュ: モバイルエンドポイントが利用できない場合、SNS では直ちに 2 回、20 秒間隔で 5 回、続いて 20 秒から 20 分までの指数的バックオフで 31 回、最後に 20 秒間隔で 12 回の再試行が行われます。つまり 4 時間あまりで 50 回の再試行が行われます。この再試行後に配信されないメッセージは SNS から破棄されます。
  • SMS: SMS エンドポイントが利用できない場合、SNS では 1 秒間隔で 2 回、その後 1 秒から 10 分までの指数的バックオフで 10 回、最後に 10 分間隔で 38 回の再試行が行われます。つまり、6 時間あまりで合計 50 回の再試行が行われます。この再試行後に配信されないメッセージは SNS から破棄されます。

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

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

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

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

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

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

Q: アカウントレベルおよびメッセージレベルの支出限度とは何ですか? また、どのように機能しますか?

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

アカウントあたりの支出制限はデフォルトで (指定されない場合) 1.00 USD/月です。制限の引き上げをご希望の場合は、SNS 制限の引き上げのケースを送信してください。[New limit value] には、ご希望の毎月の支出限度を入力してください。[Use Case Description] 欄に、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 メッセージングの専有ショートコードを予約する」をご覧ください。

料金については「Worldwide SMS Pricing」をご覧ください。

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

現時点で、AWS では購入用のロングコードを発行していません。

Q: SMS 通知は特定のショートコードまたはロングコードから送信されますか?

Amazon SNS では、SMS 通知の送信にロングコードまたはショートコードのプールが使用されます。複数の番号から SMS 通知が送信される可能性はありますが、Amazon SNS では、1 つの AWS アカウントから特定の電話番号に送られるメッセージは、常に同一のロングコードまたはショートコードから送信されるようになっています。これは「スティッキー送信者 ID」と呼ばれます。

専有ショートコードを予約して、Amazon SNS から送信するすべての SMS メッセージに永続的なショートコードを使用できます。ショートコードを予約することで、利用者はお客様の企業からのメッセージを簡単に見分けられるようになります。詳しくは、Amazon SNS 開発者ガイドの「SMS メッセージングの専有ショートコードを予約する」をご覧ください。

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

Amazon SNS では 200 を超える国がサポートされており、その範囲は拡大を続けています。呼び出し先としてサポートされている国の包括的なリストについては、SMS がサポートされている国のリストを参照してください。

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

1) 米国東部 1 (バージニア)、2) 米国西部 2 (オレゴン)、3) 欧州西部 1 (ダブリン)、4) アジアパシフィック (東京)、5) アジアパシフィック (シンガポール)、6) アジアパシフィック (シドニー)。

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

はい。Amazon SNS では、SMS 通知の送信にロングコードまたはショートコードのプールが使用されます。そのため、SMS 通知が複数の番号から届く可能性はありますが、Amazon SNS ではある AWS アカウントから特定の電話番号には、常時同一のロングコードまたはショートコードからメッセージが送信されるようになっています。これは「スティッキー送信者 ID」と呼ばれます。

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

Amazon SNS では、SMS 通知の送信にロングコードまたはショートコードのプールが使用されます。そのため、SMS 通知が複数の番号から届く可能性はありますが、Amazon SNS ではある AWS アカウントから特定の電話番号には常時同一のロングコードまたはショートコードからメッセージが送信されるようになっています。これは「スティッキー送信者 ID」と呼ばれます。

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 メッセージの最終処理状況についての情報を取得できます。この機能についての情報と使用方法については、ドキュメントをご覧ください。

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

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

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

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


Q: SMS メッセージの送信にはどれほどのコストがかかりますか?

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

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

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

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

Q: 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 無料利用枠はありますか?

はい。毎月米国内の宛先に送信される最初の 100 通の SMS メッセージが AWS 無料利用枠に含まれています。この利用枠には有効期限はありません。ここでの「メッセージ」とは、以前の質問の回答で説明したように、140 バイト以下の情報を含む 1 つの送信を指します。

米国内で複数の宛先に 100 通を超えるメッセージを送信する場合、または米国外の宛先にメッセージを送信する場合には、現在の料金に基づいて、送信される各メッセージが課金されます。最新の料金は、SMS 料金表ページでご覧いただけます。


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

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

Q: メッセージとして、どのような種類のデータを送信できますか? また、送信できる最大容量は 1 件あたりどのくらいですか?

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 のフィルターポリシーをトピックに適用できます。詳細についてはお問い合わせください。

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

はい。SNS と EC2 のリージョン間通信には、80/443/4080/8443 以外のポートは使用しないでください。動作が保証されていません。


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

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

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

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

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

  • Amazon Device Messaging (ADM)
  • Apple Push Notification Service (APNS)
  • Google クラウドメッセージング (GCM)
  • 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、GCM、ADM、WNS、MPNS、Baidu) と SMS のみです。E メールによるメッセージングでは、トピックを使用する必要があります。

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

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

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

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

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

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

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

SNS では、Microsoft WNS と MPNS のすべての種類のプッシュ通知 (トースト、タイル、バッジ、Raw 通知) がサポートされます。 どの種類の通知を使用するかは、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 について詳しくは、http://developer.baidu.com/cloud/push をご覧ください。

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 GCM と Amazon ADM では、メッセージペイロード内で TTL を指定することが認められています。 TTL がメッセージペイロード内とメッセージ属性内の両方で指定されている場合は、SNS ではメッセージ属性での指定が優先されます。
 
Q: TTL = 0 と指定するとどうなりますか?
 
プラットフォームによっては、TTL = 0 は特殊なケースとして扱われます。メッセージがすぐに配信される場合もあれば、無効となる場合もあります。 TTL = 0 を指定した場合は、この特殊ケースに応じた処理が行われるようにするため、メッセージは TTL = 0 のまま、SNS から該当するサービスに中継されます。
 
Q: どの SNS エンドポイントが TTL をサポートしていますか?
 
TTL を使用できるのは、APNS、APNS_Sandbox、GCM、ADM、Baidu、WNS のモバイルプッシュポイントです。 Microsoft MPNS では、現時点では TTL はサポートされません。 SQS、HTTP、E メール、SMS のエンドポイントでも、TTL はサポートされていません。
 
Q: Amazon SNS の配信ステータス機能は何をするのですか?
 
配信ステータス機能を使用すると、サポートされているモバイル通知プラットフォームのプッシュ通知の成功率、失敗率、ドウェル時間に関する情報を収集できます。現在サポートされているプラットフォームには、Apple (APNS)、Google (GCM)、Windows (WNS と MPNS)、Amazon (ADM)、Baidu があります。ステータス情報は、ユーザーに代わって Amazon SNS が作成する Amazon CloudWatch ロググループにキャプチャされます。また、Amazon CloudWatch でアクション可能なメトリクスを作成し、興味のあるパターンに基づいてアラームをトリガーできます。
 
Q:Amazon SNS の配信ステータス機能は、モバイルプッシュ通知向けのみで使用可能な機能でしょうか? 他のエンドポイントタイプでこの機能をサポートする予定はありますか?
 
現時点では、配信ステータス機能はモバイルプッシュ通知と SMS で使用できます。お客様からのフィードバックに基づき、この機能を別のエンドポイントタイプにも拡張するかどうか検討させていただきます。
 
Q: 配信ステータス機能を有効にする方法を教えてください。
 
配信ステータス機能は、 Amazon SNS コンソールから有効にできます。アプリケーションの [Application Actions] ドロップダウンメニューで [Delivery Status] オプションを選択します。詳しくは ドキュメントをご覧ください。
 
Q: Amazon SNS API から配信ステータス機能を有効にできますか?
 
はい。関連するアプリケーションレベルの属性を Amazon SNS API に追加することで、配信ステータス機能を有効にできます。 ドキュメントには、追加する必要のあるアプリケーションレベルの属性と、配信ステータス機能を有効にするために必要な具体的な API コールが記載されています。
 
Q: 配信ステータス機能を使用するにはどれほどのコストがかかりますか?
 
現時点では、配信ステータス機能をご利用いただいても Amazon SNS で追加料金が発生することはありません。ただし、この機能では Amazon CloudWatch ロググループが作成されるため、その使用量によっては、CloudWatch の使用料が発生することがあります。CloudWatch の使用料と無料利用枠について詳しくは、 料金表ページをご覧ください。
 
Q: 成功した配信のサンプリング率は選択できるのに、失敗した配信をサンプリングできないのはなぜですか?
 
お客様からのフィードバックにより、大半の開発者は、アプリケーションで失敗した配信のすべてを把握しておきたいと思っており、成功した配信については、そのすべてではなく一部のみを保存しておくことを希望されていることが判明しました。
 
Q: 失敗メトリクスまたはドウェル時間メトリクスに基づいてアラームを設定する方法を教えてください。
 
配信ステータス機能を有効にしたら、 Amazon SNS がユーザーに代わって作成したロググループについて、 Amazon CloudWatch ログのログメトリクスフィルターを定義する必要があります。このメトリクスフィルターを定義することにより、失敗率やドウェル時間など、自分の関心のある情報を抽出できます。メトリクスフィルターを定義したら、そのフィルターを作成して、メトリクスを割り当てることができます。このメトリクスを使用することにより、定義したしきい値に基づいてアラームの設定や通知の送信を実行できます。詳しくは ドキュメントまたは ブログをご覧ください。
 

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

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

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

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

Amazon SNS から AWS Lambda 関数にメッセージを配信すると、AWS Lambda 関数のインスタンスが作成され、配信されたメッセージを入力として、その Lambda 関数が呼び出されます。メッセージの形式ついて詳しくは、Amazon SNS のドキュメントおよび AWS Lambda のドキュメントをご覧ください。

Q: この機能を使用するにはどれほどのコストがかかりますか?

Amazon SNS でメッセージを発行すると、100 万リクエストにつき 0.50 USD の料金が発生します。AWS のサービスを使用することによって発生する料金を除き、AWS Lambda 関数にメッセージを配信することで追加料金が発生することはありません。Amazon SNS には、毎月 100 万リクエストの無料利用枠があります。詳しくは Amazon SNS 料金表をご覧ください。AWS Lambda 関数の使用料は、関数に対するリクエスト数、コードの実行時間に基づいて算出されます。AWS Lambda では 1 か月間に 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 千万サブスクリプションを上限値として設定しています。制限の引き上げのご要望は、こちらからお問い合わせください。

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 アカウントごとに、同時に 1000 個の実行をサポートしています。お客様が AWS Lambda に Amazon SNS メッセージを配信したことによってこの同時実行上限値を超えた場合、お客様の Amazon SNS メッセージ配信はスロットリング (調整) されます。Amazon SNS メッセージが AWS Lambda によってスロットリングされた場合、Amazon SNS はメッセージ配信を再試行します。AWS Lambda の同時実行制限について詳しくは、AWS Lambda ドキュメントをご覧ください。

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

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

 

Q: iOS 向け VoIP プッシュ通知とは何ですか?
iOS 8 以降では、着信 VoIP コールがユーザーに届いたときに、必要に応じて iOS でアプリケーションを起動または稼働させるように、voice-over-IP (VoIP) アプリケーションを VoIP リモート通知用に登録できます。VoIP 通知の登録手順は、iOS での通常のプッシュ通知の登録と同様です。詳しくはドキュメントをご覧ください。

Q: VoIP プッシュ通知と他のプッシュ通知を同じ iOS アプリケーションで使用できますか?
はい。iOS アプリケーションで両方の種類のプッシュ通知を受信するよう登録できます。ただし、通常のプッシュ通知証明書の他に、VoIP プッシュ通知証明書を Apple から取得し、新しいプラットフォームアプリケーションを Amazon SNS で作成して、プラットフォームタイプに Apple VoIP プッシュを選択する必要があります。詳しくはドキュメントをご覧ください。

Q: Mac OS プッシュ通知とは何ですか?
Amazon SNS を使用して Mac OS X Lion (10.7) 以降が搭載されている Mac OS デスクトップにプッシュ通知を送信することができるようになりました。詳しくはドキュメントをご覧ください。