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

Preview:

DESCRIPTION

BaaS on AWS と バース from 阪神タイガース どちらが強いのか検証しました

Citation preview

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 7Endpoint Arn Endpoint Arn

Device Token

Endpoint Arn Endpoint Arn

Payload

10

Device Token 39

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

Res

ourc

e

Dao

Hibernate MySQL RDS

Filte

r

Ser

vice

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 Push POST

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.