AWS

Amazon SNSでプッシュ通知を送るための基礎知識 | UNITRUST

Amazon Simple Notification Serviceの略。

AWS内のモバイル通知サービスで、iOSやAndroidの端末にPUSH通知が可能。

一回のリクエストで大量のユーザーに配信でき、実行速度も速い。

エンドポイント

AmazonSNSにおいては、配信対象端末を識別するためのデータ。メールアドレスのようなもの。

デバイストークン(PUSHトークン)から作られる、端末を識別するためのARN。

デバイストークンを登録すると、エンドポイントが作成される。

配信の際には、作成されたエンドポイントを指定して対象の端末へ配信する。

エンドポイントには「デバイストークン」「エンドポイントのARN」「通知の許可が下りているか」などの情報が含まれる。

トピック

配信対象をグルーピングし、一斉に通知を配信するための機能。 トピックにはエンドポイントを登録できる。 トピックを作成し、エンドポイントを登録した後、トピックに対して送信したいメッセージを発行すると、トピックに登録されているエンドポイントへ一斉にPUSH配信できる。

サブスクリプション

トピックと配信対象のエンドポイントを結びつけるデータ。

(サブスクリプションを作成 = トピックにエンドポイントを登録)

サブスクリプションによってトピックにエンドポイントが紐付けられることで、トピックに対してメッセージを送信すると、そのトピックに紐づく配信対象のエンドポイントへメッセージが配信される。

「トピックに発行されたメッセージをエンドポイントが購読できる」というイメージ。

パブリッシュ(発行)

PUSHを配信すること。

AmazonSNSにおいてPUSH配信は、エンドポイントやトピックに対してメッセージを発行する形をとっている。

アプリケーションプラットフォーム

アプリごとの、PUSH通知に利用するプラットフォームの設定。

iOSなら「Apple Production」、「Apple Development」。

Androidなら「Google Cloud Messaging(GCM)」。

エンドポイントはアプリケーションに紐づいて登録・管理される。

アプリケーションからエンドポイントを選択して個別にPUSH配信できる。

個別のエンドポイントへ配信はアプリケーションで可能だが、配信の度に対象を選択するのは手間がかかる。この手間を解消するのがトピック。

フロー

  1. アプリ起動時にプラットフォームへプッシュ通知の許可を送る
  2. アプリはプラットフォームから発行されたトークンを受け取る
  3. アプリは受け取ったトークンをコンテンツへ送信
  4. サーバーはAPIを利用してトークンをAmazonSNSに登録し、エンドポイントを作成する
  5. エンドポイントが作成されたら、サーバーからAPIを利用 or AmazonSNSから直接、トピックにエンドポイントをサブスクライブし、トピックにメッセージを発行
  6. PUSH通知が配信される