AWSのSimple Notification Service (SNS) の利用しにくさは管理画面のUIと特殊な専門用語にあると思います。
そこでSNSの概念を理解しやすいよう図式化してみました。
基礎的な概念として以下の4つのオブジェクトがあります。
・アプリケーション
・トピック
・サブスクリプション
・エンドポイント
上記の4つのオブジェクトはARN(Amazon Resource NAME)と呼ばれるIDによって管理されます。
アプリケーションとエンドポイントの登録
アプリケーションは通知先のスマホアプリを指します。
iOSの場合はApple Push Notification Serviceの証明書を紐づけて作成します。
Androidの場合はGCMのAPIキーを紐づけて作成します。
SNS上でアプリケーションを登録すると、アプリケーションARNが発行されます。
作成したSNS上のアプリケーションに対して、スマホアプリを利用する各スマホ端末を紐づけます。この時のスマホ端末がエンドポイントにあたります。
エンドポイントは
アプリケーションARN
+
デバイストークン(iOSの場合)
レジストレーションID(Androidの場合)
を元に登録できます。
エンドポイントを登録するとエンドポイントARNが発行されます。
トピックの作成と購読
AWS SNSにおいては、トピックを作成し、そのトピックを各エンドポイントが購読することにより、複数のエンドポイントへの同時配信ができるようになります。
トピックの仕組みはメルマガの登録に似ています。メルマガにおける各登録メールアドレスに当たるのが、エンドポイントになります。
このトピックの仕組みを使うことによって、
例えば、ライブ配信アプリでフォローした人のみにライブ配信の開始を通知するといったことができるようになります。