Amazon SNS Mobile Push

# Amazon SNS Mobile Push

https://d1.awsstatic.com/webinars/jp/pdf/services/20150311_AWS-Black-Belt-SNSMobilePush-public.pdf

## AWS モバイルサービス

  • Amazon Cognito
  • Amazon mobile Analytics
  • Amazon SNS Mobile Push
  • Kinesis Connector
  • DynamoDB Connector
  • S3 Connector
  • SQS Connector
  • SES Connector

 

## Amazon SNS Mobile Push とは

  • バイスに対してバナーなどの通知を行える
  • 通知方法
    • 特定デバイス上の特定のアプリに通知
    • 通知は各プラットフォーム独自の仕組みで送信(Apple, Google, Amazonなど)
    • 送信者側でデバイスごとのトークンおよびユーザーの受信設定を管理

 

## メッセージの送信方法

  1. モバイルアプリ -> モバイルプラットフォーム : トークン要求
  2. モバイルプラットフォーム -> モバイルアプリ: トークン返却
  3. モバイルアプリ -> 送信者:トークン収集
  4. 送信者 : トークン保存
  5. 送信者 : メッセージ作成
  6. 送信者 -> モバイルプラットフォーム:メッセージ送信要求
  7. モバイルプラットフォーム -> モバイルアプリ:メッセージ送信

 

メッセージ送信はプラットフォームごとに異なっている。管理するのはとても大変である。そこで送信を抽象化するサービスがもとめられるようになる。

 

## 用語

  • Endpoint
  • Topic
    • 複数のEndpoint を束ねてグルーピングしたもの

 

## 送信のパターン

  • プラットフォーム特有のメッセージペイロードを通知
    • 一度のPublish 指示で同じメッセージを送信
    • プラットフォームごとにそれぞれ異なるペイロードを送信
  • バイスごとに直接通知
  • Topic によるい一斉通知

 

## 機能

  • 各プラットフォームからのフィードバックを元にトークンの入れ替えや無効化を自動実行

 

## トークンの登録方法

  • Temporary credential を発行してトークンをSNSへ登録
    • Token Vending Machine
    • Cognito
  • 独自構築ウェブアプリのAPI経由でトークンをSNSへ登録

 

## メッセージの送信

  • マネージメントコンソールから
    • 一件送信(Endpoint)
    • 一斉送信(Topic)
  • プログラムからトークンと属性情報を紐づけて検索のうえ送信

 

## 雑感

SNSを利用してモバイルデバイスにメッセージを送信する方法についての内容。

基本的にマネージドサービスを利用して単機能であるがシンプルに実装するか、独自アプリで高機能に実装するかの選択になる。

用途が限定されているなら耐久性や可用性の高いマネージドサービスを組み合わせて実装するのが良さそう。利用用途の要求をしっかり考察した上で実装をするのが良さそう(またはシンプルに初めてみる)。

トークンの管理もマネージドで行ってくれるのはありがたい。