BaaS vs. バース
ホームラン対決
AWS Summit Tokyo 2014
しみず
自己紹介
しみず @shimy_net
AWS 芸人
無駄に技術を使って
面白い LT をする
過去の発表
自転車でDynamoDB
ピタゴラスイッチで
AWS基盤を自動構築
KinectでEC2を
キックスタート
Kinesisで元気あつめて
フリーザ倒す
BaaS
今回は
バース
(M)BaaS とは
Mobile Backend as a Service
モバイルアプリの
サーバー機能を提供
サーバー機能
Push 通知
認証
ユーザ管理
データ管理
GPS連携
SNS連携
BaaSモバイルアプリ
海外
 Parse、Buddy
国内
 Kii、appiaries
 Amazon SNS Mobile Push
 Amazon Cognito
 Amazon Mobile Analytics
 etc.
多くのサービスが展開
NEW
NEW
今年は BaaS が流行る
ところで
バースっていったら
俺のことちゃうん? Randy Bass
素朴な疑問
?
BaaS バース
Batch
Randy Bass
on AWS
vs.
どっちが強いの?
BaaS バース
Batch
Randy Bass
on AWS
vs.
どっちが強いの?
Fight
対決方法
1.  BaaS を作る
2.  バース を作る
3.  戦う
1. BaaS を作る
Push 通知
認証
ユーザ管理
データ管理
GPS連携
SNS連携
BaaSモバイルアプリ
Push 通知の BaaS を作った
Amazon SNS Mobile Push
※ 足りない機能を実装する
・デバイストークンの収集
・大量メッセージの一括配信(キュー)
・履歴の取得
・未読/既読の管理
Push 通知 BaaS の 構成図
APNS
GCM/ADM
Device Token
Device Token 要求
Device Token
Payload
Payload
デバイストークン収集
Amazon SNS
DynamoDB、RDS
1
2
Endpoint Arn
Endpoint Arn
メッセージ作成
Endpoint Arn
7
Endpoint Arn
Endpoint Arn
Device Token
Endpoint Arn
Endpoint Arn
Payload
10
Device Token3
9
6
4
5
8
Batch
Amazon SQS
REST API
利用した物
AWS
 Amazon SNS Mobile Push
 Amazon SQS
 Amazon RDS (MySQL)
 Amazon DynamoDB
 Amazon Elastic Beanstalk
 Amazon EC2
利用した物
Java
 Spring
 Jersey JAX-RS
 Hibernate JPA2
 Apache Tomcat
 etc.
配信(Publish)
Users/	
Device
tokens
Messages
Authentication Publish
Spring
Jersey	
Resource
Dao
Hibernate	
MySQL RDS
Filter
Service
Batch
Dynamo DB
Dynamo DB
SNS
SQS
Publisher
Subscriber
配信API(Publish API)
curl -X POST ¥
-H "X-SHIMY-Admin-Identifier: zT8IizTtKQy9hwtlKyMXs1sl2IO4a95UIbaRREwp" ¥
-H "X-SHIMY-Admin-Secret-Key: zRrmnZn3wEidyuUGU2vJSDL1vYhvemZD3CDrX5JT" ¥
-H "Content-Type: application/json" ¥
-d '{
alert : メッセージだよ",
title : タイトルだよ",
detail : 詳細内容だよ",
"sound" : "default",
"badge" : 1"
}' ¥
http://localhost:8080/randy/v1/push-admin/send
BaaS ができた(オレ専用)
無駄に Scale する
豪華仕様!
APIのデモ
履歴API(History API)
curl -X GET ¥
-H "X-SHIMY-App-Identifier: zT8IizTtKQy9hwtlKyMXs1sl2IO4a95UIbaRREwp" ¥
-H "X-SHIMY-App-Secret-Key: zRrmnZn3wEidyuUGU2vJSDL1vYhvemZD3CDrX5JT" ¥
-H "Content-Type: application/json" ¥
-d '{
"identifier" : "8c30e162-b16a-4724-aa4b-312617d04789"
}' ¥
"http://localhost:8080/randy/v1/push/messages?offset=2014%2d07%2d01%2018%3a28%3a36&count=2"
履歴を5件取得
2. バースを作る
バットを用意する
スマホを埋め込む
加速度センサーで
バッティングを検知して Push 配信
バッティングを判定
Push配信
加速度の大きさで飛距離が変化
※ メッセージが変化
150m 70m
-d '{
alert : 150m",
title : ",
detail : ",
"sound" : "default",
"badge" : 1"
}' ¥
-d '{
alert : 70m",
title : ",
detail : ",
"sound" : "default",
"badge" : 1"
}' ¥
Push 受信アプリ
ホームランをねらえ
BaaS
PushPOST
Batch
バース
守備攻撃
on AWS
準備は整った
3. 戦う
※BGMを忘れずに
バース
Batch
Randy Bass
vs.
ガチンコ勝負
ピッチャー バッター
BaaS
on AWS
AWS
代表
Osaka
代表
デモ
というわけで
ボールに届かない・・・と思いきや
Amazon の力強い助っ人が登場!
見事 キャッチ!
バース
on AWS
BaaS
vs.
勝利!!
AWS は BaaS も強い!
Please take me to
re:Invent
Thank you very much.

BaaS vs. バース ホームラン対決 - AWS Summit Tokyo 2014 Lightning Talk