SlideShare a Scribd company logo
Keisuke  Nishitani
Solutions  Architect
Amazon  Web  Services  Japan  K.K.
AWSにおける
モバイル向けサービス及び事例例紹介
⾃自⼰己紹介
{
"Name"  :  "⻄西⾕谷圭介",
"Twitter"  :  "@Keisuke69",
"Profile"  :  {
"Role"  :  "Solutions  Architect",
"Customers":  [  
"Web  Services",  
"Start-‐‑‒up”
],
"Services"  :  [  
"Amazon  API  Gateway”,
"AWS  Lambda",
"All  Mobile  Services”
]
}
}
AWSにおける モバイル向けサービス及び事例紹介(20151211)
Amazonの代表的なサービス
Amazonの代表的なサービス
amazon.co.jp
おなじみの通販サイト
AWSにおける モバイル向けサービス及び事例紹介(20151211)
Amazonの代表的なサービス
amazon  services
出品/出店サービス
AWSにおける モバイル向けサービス及び事例紹介(20151211)
Amazonの代表的なサービス
amazon  web  services
ITインフラサービス
10年年以上にわたるAmazon.comの
ITインフラ運⽤用ノウハウをサービスに!
2006年年 AWSサービス開始
2011年年 Tokyoリージョンサービス開始
はサーバや
ストレージといったITリソースを
電気・ガス・⽔水道と同じように
必要なときに、必要なだけ
使えるようにしたサービスです
どんなサービスか⼀一⾔言でいうと…
もう少し具体的に…
初期費⽤用不不要で使った分だけの従量量課⾦金金(⻑⾧長期契約不不要)
スケールアウト/スケールアップ/スケールダウンが容易易
汎⽤用的な技術で構成
便便利利なマネージドサービスが豊富
世界中のデータセンタ群を利利⽤用出来る
スモールスタートが出来る!
急なサービス成⻑⾧長にも対応出来る!
効率率率的な利利⽤用でコスト削減も可能!
既存の技術知識識で、すぐに始められる
少ない⼈人数で効率率率的に運⽤用出来る!
グローバル展開も容易易
無料料でお試し出来ます
https://aws.amazon.com/jp/free/
ベーシック デベロッパー ビジネス エンタープライズ
フォーラム 利利⽤用可能 利利⽤用可能 利利⽤用可能 利利⽤用可能
サポートへの
コンタクト
EC2の
健全性エラーが発⽣生
した場合
コンタクト
フォーム
電話、チャット
コンタクト
フォーム
電話、チャット
コンタクト
フォーム
初回応答時間 不不可
12時間
(営業時間内)
1時間 15分
連絡先登録 -‐‑‒ 1 5 無制限
24/365対応 なし なし あり あり
Trusted  Advisor なし なし あり あり
専任スタッフ
特別サポート
なし なし なし あり
料料⾦金金(⽉月額) 無料料 $49
AWS利利⽤用総額の
$0~∼$10K: 10%
$10K~∼$80K:   7%
$80K~∼$250K: 5%
$250K~∼:   3%
(最低$100)
AWS利利⽤用総額の10%
(最低$15000)
24時間365時間対応の⽇日本語サポートも選べます
190カ国に及ぶ100万以上のお客様
⽇日本のお客様は20,000以上
世界中のStartupも!
もちろん⽇日本のStartupも!
モバイルアプリも!
AWS’  Rapid  Pace  of  Innovation
2011
82
159
2012
280
2013
516
2014
AWS  has  launched  a  total  of  621  new  features  and/or  services  to-­date*  in  2015,  
for  a  total  of  1,835  new  features  and/or  services  since  inception   in  2006.  
*  As  of  30  Nov  15
AWS’  History  of  Innovation
AWS  has  been  continually   expanding  its  services  to  support  virtually  any  
cloud  workload,  and  it  now  has  more  than  60  services  that  range  from  
compute,  storage,  networking,  database,  analytics,  application   services,  
deployment,  management  and  mobile.
2009
Amazon  RDS
Amazon  VPC
AWS  Auto  Scaling
AWS  Elastic   Load
Balancing
2010
Amazon  SNS
AWS  Identity  
& Access  
Management
Amazon  
Route  53
2011
Amazon  
ElastiCache
Amazon  SES
AWS  
CloudFormation
AWS  Direct  
Connect
AWS  Elastic  
Beanstalk
GovCloud
2012
Amazon  SWF
Amazon  
Redshift
Amazon  
Glacier
Amazon  
Dynamo  DB
Amazon  
CloudSearch
AWS  Storage
Gateway
AWS  Data  
Pipeline
2013
Amazon  
CloudTrail
Amazon  
CloudHSM
Amazon  
WorkSpaces
Amazon  
Kinesis
Amazon  Elastic
Transcoder
Amazon  
AppStream
AWS  OpsWorks
2014
AWS  KMS
Amazon  Config
Amazon  Cognito
Amazon  Mobile  
Analytics  
Amazon  EC2
Container  Service
Amazon  RDS  for  
Aurora
Amazon  Lambda
Amazon  WorkDocs
AWS  Directory  
Service
AWS  CodeCommit
AWS  CodePipeline
2015
Amazon  EFS
Amazon  API  Gateway
Amazon  WorkMail
Amazon  Machine  
Learning
AWS  Device   Farm
AWS  WAF
Amazon  
Elasticsearch Service
Amazon  QuickSight
AWS  Import/Export  
Snowball
Amazon  Kinesis   Firehose
Amazon  RDS  for  MariaDB
Amazon  Inspector
AWS  Database   Migration
Service  
AWS  IoT
Amazon  EC2  Container
Registry
Amazon  Kinesis   Analytics
AWS  Mobile  Hub
*  As  of  30  Nov  15
AWS  EMR
Amazon  CloudWatch
Amazon  FPS AWS  Import/Export
Trusted  Advisor AWS  Service   Catalog
AWS  CodeDeploy
Amazon  CloudWatch  Logs
Networking AnalyticsCompute
Storage & Content Delivery
Developer Tools Management Tools Security & Identity
Application Services
Mobile Services Database Enterprise Applications
S3 CloudFront EFS Glacier
Storage
Gateway
API
Gateway
AppStream CloudSearch
Elastic
Transcoder
SES SQS SWF
Mobile
Analytics
Cognito Device Farm SNS RDS DynamoDB ElastiCache RedShift WorkSpaces WorkDocs WorkMail
Lambda
EC2 Container Elastic Se
rvice Beanstalk
EC2 VPC
Direct
Connect
Route 53 EMR
Data
Pipeline
Kinesis
Machine
Learning
Elastic Load
Balancing
QuickSight
Elasticsearch
Service
CodeCommit CodeDeploy CodePipeline CloudWatch
Cloud
Formation
CloudTrail Config OpsWorks
Service
Catalog
Identity & A
ccess Manag
ement
Directory
Service
Trusted
Advisor
Cloud HSM
Key Manage
ment Service
WebApp
Firewall
Snowball
Simple DB
Database
Migration
Service
IOT
Io T
Hubs
Mobile Hub
Networking AnalyticsCompute
Storage & Content Delivery
Developer Tools Management Tools Security & Identity
Application Services
Mobile Services Database Enterprise Applications
S3 CloudFront EFS Glacier
Storage
Gateway
API
Gateway
AppStream CloudSearch
Elastic
Transcoder
SES SQS SWF
Mobile
Analytics
Cognito Device Farm SNS RDS DynamoDB ElastiCache RedShift WorkSpaces WorkDocs WorkMail
Lambda
EC2 Container Elastic Se
rvice Beanstalk
EC2 VPC
Direct
Connect
Route 53 EMR
Data
Pipeline
Kinesis
Machine
Learning
Elastic Load
Balancing
QuickSight
Elasticsearch
Service
CodeCommit CodeDeploy CodePipeline CloudWatch
Cloud
Formation
CloudTrail Config OpsWorks
Service
Catalog
Identity & A
ccess Manag
ement
Directory
Service
Trusted
Advisor
Cloud HSM
Key Manage
ment Service
WebApp
Firewall
Snowball
Simple DB
Database
Migration
Service
IOT
Io T
Hubs
Mobile Hub
モバイル開発で
考えるべき
2つのこと
必要だが⾯面倒
なことや様々
な課題にどう
対処するか
どうやって差別化するか
AWS  モバイルサービス
を活⽤用して課題を解決
アプリ開発、とくに差別化のため
の開発に集中できる
様々な課題
開発者が直⾯面する課題
• 複数プラットフォーム
• スケーラビリティの確保
• ⾼高い運⽤用管理理コストと限られた予算
• ユーザエクスペリエンスの阻害
• ユニークなユーザIDの管理理
モバイルアプリケーション
アイデンティティの管理理と認可
データ同期
アクティブなユーザの分析
エンゲージメントの分析
Push通知
イベントトリガー
クロスプラットフォーム
データのバリデーションと変換
ファイル/メディア保管⽤用ストレージ
データベース
And  More….
AWS  Cloud  Infrastructure
AWS  Mobile  サービス
Cognito
Kinesis DynamoDB S3 SQS SES
グローバルインフラ
コアとなるサービス群
モバイルに最適化
されたコネクタ
モバイルに最適化
されたサービス
AWS  SDK  for  Android
ストレージ データベース キュー メール
コンピュート
ネットワーク
AWS  Mobile  SDK
Mobile  Analytics SNS  Mobile  Push
AWS  SDK  for  iOS AWS  SDK  for  Unity
あなたのモバイルアプリ
ゲームアプリ ユーティリティアプリ 家計簿アプリ クーポンアプリ
Lambda
Device  Farm API  Gateway
AWS  SDK  for  JavaScript
AWS  Mobile  SDK
• 全てのサービスに共通の認証機構
• オンライン・オフラインを⾃自動でハンドリング
• クロスプラットフォームのサポート:Android,  
iOS,  Fire  OS,  Unity,  Xamarin
• Mobile  OSへの最適化
例例: ローカルオフラインキャシュを利利⽤用する
アーキテクチャ
• メモリフットプリントの削減
• 同梱するパッケージの選択も可
• 各プラットフォームのエンハンスに追従
iOS Android Fire OS Unity
Xamarin
典型的なユースケース
ユーザ
ユーザ認証をしたい
適切切な権限を与えたい
⾏行行動分析をしたい
典型的なユースケース
ユーザ
ユーザ認証をしたい
適切切な権限を与えたい
⾏行行動分析をしたい
データ
データの同期をしたい
データベースを使いたい
典型的なユースケース
ユーザ
ユーザ認証をしたい
適切切な権限を与えたい
⾏行行動分析をしたい
データ
データの同期をしたい
データベースを使いたい
メディアファイル
画像/⾳音楽を保存したい
アセットを配信したい
典型的なユースケース
ユーザ
ユーザ認証をしたい
適切切な権限を与えたい
⾏行行動分析をしたい
データ
データの同期をしたい
データベースを使いたい
メディアファイル
画像/⾳音楽を保存したい
アセットを配信したい
ロジック
サーバサイドで処理理したい
独⾃自APIを⽤用意したい
典型的なユースケース
ユーザ
ユーザ認証をしたい
適切切な権限を与えたい
⾏行行動分析をしたい
データ
データの同期をしたい
データベースを使いたい
メディアファイル
画像/⾳音楽を保存したい
アセットを配信したい
ロジック
サーバサイドで処理理したい
独⾃自APIを⽤用意したい
メッセージ
プッシュ通知を送りたい
典型的なユースケース
ユーザ
ユーザ認証をしたい
適切切な権限を与えたい
⾏行行動分析をしたい
データ
データの同期をしたい
データベースを使いたい
メディアファイル
画像/⾳音楽を保存したい
アセットを配信したい
ロジック
サーバサイドで処理理したい
独⾃自APIを⽤用意したい
メッセージ
プッシュ通知を送りたい
テスト
実機でテストしたい
<TEST/>
典型的なユースケース
ユーザ
ユーザ認証をしたい
適切切な権限を与えたい
⾏行行動分析をしたい
データ
データの同期をしたい
データベースを使いたい
メディアファイル
画像/⾳音楽を保存したい
アセットを配信したい
ロジック
サーバサイドで処理理したい
独⾃自APIを⽤用意したい
メッセージ
プッシュ通知を送りたい
テスト
実機でテストしたい
<TEST/>
ID  プロバイダ
ゲストアクセス
独⾃自認証システム
ユニーク ID
Joe Anna Bob
デバイス
プラットフォーム
AWS  サービス
複数の ID  プロバイダをサポート
ID  プロバイダと簡単に連携して認証
Amazon,  Facebook,  Twitter,  Google,  
OpenID Connect などに対応
ユニークなアイデンティティ
認証済ユーザに対してユニークIDを割り当て、
デバイスやプラットフォームをまたがって認
識識と管理理
Amazon  Cognito  Identity
Mobile
Analytics
S3 DynamoDB Kinesis
容易易なセキュリティのベストプラク
ティス実装
モバイルデバイスからAWSリソースへのセ
キュアなアクセスのためのやり取りをIAMと
連携して簡略略化
Amazon  Cognitoの認証フロー
Amazon   Cognito   ID
(Temp   Credentials)
Amazon  
DynamoDB
End   Users
Developer
App   with  
AWS   Mobile  
SDK
Access
to  AWS  
Services
Amazon   Cognito  
Identity  Broker
User  Name  
Password
Amazon   Cognito   ID,  
Temp   Credentials
Amazon   S3
Amazon   Mobile  
Analytics
Amazon   Cognito  
Sync  Store
AWS  
Management  
Console
Token
Pool  ID
Role  ARNs
User  Authentication  
System
(Running   on   AWS  or  not)
Token
(参考)OpenID Connect
v 2014年2月に最終承認されたID連携に関する仕様
v 準拠しているIDプロバイダをCognitoでも利用可能
例:Salesforce,  Ping  Identity,  Google  etc…
Developer  Authenticated  Identities
Username
And	
  Password
独⾃自認証システム
パブリックIDプロバイダの併⽤用
CognitoのIDを元にパブリックなIDプロバイ
ダと独⾃自認証を併⽤用して管理理することも可能
認証基盤の実装が必要
GetOpenIdTokenForDeveloperIdentity()  を実
装する
既存の認証基盤を使う場合、改修が必要
独⾃自認証システムの利利⽤用
パブリックなIDプロバイダではなく独⾃自の
UsernameとPasswordを使って認証
Amazon  Cognitoの認証フロー
(Developer  Authenticated  Identities)
Amazon   Cognito   ID
(Temp   Credentials)
Amazon  
DynamoDB
End   Users
Developer
App   with  
AWS   Mobile  
SDK
Access
to  AWS  
Services
Amazon   Cognito  
Identity  Broker
Get  OpenID  Token
User  Name  
Password
Amazon   Cognito   ID,  
Temp   Credentials
Amazon   S3
Amazon   Mobile  
Analytics
Amazon   Cognito  
Sync  Store
AWS  
Management  
Console
OIDC  Token
Pool  ID
Role  ARNs
独⾃自認証システム
(AWS上で稼働していなくてもOK)
OIDC  Token
OIDC  Token
未認証ユーザのゲストアクセス
(Unauthenticated  Identities)
IDプロバイダで認証をしていないユーザをゲス
トユーザとしてユニークIDの付与と管理理
• 未認証の場合、IDはデバイスと紐紐づく
• 未認証によるアクセスを許可しない設定も可能
アプリやAWSリソースへのアクセスにアカウン
トの作成や認証が不不要
• アクセス権限は未認証ユーザに対して割り当て
たIAM  Roleのポリシーに基づく
• センサーデバイス等のスクリーンや⼊入⼒力力装置の
ないデバイスに対してもユニークIDの付与と管
理理が可能
データはクラウド上に保存され後からログイン
した場合は⾃自動でマージ
Visitor
Preferences
Cognito  
Store
Guest
EC2 S3 DynamoDB Kinesis
WebとMobileをまたがったユーザの識識別
ユーザ状態の遷移
当初はゲストユーザとして
ユーザ状態の遷移
その後、アカウント登録
• シームレスに遷移
ユーザ状態の遷移
複数のアカウントをリンク
• ⼀一貫性のあるアイデンティ
ティ管理理が必要
コード例例(Android)
//  Credential  Providerの初期化
CognitoCachingCredentialsProvider credentialsProvider =  new  CognitoCachingCredentialsProvider(
getApplicationContext(),
”ap-‐‑‒northeast-‐‑‒1:XXXXXXXX-‐‑‒XXXX-‐‑‒XXXX-‐‑‒XXXX-‐‑‒XXXXXXXX",  //  Identity  Pool  ID
Regions.AP_̲NORTHEAST_̲1  //  Region
);
//  Facebookユーザで認証する場合
Map  logins  =  new  HashMap();
logins.put("graph.facebook.com",  Session.getActiveSession().getAccessToken());  
credentialsProvider.setLogins(logins);
//AWSサービスへのアクセス
AmazonDynamoDB client = new AmazonDynamoDBClient(credentialsProvider);
//Congito IDの取得
String identityId = credentialsProvider.getIdentityId();
※上記例例では省省略略していますが、事前にIDプロバイダを利利⽤用した認証処理理の実装が必要です
※実際にはLoaderやAsyncTask等を⽤用いた⾮非同期タスクとして実装すること
コード例例(JavaScript)
// 以下ではFacebookユーザを認証済ユーザとして使用
AWS.config.region = ‘ap-northeast-1’; // リージョンの指定(必須)
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: ’ ap-northeast-1:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX’,
Logins: {
graph.facebook.com : facebookResponse.authResponse.accessToken
}
});
// Cognitoから付与されたIDの取得
AWS.config.credentials.get(function(err) {
if (!err) {
console.log("Cognito Identity Id: " +
AWS.config.credentials.identityId);
}
});
(参考)IAM  Role⽤用のアクセスポリシーの作成
{
"Effect":"Allow",
"Action":["s3:*"],
"Resource":"*"
}
{
"Effect": ”Deny",
"Action": ["dynamodb:*"],
"Resource": "*"
}
{
"Effect": "Allow",
"Action": [”cognito-sync:*"],
"Resource": "*"
}
Allow
Actions:
All  S3,  Sync  store  
Operations
Resource:
All  resources  within  
these  services
Deny
Actions:
All  DDB  Operations
Resource:
All  resources
モバイルSDKを使う際の認証情報の扱い
v AWSの各種サービスはあくまでバックエンド
v エンドユーザは必ずしもAWSユーザではない
v アプリは開発者のアカウントで認証・認可を受ける必要がある
v アプリに開発者アカウントのアクセスキー等を埋め込んだら
v アクセスキーが広範にばら撒かれることに
v アクセスキーの不不正利利⽤用を⽌止めるためにキーを無効化したら
→  全ユーザへのサービスが停⽌止!!
v アクセスキーの定期的な更更新で対処するにしても
v 更更新のたびにバージョンアップは⾮非現実的
v 更更新前のアプリからはサービス利利⽤用不不可に
セキュアなAWSアクセスを提供するには
アプリに認証情報を埋め込むべきではない
• アクセスキーが広範囲に配布されてしまう
• アクセスキーの更更新はアプリのアップデートを伴うため⾮非現実的
エンドユーザ/端末ごとに異異なる認証情報を提供すべき
• ユーザごとに必要最⼩小限の権限を与えるのは重要
• 不不正利利⽤用発覚時に不不正ユーザのみ権限を停⽌止
認証情報は期限が来たら無効化されるべき
• 不不正ユーザの影響も期限付きに
Amazon  Cognitoのセキュリティ
細やかなアクセス制御
IAM  との連携で AWS  リソースへの細かなアクセ
ス制御を実現
AWS  Credentials の保護
必要な権限だけを付与された⼀一時的なクレデンシャル
を取得できるので、アプリにクレデンシャルを埋め込
まなくてよい
セキュリティのベストプラクティスを⽀支援
セキュリティトークンサービスと連携したり、トー
クンベンディングマシンを構築する必要はない
セキュアに AWS  サービスを利利⽤用
EC2 S3 DynamoDB Kinesis
S3
DynamoDB
Get Delete Put
Concrete  Software
Concrete  Software  has  been  making  hit  mobile  games  
like  Jellyflop  and  PBA  Bowling  Challenge  since  2003.
Amazon  Cognitoによって、迅速
なゲーム開発が可能となり、ユー
ザに素晴らしいエクスペリエンス
提供も可能となりました
Keith  A.  Pichelman
CEO,  Concrete  Software
”
“ • クロスデバイス、クロスプラットフォームで
シームレスなユーザ体験の提供
• クラウドへゲームの状態を保存し、サーバレ
スでクロスデバイスに同期を実施
チャレンジ
解決策
• CognitoによりAWSリソースへのセキュアな
アクセスが可能に
• Cognito Syncはいかなるサーバサイドのイ
ンフラも必要とせずにクラウドへのデータ保
存に対する柔軟性を提供してくれ、デバイス
上でのキャッシュを実現
akippa株式会社
v 「個⼈人が所有する空きスペース」や「未契約で空いて
いる⽉月極の駐⾞車車場」を、1 ⽇日単位で予約が出来る駐
⾞車車場として活⽤用出来るサービス
v Infinity  Ventures  Summit  2014  Kyoto  での
Launchpad  優勝をきっかけに急成⻑⾧長中
v コーポレートサイトにおける問合せフォームを
CognitoとS3を利利⽤用して実装
典型的なユースケース
ユーザ
ユーザ認証をしたい
適切切な権限を与えたい
⾏行行動分析をしたい
データ
データの同期をしたい
データベースを使いたい
メディアファイル
画像/⾳音楽を保存したい
アセットを配信したい
ロジック
サーバサイドで処理理したい
独⾃自APIを⽤用意したい
メッセージ
プッシュ通知を送りたい
テスト
実機でテストしたい
<TEST/>
Amazon  Mobile  Analytics
v 利利⽤用状況に関するデータを⼤大規模に収集、⾃自動的に可視化
v アプリケーション側はAmazon  Mobile  SDKを組み込むだけ
v ⽣生データをS3/Redshiftへ⾃自動エクスポート可能
v 既存のユーザマスタの突き合わせ等によるより深い分析が可能
v CSVでのダウンロードも可能
v ⾼高速かつスケーラブル
v データを受け取ったら60分以内にレポート反映
v 数百万のユーザーからの数⼗十億イベント/⽇日を収集・処理理可能
v クロスプラットフォーム
v 各種デバイス、OS(Android,  iOS,  FireOS)からデータを送信可能
v AWS  SDK  for  JavaScriptでもサポート
ビジネス上重要な指標
1. Monthly  Active  Users  
(MAU)  
2. Daily  Active  Users  
(DAU)  
3. New  Users,  
4. Daily  Sessions,  
5. Sticky  Factor,  
6. 1-­Day  Retention,  
7. Avg.  Revenue  per  DAU,  
8. Daily  Paying  Users,
9. Avg.  Paying  DAU
継続率率率のトラッキング
ユーザの継続率率率はマーケティ
ング、新機能、UI変更更やアプ
リ更更新の効果を測る際の重要
な指標
⽇日次/週次でユーザ再訪率率率に
関する4つのチャートを提供
アプリ固有のアクションに関して⾏行行動分析
が可能
特定イベントの発⽣生頻度度に関するレポート
を提供。各イベントに属性やメトリックを
追加可能。
サンプル
Track  the  number  of  
Likes/Shares,  per  
article,  in  a  news  app
Understand  player  
abort  rates  per  
level,  in  a  game
Number  of  songs  
played,  per  user  
session,  in  a  music  
app
In-­app  item  popularity  
in  a  shopping  app
カスタムイベントのトラッキング
S3へとデータをエクスポートし、データ処理理
Mobile Amazon  
S3
Amazon  
Redshift
Amazon  Mobile  
Analytics
Hadoop/Spark
Amazon  EMR
Amazon  
Glacier
アーカイブ
バッチ処理理に
よるレポート
⾃自動でエクスポート
Mobile  Analyticsのスキーマ
• シンプル
• 共通項⽬目は⾃自動収集
• 項⽬目とメトリクスを
拡張可能
event_timestamp arrival_timestamp
event_type app_id
app_title cognito_id
client_id platform
platform_version locale
app_package_name app_version_name
device  model device  make
monetization_amount monetization_item
a_level
a_promo_code
m_score
m_quantity
AWSにおける モバイル向けサービス及び事例紹介(20151211)
Forza Football
65
スコア速報 投票プッシュ通知
PENETRATION
66
USERS PER CAPITA
LEVERAGE  ON  MISSION
67
VOTE PER COUNTRY
DEVICES
68
IN FORZA FOOTBALL
典型的なユースケース
ユーザ
ユーザ認証をしたい
適切切な権限を与えたい
⾏行行動分析をしたい
データ
データの同期をしたい
データベースを使いたい
メディアファイル
画像/⾳音楽を保存したい
アセットを配信したい
ロジック
サーバサイドで処理理したい
独⾃自APIを⽤用意したい
メッセージ
プッシュ通知を送りたい
テスト
実機でテストしたい
<TEST/>
Amazon  Cognito  Sync  クラウドへのデータ保存と同期
アプリのデータ、設定、状態などを保存
アプリやデバイスのデータをクラウドに保存でき、
ログイン後にマージされる
クロスデバイス、クロスプラットフォー
ムで同期
ユーサデータや設定をデバイスをまたいで同期
バックエンド不不要
スケーラブルで信頼性の⾼高いデータ同期基盤を簡
単に利利⽤用可能
User  Data  
Storage  and
Sync
Any  Platform
iOS/Android/FireOS
k/v  data
Identity  pool
SDK
ローカルデータストア
オフライン動作
データはまずローカルのデータストレージに保存されるので、
電波が不不安定もしくは不不通であってもシームレスに動作できる
インテリジェントな同期処理理
同期メソッドはローカルとクラウドのデータのバージョンを⽐比
較して、データをプッシュ/プル
柔軟なコンフリクトの解決
同期メソッドは、変更更を読み取り後、ローカルの変更更をクラウ
ドのデータストアへ書き込む。デフォルトでは、最後の書き込
みを有効として保存する。開発者はコンフリクト処理理を独⾃自に
上書きして実装することもできる。
Amazon  Cognito  Sync  クラウドへのデータ保存と同期
Cognito Sync  データモデル 例例
User情報
Dataset
ゲームとユーティリ
ティ、2種類アプリを
提供
Game情報
Dataset
Identitypool1
ユーティリティ
App
Game
App
AWS  
Account
Dataset
Identity
Identity
Identity
Dataset
Dataset
Identity  
Pool
1:60
1:n
1:20
DatasetDataset
Record
1:1024
You
Your  App
Your  App  Users
User  Data  
Container
User  Data
コード例例(Android)
// Cognito Sync client の初期化
CognitoSyncManager syncClient = new CognitoSyncManager(
getApplicationContext(),
Regions.AP_NORTHEAST_1, // Region
credentialsProvider);
//Datasetをオープンし、レコードを追加
Dataset dataset = syncClient.openOrCreateDataset("myDataset");
dataset.put("myKey", "myValue");
//同期処理理の実⾏行行
dataset.synchronize(new DefaultSyncCallback() {
@Override
public void onSuccess(Dataset dataset, List newRecords) {
//Your handler code here
}
});
コード例例(JavaScript)
// Cognito Sync clientの初期化
AWS.config.credentials.get(function(){
var syncClient = new AWS.CognitoSyncManager();
syncClient.openOrCreateDataset('myDataset', function(err,
dataset) {
dataset.put('myKey', 'myValue', function(err, record){
dataset.synchronize({
onSuccess: function(data, newRecords) {
// ハンドラを実装
}
});
});
});
});
モバイルアプリ
(デバイス1)
Mobile  SDK
Amazon  Cognito
Sync  Store
1.  データ同期
モバイルアプリ
(デバイス2)
Mobile  SDK
Amazon  SNS
Mobile  Push
2.  プッシュ通知
3.  データ同期
Amazon  SNS  Mobile  Push  との連携
Amazon  Cognito  がデータストアが更更新されたタイミングで、Amazon  SNS  Mobile  
Push  と連携して、各デバイスにプッシュ通知を送信できる。
プッシュ通知を受け取ったアプリはデータストアの再同期を⾏行行うように実装するなど。
Amazon  Cognito  Push  Sync
Amazon  Kinesis  との連携
Amazon  Cognito のデータストアが更更新されたタイミングで、Amazon  Kinesis  スト
リームで更更新や同期のデータを受け取ることができる。
モバイルアプリ
Mobile  SDK
Amazon  Cognito
Sync  Store
1.  データ同期
Amazon  Kinesis
2.  Stream
Content
ストリームの内容
3.  例例えば
Amazon  Redshift
{
"identityPoolId" : "Pool Id”
"identityId" : "Identity Id ”
"dataSetName" : "Dataset Name”
"operation" : "(replace|remove)”
"kinesisSyncRecords" : [
{
"key" : "Key",
"value" : "Value",
"syncCount" : 1,
"lastModifiedDate" : 1424801824343,
"deviceLastModifiedDate" : 1424801824343,
"op": "(replace|remove)" }, ...
],
"lastModifiedDate": 1424801824343,
"kinesisSyncRecordsURL": "S3Url",
"payloadType" : "(S3Url|Inline)",
"syncCount" : 1
}
Amazon  Cognito  Stream
モバイルアプリ
Mobile  SDK Amazon  Cognito
Sync  Store
1.  データ同期
AWS  Lambda
2.  Sync  Trigger
Amazon  Lambda  との連携
3.  何か処理理
Amazon  Cognito  Events
Key Value
住所 東京都□渋⾕谷区□松濤□1丁⽬目
Key Value
住所 東京都渋⾕谷区松濤1丁⽬目
元データ
修正済みデータ
空⽩白を削除
するプログラム
Lambda  Function
(Node.js)
典型的なユースケース
ユーザ
ユーザ認証をしたい
適切切な権限を与えたい
⾏行行動分析をしたい
データ
データの同期をしたい
データベースを使いたい
メディアファイル
画像/⾳音楽を保存したい
アセットを配信したい
ロジック
サーバサイドで処理理したい
独⾃自APIを⽤用意したい
メッセージ
プッシュ通知を送りたい
テスト
実機でテストしたい
<TEST/>
Joe Anna Bob
High  Scores
Joe 1500
Anna 800
Bob 750
Amazon  DynamoDB
No  SQL  データベース
⾼高い信頼性、スケーラビリティ、低レイテ
ンシで安定した性能を兼ね備えた NoSQL
データベースサービス
DynamoDB Connector
• Object  Mapper
• アプリ側のクラスが Amazon  
DynamoDB テーブルにマッピング
• オブジェクトをテーブルに変換する
ことも、その逆も必要ない
Id isbn Title hardCover
1 22-­22222 My  First  Book Yes
2 43-­43234 My  Favorite  Book No
3 55-­12345 My  New Book Yes
Table:  Bookstore
コード例例(Android)
@DynamoDBTable(tableName = "Bookstore")
public static class Book {
private int id;
private String isbn, title;
private Boolean hardCover;
@DynamoDBHashKey(attributeName = "id")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@DynamoDBAttribute(attributeName="isbn")
public String getIsbn() {
return isbn;
}
...
}
コード例例(Android)
// Build a book object
Book book = new Book();
book.setId(17);
book.setIsbn("222-2222222222");
book.setTitle("Some Title");
book.setHardCover(true);
// Save book object to dynmaoDB
mapper.save(book);
// Update item and save object again
book.setTitle("Updated Title");
book.setHardCover(false);
mapper.save(book);
// Load another book
Book anotherBook = mapper.load(Book.class,7);
典型的なユースケース
ユーザ
ユーザ認証をしたい
適切切な権限を与えたい
⾏行行動分析をしたい
データ
データの同期をしたい
データベースを使いたい
メディアファイル
画像/⾳音楽を保存したい
アセットを配信したい
ロジック
サーバサイドで処理理したい
独⾃自APIを⽤用意したい
メッセージ
プッシュ通知を送りたい
テスト
実機でテストしたい
<TEST/>
ケース4画像や⾳音楽をアップロード/ダウンロードしたいAmazon  S3
リージョン
3か所以上で
⾃自動複製
データセンターA
データセンターB
データセンターC
Joe Anna Bob
オンラインストレージ
安全で耐久性があり拡張性の⾼高い容量量無制限の
マネージドオンラインストレージサービス
S3  Connector:  Transfer  Manager
• マルチパートアップロード対応
• フォールトトレラントなダウンロード
• バックエンドサーバー不不要
• ⾃自動リトライ
• モバイルアプリ/ネットワークに最適化するための
ポーズ、レジューム、キャンセル関数
コード例例(Android)
// Creating the transfer manager
TransferManager = new TransferManager(credentialProvider);
// Upload image
Upload upload = transferManager.upload(BUCKET_NAME, fileName, file);
// Download image
Download download = transferManager.download(BUCKET_NAME, mKey, file);
// Pause, and Resume
try {
PersistableDownload = download.pause();
//do something if we didn’t abort
} catch(PauseException e) {
//do something if we aborted
}
download = transferManager.resumeDownload(persistableDownload);
コード例例(iOS)
// Creating the transfer manager
self.transferManager = [S3TransferManager new];
self.transferManager.s3 = s3client;
// Upload image
[self.transferManager uploadFile:fileName bucket:bucketName
key:objectName];
// Download image
[self.transferManager downloadFile:fileName bucket:bucketName
key:objectName];
// Pause, Resume, Cancel
[self.transferManager pauseAllTransfers];
[self.transferManager resumeAllTransfers];
[self.transferManager cancelAllTransfers];
典型的なユースケース
ユーザ
ユーザ認証をしたい
適切切な権限を与えたい
⾏行行動分析をしたい
データ
データの同期をしたい
データベースを使いたい
メディアファイル
画像/⾳音楽を保存したい
アセットを配信したい
ロジック
サーバサイドで処理理したい
独⾃自APIを⽤用意したい
メッセージ
プッシュ通知を送りたい
テスト
実機でテストしたい
<TEST/>
Amazon S3  /  Amazon  CloudFront
Webサイトホスティング機能(Amazon S3)
静的なWebサイトをS3のみで配信可能
任意のドメインへのリダイレクトも
独⾃自ドメイン利利⽤用可能
Amazon  CloudFront
マネージドCDN
世界53箇所のエッジロケーション
ストリーミング配信も対応
クライアント
レスポンス向上 負荷軽減
Amazon
CloudFront
キャッシュ
配信 オフロード
Webサーバ
典型的なユースケース
ユーザ
ユーザ認証をしたい
適切切な権限を与えたい
⾏行行動分析をしたい
データ
データの同期をしたい
データベースを使いたい
メディアファイル
画像/⾳音楽を保存したい
アセットを配信したい
ロジック
サーバサイドで処理理したい
独⾃自APIを⽤用意したい
メッセージ
プッシュ通知を送りたい
テスト
実機でテストしたい
<TEST/>
Lambdaファンクション:  ステートレス、トリガーベースのコード実⾏行行
AWS  Lambda
あらゆるスケールで⾼高性能
費⽤用対効果が⾼高く効率率率的
インフラ管理理不不要
使った分だけの⽀支払い
リクエスト量量に応じて⾃自動的に
キャパシティ調整
100ms単位のコンピュート課⾦金金
⾃自⾝身のコードを持ち込み
標準的な⾔言語でコードを実⾏行行
スレッド、プロセス、ファイル
やシェルスクリプトも利利⽤用可能
インフラではなくビジネスロジック
に集中可能
コードをアップロードするだけで、
Lambdaが全てをハンドリング
AWS  Lambda
インフラを⼀一切切気にすることなくアプリケーションコード
を実⾏行行できるコンピュートサービス
• 実⾏行行基盤は全てAWSが管理理
• AWSサービスと連携させることで簡単にイベントドリブンなア
プリケーションを実装可能
• コード実⾏行行時間に対しての課⾦金金でありコスト効率率率が⾮非常に⾼高い
• VPC内のリソースへのアクセスも近⽇日サポート
Lambda  function
• JavaScript(Node.js)およびJava、Pythonで記述
• サードパーティライブラリも利利⽤用可能
AWS  Lambdaの利利⽤用例例
S3に画像がアップロードされたときにサムネイルの⽣生成や
リサイズを実⾏行行
AWS  LambdaAmazon  S3  Bucket  イベント
元画像 サムネイル画
像
1
2
3
イベントソース
現時点では以下のAWSサービスをサポート
• Amazon  S3
• Amazon  Kinesis
• Amazon  DynamoDB Streams(Preview)
• Amazon  Cognito
• Amazon  SNS
• Alexa  AppKit
• Amazon  SWF
• Amazon  SES  inbound  mail
• Amazon  CloudWatch Logs
• Amazon  Connected  Home  (Preview)
• AWS  IoT
株式会社リブセンス
成功報酬型アルバイト求⼈人サイト
ジョブセンス
転職クチコミサイト
転職会議
AWSにおける モバイル向けサービス及び事例紹介(20151211)
画像配信
サーバ
各種DB
処理理A 処理理B 処理理C
各物件情報
提供元
これまでの構成
画像配信
サーバ
各種DB
処理理A 処理理B 処理理C
各物件情報
提供元
これまでの構成
各社違うフォーマット
終わらない前段ジョブ
サーバのお守り
ロード時間の拡⼤大
前段ジョブに依存した
処理理内容
画像配信
サーバ
各種DB
処理理A 処理理B 処理理C
各物件情報
提供元
これまでの構成
各社違うフォーマット
終わらない前段ジョブ
サーバのお守り
ロード時間の拡⼤大
前段ジョブに依存した
処理理内容
• 各社のフォーマットを扱うことによる『違いの吸収層』の
複雑化
• ジョブが段階を持っているのでスケールさせにくい
• 前段ジョブに依存した処理理機構のため、サービス改善が⼤大
変
• サーバメンテナンスの複雑化
• バッチによるサービス内容の劣劣化
各物件情報
提供元
連携サーバ
元データ
Lambda
処理理C
RDS
画像配信S3
CloudSearch
変換処理理A
PUT
処理理D変換処理理B
書き込み
処理理
API  Gateway
⼊入⼒力力層 サービス層 ストア層
Kinesis
新アーキテクチャ
各物件情報
提供元
連携サーバ
元データ
Lambda
処理理C
RDS
画像配信S3
CloudSearch
変換処理理A
PUT
処理理D変換処理理B
書き込み
処理理
API  Gateway
⼊入⼒力力層 サービス層 ストア層
Kinesis
新アーキテクチャ
• ステートレスの制約や簡易易に並列列化できるところから、
バッチ起因のサービス改善がやりやすい
• API  GWを追加することで、バッチでは無い連携機能を追
加する標準化されたインターフェースを定義できる
• 個別の連携処理理・共通の処理理・ストア処理理、それぞれに
ついて簡単にスケールを適切切にできる
• リアルタイム処理理への移⾏行行が簡単
https://speakerdeck.com/takesinoda/kinesis-­woshi-­tutasutorimingunabatutishi-­xing-­ji-­pan-­falseshi-­zhuang
典型的なユースケース
ユーザ
ユーザ認証をしたい
適切切な権限を与えたい
⾏行行動分析をしたい
データ
データの同期をしたい
データベースを使いたい
メディアファイル
画像/⾳音楽を保存したい
アセットを配信したい
ロジック
サーバサイドで処理理したい
独⾃自APIを⽤用意したい
メッセージ
プッシュ通知を送りたい
テスト
実機でテストしたい
<TEST/>
Amazon  API  Gateway
v Web  APIの作成・保護・運⽤用と
公開を簡単に
v OS、キャパシティ等インフラの
管理理不不要
v バックエンドとしてLambda、
既存Webシステムを利利⽤用可能
v スロットリング/キャッシュ
Mobile  Apps
Websites
Services
API  
Gateway
AWS  Lambda  
functions
AWS
API  Gateway  
Cache
Endpoints   on  
Amazon   EC2  /  
Amazon   Elastic  
Beanstalk
Any  other  publicly  
accessible  endpoint
Amazon  
CloudWatch  
Monitoring
Managed
フルマネージドなサーバレスアーキテクチャ
InternetMobile  apps
AWS  Lambda  
functions
AWS
API  Gateway  
cache
Endpoints  on  
Amazon  EC2
Any  other  publicly  
accessible  endpoint
Amazon  
CloudWatch
Amazon  
CloudFront
API  
Gateway
API  Gateway
Other  AWS  
services
AWS  Lambda  
functions
従来の⼀一般的なWebアーキテクチャ
Web/APサーバをEC2で構築
ELBを配置し、スケーラブルな構成に
Webサーバは冗⻑⾧長化
DBはRDSによるMulti  AZ構成、もしくはEC2上で構築
EC2等のインフラは常時稼働
• オートスケーリングするとしても最低限必要な分は
常時起動
【課題】
インフラ構築
インフラの運⽤用管理理
• キャパシティ
• スケール
• デプロイ
• 耐障害性
• モニタリング
• ロギング
• セキュリティパッチの適⽤用
ビジネスの差別化には直接繋がらない機能のアプリ実装
• 認証
• スロットリング
• スケーラビリティの確保
etc
Web
DB
LB
API  Gateway  +  Lambdaが実現する
サーバレスアーキテクチャ
Lambda
API  Gateway
AWSサービス
クラウドサービスを活⽤用することでサーバ(EC2)を利利⽤用せずに構成するアーキテクチャ
S3
CloudFront
API  Gateway  +  Lambdaが実現する
サーバレスアーキテクチャ
JavaScript/ネイティブアプリによるUI実装
Lambda
API  Gateway
AWSサービス
クラウドサービスを活⽤用することでサーバ(EC2)を利利⽤用せずに構成するアーキテクチャ
S3
CloudFront
API  Gateway  +  Lambdaが実現する
サーバレスアーキテクチャ
JavaScript/ネイティブアプリによるUI実装
JavaScriptおよび静的コンテンツはS3に保存して配
信
• CloudFront経由の配信
Lambda
API  Gateway
AWSサービス
クラウドサービスを活⽤用することでサーバ(EC2)を利利⽤用せずに構成するアーキテクチャ
S3
CloudFront
API  Gateway  +  Lambdaが実現する
サーバレスアーキテクチャ
JavaScript/ネイティブアプリによるUI実装
JavaScriptおよび静的コンテンツはS3に保存して配
信
• CloudFront経由の配信
ロジックはAPI化
• API  Gatewayを利利⽤用
• バックエンドとしてLambdaを利利⽤用
Lambda
API  Gateway
AWSサービス
クラウドサービスを活⽤用することでサーバ(EC2)を利利⽤用せずに構成するアーキテクチャ
S3
CloudFront
API  Gateway  +  Lambdaが実現する
サーバレスアーキテクチャ
JavaScript/ネイティブアプリによるUI実装
JavaScriptおよび静的コンテンツはS3に保存して配
信
• CloudFront経由の配信
ロジックはAPI化
• API  Gatewayを利利⽤用
• バックエンドとしてLambdaを利利⽤用
JavaScript/iOS・AndroidはAPIを呼び出し
• Viewの構築は各クライアント上で⾏行行うLambda
API  Gateway
AWSサービス
クラウドサービスを活⽤用することでサーバ(EC2)を利利⽤用せずに構成するアーキテクチャ
S3
CloudFront
API  Gateway  +  Lambdaが実現する
サーバレスアーキテクチャ
JavaScript/ネイティブアプリによるUI実装
JavaScriptおよび静的コンテンツはS3に保存して配
信
• CloudFront経由の配信
ロジックはAPI化
• API  Gatewayを利利⽤用
• バックエンドとしてLambdaを利利⽤用
JavaScript/iOS・AndroidはAPIを呼び出し
• Viewの構築は各クライアント上で⾏行行う
Lambdaファンクションから各AWSサービスを利利⽤用
Lambda
API  Gateway
AWSサービス
クラウドサービスを活⽤用することでサーバ(EC2)を利利⽤用せずに構成するアーキテクチャ
S3
CloudFront
API  Gateway  +  Lambdaが実現する
サーバレスアーキテクチャ
JavaScript/ネイティブアプリによるUI実装
JavaScriptおよび静的コンテンツはS3に保存して配
信
• CloudFront経由の配信
ロジックはAPI化
• API  Gatewayを利利⽤用
• バックエンドとしてLambdaを利利⽤用
JavaScript/iOS・AndroidはAPIを呼び出し
• Viewの構築は各クライアント上で⾏行行う
Lambdaファンクションから各AWSサービスを利利⽤用
API  GW/LambdaともにEC2を利利⽤用した
システムへのアクセスも当然可能
Lambda
API  Gateway
AWSサービス
クラウドサービスを活⽤用することでサーバ(EC2)を利利⽤用せずに構成するアーキテクチャ
S3
CloudFront
VidRoll
課題
• EC2の管理理が難しくなりつ
つあった
• ITインフラではなくビジネ
スへのフォーカスが必要
解決⽅方法
• プレイヤーがAPI  Gateway
経由でLambdaを実⾏行行
• 動画のリアルタイム変換に
も利利⽤用
ベネフィット
• ⽣生産性が向上し、収益が10
倍になっても、エンジニア
の追加なし
典型的なユースケース
ユーザ
ユーザ認証をしたい
適切切な権限を与えたい
⾏行行動分析をしたい
データ
データの同期をしたい
データベースを使いたい
メディアファイル
画像/⾳音楽を保存したい
アセットを配信したい
ロジック
サーバサイドで処理理したい
独⾃自APIを⽤用意したい
メッセージ
プッシュ通知を送りたい
テスト
実機でテストしたい
<TEST/>
Amazon  SNS
Mobile  Push  
Internet
Apple  APNS
Google  GCM
Amazon  ADM
Windows  WNS  
and  MPNS
Baidu  CP
業界初!
Amazon  SNS  Mobile  Push
世界中のユーザにクロスプラットフォームでプッシュ通知
個々の通知だけでなく多数の受信者への同報通知も可能
Android  Phones  and  Tablets
Apple   iPhones  and  iPads
Kindle  Fire  Devices
Android  Phones  and  Tablets   in  China
iOS
Windows   Desktop   and  Windows   Phone  Devices
Mobile Pushはユーザに対し、あ
る瞬間、⼀一緒に⽣生活することを可
能にした。 例例えば数マイル離離れて
いても
2010年年サンフランシスコ
で設⽴立立
親しい友⼈人や家族といっ
た⾝身近な⼈人向けにデザイ
ンされたソーシャル
2つのアプリ、3プラット
フォーム、20⾔言語
Path
⼀一夜にしてゼロから500
ミリオン/⽇日までの成⻑⾧長
⾼高い可⽤用性と信頼性、速度度
移⾏行行は簡単
10m
170m
500m
Day  1 Day  2 Day  3
Path  Daily  SNS  Mobile  
Push  Deliveries  
(millions)
…Rising
典型的なユースケース
ユーザ
ユーザ認証をしたい
適切切な権限を与えたい
⾏行行動分析をしたい
データ
データの同期をしたい
データベースを使いたい
メディアファイル
画像/⾳音楽を保存したい
アセットを配信したい
ロジック
サーバサイドで処理理したい
独⾃自APIを⽤用意したい
メッセージ
プッシュ通知を送りたい
テスト
実機でテストしたい
<TEST/>
Android、iOS、Fire  
OSアプリをアップ
ロードし、テスト内容
を設定して、デバイス
を選択する。
選択したデバイスを
またいで並列列にアプ
リをテストできる。
迅速かつ安全である。
バグ、パフォーマン
ス、その他の問題を、
数分のうちに詳細に
レポートする。
YOUR
APP +
AWS  Device  Farm
AWS  クラウドにホスティングされた数多くのスマートフォン、タブレット、その
他の 実デバイスで、迅速かつ安全に Android、iOS、Fire  OS  アプリをテストし
て品質を向上できる。
デバイス
•デバイスのプロファイルは、製造メーカー/型&モデル/OS  バージョン/キャリア
の組み合わせである。
•AWS  データセンターにホスティングされており、ユーザーの要求に応じてスケール
できる。
•⼗十分なキャパシティ(多くの同⼀一のデバイスプロファイル)を保有している。
•ルート権限では動作しない。
•市場情報に基づいてデバイスは⽤用意され、新しいデバイスが発売されたら追加される。
新しいデバイス
最新のデバイスセット
を利利⽤用できる
AWS  データセンター
複数のフレームワークをサポート
テストオートメーションフレームワーク
•Appium(JUnit,  TestNG)
•Calabash
•Instrumentation(JUnit,   Espresso,  Robotium)
•uiautomator
ポイント
•プロジェクトごとに最適なソリューションを使ってテストを作れる。
•開発チームと QA  チームで要件が異異なっても、ひとつの共通プラットフォームに統合できる。
•新しく出現してくるフレームワークもサポートされることで統合できる。
IHS  Sphera®  First  Report™
• 安全上のインシデントやニアミスの情報をレポート
• オフライン利利⽤用可能
• カメラで撮影した画像の添付に対応
• Android/iOS
Development/testing  process
Develop SCM
commit Automated
build
trigger Automated
UI  test
(simulators)
always
Is
milestone
?
no
Beta  deploy
to
manual  testers
Automated
UI  test
(Device  Farm)
yes
Development/testing  process
Develop SCM
commit Automated
build
trigger Automated
UI  test
(simulators)
always
Is
milestone
?
no
Beta  deploy
to
manual  testers
Automated
UI  test
(Device  Farm)
yes
PMease  QuickBuild
• Javaベースのクロスプラットフォームな⾃自動ビルドサーバ
• AndroidとiOS向けの⾃自動ビルド
• HockeyAppとTestFlightを通じたベータ配布
• シミュレータに対するAppium  UI  テストの実⾏行行
• マイルストーンビルドはAWS  Device  Farmへ送付
Development/testing  process
Develop SCM
commit Automated
build
trigger Automated
UI  test
(simulators)
always
Is
milestone
?
no
Beta  deploy
to
manual  testers
Automated
UI  test
(Device  Farm)
yes
Appium
• 各種⾔言語で書かれたテストを実⾏行行可能なフレームワーク
• Ex:  Ruby,  Python,  Java,  JavaScript,  PHP,  C#
• 各⾔言語のテストランナーを利利⽤用
• Ex:  JUnit for  Java,  NUnit  for  C#
• 既存のネイティブアプリ向けUIテスト⾃自動化フレームワークを利利⽤用
• UIAutomation  – iOS
• UIAutomator  – Android
• テストのための特別なビルドが不不要であり、テストしたビルドをそのまま出せる
Development/testing  process
Develop SCM
commit Automated
build
trigger Automated
UI  test
(simulators)
always
Is
milestone
?
no
Beta  deploy
to
manual  testers
Automated
UI  test
(Device  Farm)
yes
HockeyApp
• Android、iOSとWindowsへのベータ配布
• iOS  – プロビジョニングプロファイルが必要
TestFlight
• iOSへのベータ配布
Development/testing  process
Develop SCM
commit Automated
build
trigger Automated
UI  test
(simulators)
always
Is
milestone
?
no
Beta  deploy
to
manual  testers
Automated
UI  test
(Device  Farm)
yes
Etsy
Etsy
• iOS,  Android向けに4つのアプリを提供
• アプリ開発の専任チームなし
• 2週間に⼀一度度のリリース
• 2⼈人のリリースマネージャと8⼈人のQA
スタッフ(Web+Mobile)
物理理デバイス上でのテスト
• AWS  Device  Farm
• テストジョブのスケジュール化とテスト結果収集のためにJenkins  
pluginを使⽤用
• 30分毎にスケジュールされたテスト実⾏行行
• Espresso(Android)とKIF(iOS)を実⾏行行
• デバイス上でのパフォーマンスメトリクス収集⽤用にファンクショナ
ルテストを使⽤用
対象デバイスの選択
Google  Analyticsを利利⽤用してよく利利⽤用されるdevices、OS、
解像度度を確認
いろいろあってよくわからないというあなたへ
数多くのサービス
1.  どのサービスを使うべきか? 2.  どうやってそれらをつなぎ合わせるか?
Identity  Provider  SDKs
+
=
Example:
Login  screen  &  integration  code
+
SDK
AWS  Mobile  Hub  (BETA)
AWS  Mobile  Hub  (Beta)
1.  単一の統合されたコンソール
2.  事前に用意された機能群
3.  サービスを自動でプロビジョニング
4.  自動生成されたアプリケーション
つまり、数分でAWS上にアプリを構築
AWS  Mobile  Hub  (Beta)
プロジェクトの作成と機能の追加
ユーザがどのようにサインインするか設定:
• サインインなし、オプショナルもしくは必須
サインインプロバイダを設定:
• Facebook  (Google,  Twitter,  Amazon  etc)
• 独⾃自のシステム(認証基盤)
クイックスタート⽤用アプリにサインイン画⾯面
を追加
Powered  by  Amazon  Cognito Identity  
例例:User  Sign-­in(ユーザサインイン)
アプリへのプッシュ通知
• iOS/Android
• 1:1  もしくはトピック
Quickstart  App  demonstrates  features
クイックスタートアプリでは以下の機能
をデモ
• 通知のEnable/Disable
• SNSを使ったトークンの⾃自動登録
• サブスクライブするトピックの選択
Powered  by  Amazon  SNS
例例:Push通知
スターターアプリのダウンロード
AWS  Mobile  Hub(BETA)
•AWSを使ったモバイルアプリの開発を簡単に
• ユーザサインインといった典型的ユースケースごとの
スターターコードを提供
• 関連サービスの設定と構築を⾃自動で
• AWS  Management  Consoleから利利⽤用可能
• 現在はUS-­East-­1のみ、東京リージョンと
ダブリンは近くサポート予定
• AWS  Mobile  Hub⾃自体のご利利⽤用は無料料
※利利⽤用する各サービスの費⽤用はかかります
事例例
株式会社ガリバーインターナショナル
v 全国の営業担当者が利利⽤用する
iPad  による査定システムを刷
新
v 査定システムは当初EC2上に構
築されていたが、Amazon  
DynamoDB、AWS  Lambda、
Amazon  Cognito等を組み合わ
せたシステムに刷新
v 今後はAmazon  API  Gateway  
を活⽤用したAPI化も進めていく
予定
株式会社すかいらーく
詳細はクラスメソッド株式会社のブログ
「Developers.IO」を参照
http://dev.classmethod.jp/cloud/skylark-­bamiyan-­mobile-­app/
AWSにおける モバイル向けサービス及び事例紹介(20151211)
AWSにおける モバイル向けサービス及び事例紹介(20151211)
Thanks

More Related Content

PDF
Serverless Architecture on AWS(20151121版)
PDF
UnityとAmazon Web Servicesで生み出す新しい価値
PDF
AWS クラウドで構築するスマホアプリ バックエンド
PDF
Amazon Cognito Deep Dive @ JAWS DAYS 2016
PDF
Scale Your Business without Servers
PDF
Serverless Architecture on AWS (20151201版)
PDF
AWSで実現するクラウドネイティブなアプリ開発のポイント
PDF
Serverless Revolution
Serverless Architecture on AWS(20151121版)
UnityとAmazon Web Servicesで生み出す新しい価値
AWS クラウドで構築するスマホアプリ バックエンド
Amazon Cognito Deep Dive @ JAWS DAYS 2016
Scale Your Business without Servers
Serverless Architecture on AWS (20151201版)
AWSで実現するクラウドネイティブなアプリ開発のポイント
Serverless Revolution

What's hot (20)

PPTX
クラウドネイティブなアーキテクチャでサクサク解析
PDF
AWS Black Belt Techシリーズ Amazon Cognito / Amazon Mobile Analytics
PDF
Black Belt Online Seminar Amazon Cognito
PDF
AWS Lambda / Amazon API Gateway Deep Dive
PDF
モバイル開発を支えるAWS Mobile Services
PPTX
成長していくサービスとAWS
PDF
IoTデザインパターン 2015 JAWS沖縄
PDF
クラウド・アプリケーションの作り方
PDF
Introducing Serverless Computing (20160802)
PDF
AWS meets Android - "AWS SDK for Android"で開発を楽にしよう!
PDF
クラウド時代のソフトウェアアーキテクチャ
PDF
Serverless Architecture on AWS(20151023版)
PDF
AWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみる
PDF
クラウドネイティブ化する未来
PDF
PHP で始める AWS モバイルサービス - PHPカンファレンス_20150530
PDF
モバイル開発者から見た サーバーレスアーキテクチャ
PDF
AWS Lambda Updates
PDF
AWS Lambda Update
PDF
5分でわかるAWS IoT! - あなたも今日からIoT生活 -
PDF
Androidを中心に紐解くIoT
クラウドネイティブなアーキテクチャでサクサク解析
AWS Black Belt Techシリーズ Amazon Cognito / Amazon Mobile Analytics
Black Belt Online Seminar Amazon Cognito
AWS Lambda / Amazon API Gateway Deep Dive
モバイル開発を支えるAWS Mobile Services
成長していくサービスとAWS
IoTデザインパターン 2015 JAWS沖縄
クラウド・アプリケーションの作り方
Introducing Serverless Computing (20160802)
AWS meets Android - "AWS SDK for Android"で開発を楽にしよう!
クラウド時代のソフトウェアアーキテクチャ
Serverless Architecture on AWS(20151023版)
AWS LambdaとAPI Gatewayでサーバレスなシステム構築に踏み出してみる
クラウドネイティブ化する未来
PHP で始める AWS モバイルサービス - PHPカンファレンス_20150530
モバイル開発者から見た サーバーレスアーキテクチャ
AWS Lambda Updates
AWS Lambda Update
5分でわかるAWS IoT! - あなたも今日からIoT生活 -
Androidを中心に紐解くIoT
Ad

Viewers also liked (20)

PDF
Amazon SNS Mobile Push を使ってみる
PDF
AWS Black Belt Online Seminar 2017 Amazon Athena
PDF
サーバーレスの今とこれから
PPSX
Mobile Hubで変わる、アプリ開発最前線
PDF
lambda-lgtm
PDF
AWS Mobile Hub で構築するクラウドネイティブモバイルアーキテクチャ
PDF
はじめてのMobile hub
PPTX
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
PPTX
俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編
PPTX
APIエコノミー (金融編)
PDF
iOSアプリ開発者から見たMobile Hub
PPTX
Amazon DynamoDBの紹介と東急ハンズでの活用について
PDF
API Gatewayで re:Inventのセッション探し
PDF
Blackbelt Online Serminar Parse.comからAWSへのモバイルアプリの移行
PDF
AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。
PDF
AWS Black Belt Techシリーズ Amazon SNS モバイルプッシュ
PDF
Amazon Web Services の本気がみたいか !? スピードと高可用性を両立したゲームインフラの構築と事例
PDF
フルマネージドのポイントシステム
PPTX
金融業界におけるAPIエコノミー / Fintech meetup / IBM
PPTX
トランザクションの設計と進化
Amazon SNS Mobile Push を使ってみる
AWS Black Belt Online Seminar 2017 Amazon Athena
サーバーレスの今とこれから
Mobile Hubで変わる、アプリ開発最前線
lambda-lgtm
AWS Mobile Hub で構築するクラウドネイティブモバイルアーキテクチャ
はじめてのMobile hub
俺とサーバレスアーキテクチャ Aws cognito + aws api gateway 編
俺とサーバレスアーキテクチャ Aws cognito + s3 + ses + lambda編
APIエコノミー (金融編)
iOSアプリ開発者から見たMobile Hub
Amazon DynamoDBの紹介と東急ハンズでの活用について
API Gatewayで re:Inventのセッション探し
Blackbelt Online Serminar Parse.comからAWSへのモバイルアプリの移行
AWSでAPI Gatewayから非同期でLambdaを起動してS3にファイルアップロードしようとしたらハマった話。
AWS Black Belt Techシリーズ Amazon SNS モバイルプッシュ
Amazon Web Services の本気がみたいか !? スピードと高可用性を両立したゲームインフラの構築と事例
フルマネージドのポイントシステム
金融業界におけるAPIエコノミー / Fintech meetup / IBM
トランザクションの設計と進化
Ad

Similar to AWSにおける モバイル向けサービス及び事例紹介(20151211) (20)

PDF
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
PDF
Architecting+for+high+availability
PPTX
Architectingforhighavailability 170629010328
PDF
AWS Black Belt Online Seminar 2018 re:Invent recap IoT and DevOps
PDF
aws mackerel twilio_handson_public
PPT
アマゾンクラウドの真価
PDF
スタートアップならおさえておきたいAWS(Amazon Web Services)入門 ~メディア露出時のピーク対策編~ 先生:高山 博史・今井 雄太
PDF
AWS Introduction for Startups
PDF
AWS Wavelengthと大阪リージョンのご紹介20210414
PDF
Programming AWS with Perl at YAPC::Asia 2013
PDF
2011-04-21 クラウド勉強会
PDF
Serverless services on_aws_dmm_meetup_20170801
PDF
クラウド連携のキモは管理用API
PDF
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
PDF
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
PDF
AWS Black Belt Online Seminar 2016 AWS CloudFormation
PDF
AWS re:Invent 2019 Recap IoT アップデート
PDF
拡がるクラウドの利用用途 - AWSの強みとクラウド活用最新事例 -
PPTX
20170902 kixs azure&azure stack
PDF
【IVS CTO Night & Day】IoT Solution
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
Architecting+for+high+availability
Architectingforhighavailability 170629010328
AWS Black Belt Online Seminar 2018 re:Invent recap IoT and DevOps
aws mackerel twilio_handson_public
アマゾンクラウドの真価
スタートアップならおさえておきたいAWS(Amazon Web Services)入門 ~メディア露出時のピーク対策編~ 先生:高山 博史・今井 雄太
AWS Introduction for Startups
AWS Wavelengthと大阪リージョンのご紹介20210414
Programming AWS with Perl at YAPC::Asia 2013
2011-04-21 クラウド勉強会
Serverless services on_aws_dmm_meetup_20170801
クラウド連携のキモは管理用API
AWS Lake Formation で実現、マイクロサービスのサーバーレスな分散トレーシング
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS re:Invent 2019 Recap IoT アップデート
拡がるクラウドの利用用途 - AWSの強みとクラウド活用最新事例 -
20170902 kixs azure&azure stack
【IVS CTO Night & Day】IoT Solution

More from Keisuke Nishitani (15)

PDF
Application Lifecycle Management in a Serverless World
PDF
Serverless Anti-Patterns
PDF
AWSでアプリ開発するなら 知っておくべこと
PDF
Tune Up AWS Lambda
PDF
What's new with Serverless
PDF
Introduction to AWS X-Ray
PDF
Introducing Amazon Rekognition, Amazon Polly and Amazon Lex
PDF
What's new with Serverless
PDF
AWSのサーバレス関連アップデートを10分で紹介します
PDF
Going Serverless, Building Applications with No Servers
PDF
Building Scalable Application on the Cloud
PDF
RESTful API 入門
PDF
Automated Testing on AWS Device Farm
PDF
RubyとAmazon Web Service で生み出す新しい価値
PDF
AWS Lambdaを紐解く
Application Lifecycle Management in a Serverless World
Serverless Anti-Patterns
AWSでアプリ開発するなら 知っておくべこと
Tune Up AWS Lambda
What's new with Serverless
Introduction to AWS X-Ray
Introducing Amazon Rekognition, Amazon Polly and Amazon Lex
What's new with Serverless
AWSのサーバレス関連アップデートを10分で紹介します
Going Serverless, Building Applications with No Servers
Building Scalable Application on the Cloud
RESTful API 入門
Automated Testing on AWS Device Farm
RubyとAmazon Web Service で生み出す新しい価値
AWS Lambdaを紐解く

AWSにおける モバイル向けサービス及び事例紹介(20151211)