Takayuki  Shimizu
Solutions  Architect,  Amazon  Data  Services  Japan,  K.K.
PHP  カンファレンス  2015
2015.  5.  30
                で始める
AWS  Mobile  サービス
⾃自⼰己紹介
清⽔水  崇之  @shimy.net
•  アマゾン  データ  サービス  ジャパン  株式会社
⎼  ソリューション  アーキテクト
•  ⻄西⽇日本担当(⼤大阪のお客様にもプライム対応!だけどプライスレス)
•  ゲーム、モバイル、Web  サービス全般
•  AWS  芸⼈人  (詳しくは  http://www.slideshare.net/shimy_̲net)
アジェンダ
"  AWS  Mobile  サービス
"  AWS  Mobile  SDK
•  AWS  SDK  for  PHP  アップデート
"  Amazon  Cognito
•  Identity  (ユーザ認証)
•  Sync(データ保存/同期)
"  Amazon  SNS  Mobile  Push
"  まとめ
アジェンダ
"  AWS  Mobile  サービス
"  AWS  Mobile  SDK
•  AWS  SDK  for  PHP  アップデート
"  Amazon  Cognito
•  Identity  (ユーザ認証)
•  Sync(データ保存/同期)
"  Amazon  SNS  Mobile  Push
"  まとめ
あなたのモバイルアプリの特徴は?
あなたがもっとも時間をかけている部分は?
質問
あなたのモバイルアプリの特徴は?
あなたがもっとも時間をかけている部分は?
質問
時間をかけるべき部分に
時間をかけられているかを
チェックする質問です
あなたのモバイルアプリの特徴は?
あなたがもっとも時間をかけている部分は?
質問
実際は、課題がいっぱい
開発者が直⾯面する課題
ü  複数のプラットフォーム
ü  スケーラビリティの確保
ü  管理理や運⽤用のコスト
ü  ユーザ体験の阻害
ü  ユーザIDの管理理
モバイルアプリのコード
ユーザID管理理、認証
ユーザデータの同期処理理
⾮非同期通信
アクティブデバイスの分析
ユーザ⾏行行動の分析
コンバージョンの分析
プッシュ通知
イベントトリガー
プラットフォームごとのはっきりしない仕様
データチェックと変換
ファイルやメディアのストレージ
共有データベースのストレージ
データコレクション  
その他さまざま….
AWS  Cloud  インフラストラクチャ
実際は、課題がいっぱい
開発者が直⾯面する課題
ü  複数のプラットフォーム
ü  スケーラビリティの確保
ü  管理理や運⽤用のコスト
ü  ユーザ体験の阻害
ü  ユーザIDの管理理
モバイルアプリのコード
ユーザID管理理、認証
ユーザデータの同期処理理
⾮非同期通信
アクティブデバイスの分析
ユーザ⾏行行動の分析
コンバージョンの分析
プッシュ通知
イベントトリガー
プラットフォームごとのはっきりしない仕様
データチェックと変換
ファイルやメディアのストレージ
共有データベースのストレージ
データコレクション  
その他さまざま….
AWS  Cloud  インフラストラクチャ
時間とお⾦金金は有限
クラウドを活⽤用して
課題を解決
でも実際は
サーバープログラムも
ちょっと必要
安⼼心と伝統の
AWS  SDK  for  PHP
管理理  &
セキュリティ
アクセス
コントロール
Identity
Management
キー管理理
&  ストレージ
モニタリング
&  ログ
リソース  &
利利⽤用の監査
プラットフォーム
サービス
分析 アプリケーション 開発者ツール  &  運⽤用 モバイル
Data
Pipelines
データウェアハウス
Hadoop
Real-time
Streaming Data
アプリケーション
ライフサイクル管理理
コンテナ
デプロイ
DevOps
イベント駆動
コンピューティング
リソース
テンプレート
ユーザ認証
アナリティクス
プッシュ通知
データ同期
App
Streaming
Eメール
キュー&通知
検索索
トランス
コーディング
Workflow
コアサービス CDN
コンピュート
(VMs, Auto-scaling
& Load Balancing)
データベース
(Relational,
NoSQL, Caching)
ネットワーク
(VPC, DX, DNS)
ストレージ
(Object, Block
and Archival)
インフラストラクチャ アベイラビリティゾーン
Points of
Presence
リージョン
エンタープライズ
アプリケーション ビジネスEメール共有&コラボレーション仮想デスクトップ
技術  &  
ビジネスサポート
アカウント
マネージメント
パートナー
エコシステムプロサービス
セキュリティ
料料⾦金金レポート
ソリューション
アーキテクト
サポート
トレーニング
資格
AWS  が提供する  40  以上のサービス
AWS  Mobile  サービス
Amazon  Cognito
Kinesis DynamoDB S3 SQS SES
グローバルインフラ
コアとなるサービス群
モバイルに最適化
されたコネクタ
モバイルに最適化
されたサービス
AWS  SDK  for  Android
ストレージ ネットワーク データベース 分析 コンピュート
AWS  Mobile  SDK
Amazon  Mobile  Analytics Amazon  SNS  Mobile  Push
AWS  SDK  for  iOS AWS  SDK  for  Unity
あなたのモバイルアプリ
ゲームアプリ ユーティリティアプリ 家計簿アプリ クーポンアプリ
Lambda
λ
Lambda  Functions
λ
λ
AWS  Mobile  サービス
Amazon  Cognito
Kinesis DynamoDB S3 SQS SES
グローバルインフラ
コアとなるサービス群
モバイルに最適化
されたコネクタ
モバイルに最適化
されたサービス
AWS  SDK  for  Android
ストレージ ネットワーク データベース 分析 コンピュート
AWS  Mobile  SDK
Amazon  Mobile  Analytics Amazon  SNS  Mobile  Push
AWS  SDK  for  iOS AWS  SDK  for  Unity
あなたのモバイルアプリ
ゲームアプリ ユーティリティアプリ 家計簿アプリ クーポンアプリ
Lambda
λ
Lambda  Functions
λ
λ
ユーザアイデンティティ    
データ同期
アナリティクス
レポート
プッシュ通知
NoSQLデータベース断続的なネットワーク
コネクションを処理理で
きるレコーダー
コンテンツのアップ
ロード,  ダウンロード
Eメール分散キュー
バックエンドサーバーな
しで実⾏行行できるステート
レスなクラウド関数
AWS  Mobile  サービス
Amazon  Cognito
Kinesis DynamoDB S3 SQS SES
グローバルインフラ
コアとなるサービス群
モバイルに最適化
されたコネクタ
モバイルに最適化
されたサービス
AWS  SDK  for  Android
ストレージ ネットワーク データベース 分析 コンピュート
AWS  Mobile  SDK
Amazon  Mobile  Analytics Amazon  SNS  Mobile  Push
AWS  SDK  for  iOS AWS  SDK  for  Unity
あなたのモバイルアプリ
ゲームアプリ ユーティリティアプリ 家計簿アプリ クーポンアプリ
Lambda
λ
Lambda  Functions
λ
λ
ユーザアイデンティティ    
データ同期
アナリティクス
レポート
プッシュ通知
NoSQLデータベース断続的なネットワーク
コネクションを処理理で
きるレコーダー
コンテンツのアップ
ロード,  ダウンロード
Eメール分散キュー
バックエンドサーバーな
しで実⾏行行できるステート
レスなクラウド関数
AWS  Mobile  サービス
Amazon  Cognito
Kinesis DynamoDB S3 SQS SES
グローバルインフラ
コアとなるサービス群
モバイルに最適化
されたコネクタ
モバイルに最適化
されたサービス
AWS  SDK  for  Android
ストレージ ネットワーク データベース 分析 コンピュート
AWS  Mobile  SDK
Amazon  Mobile  Analytics Amazon  SNS  Mobile  Push
AWS  SDK  for  iOS AWS  SDK  for  Unity
あなたのモバイルアプリ
ゲームアプリ ユーティリティアプリ 家計簿アプリ クーポンアプリ
Lambda
λ
Lambda  Functions
λ
λ
モバイルプラットフォームに合わせて
AWS  SDK  を利利⽤用
アジェンダ
"  AWS  Mobile  サービス
"  AWS  Mobile  SDK
•  AWS  SDK  for  PHP  アップデート
"  Amazon  Cognito
•  Identity  (ユーザ認証)
•  Sync(データ保存/同期)
"  Amazon  SNS  Mobile  Push
"  まとめ
AWS  Mobile  SDK
クロスプラットフォーム
•  Android,  Fire  OS,  iOS,  Unity  をサポート
共通の認証
•  Amazon  Cognito  により認証機構を迅速に導⼊入可能
ネットワーク状態を⾃自動でハンドリング
•  例例:  ローカルキャッシュによりオフラインでも利利⽤用可能
メモリフットプリントの削減
•  導⼊入するパッケージをサービス単位で選択可能
AWS  Mobile  SDK  for  Unity  (5/14  release)
⼈人気ゲームエンジン  Unity  をサポート
•  ゲームから  AWS  サービスをコールできるように構成されている
•  Unity  4.0  以降降をサポート
サポートする  AWS  サービス
•  Amazon  Cognito
•  Amazon  S3
•  Amazon  DynamoDB
•  Amazon  Mobile  Analytics
•  その他サービスも  Coming  Soon  !
多くの⾔言語とプラットフォームをカバーする  SDK  と  IDE
サーバーサイド
から利利⽤用
Android iOS
Java NodeJS .NET PHP Python Ruby
JavaScript  in  Browser
クライアントサイド
から利利⽤用
Unity
コマンドライン
から利利⽤用
モバイル ブラウザ
CLI Powershell
IDE  から利利⽤用
Eclipse Visual  Studio
SDK
性能改善、依存関係アップデート
ここ数年年にわたるバージョン  2  で受け取ったフィードバックに応えてビルドされまし
た。依存関係をアップデートし、性能を改善し、最新の  PHP  のスタンダードに則って
ビルドされました。
AWS  SDK  for  PHP  version  3  -‐‑‒  2015.5.27  NEW
⾮非同期コール
AWS  に対して⾮非同期コールを⾏行行うことが可能になり
ました。コールは  Promises  を返します。コールを発
⾏行行した後、それが完了了し、結果にアクセスできるよう
になるのを待つことができます。⾮非同期ワークフロー
を作成するために複数のコールを⼀一緒につなげること
ができます。
同期コールと⾮非同期コール
//  処理理を実⾏行行すると  Result  オブジェクトが返却される
$result = $s3Client->putObject([!
    'Bucket' => 'your-bucket',!
    'Key'    => 'docs/file.pdf',!
    'Body'   => fopen('/path/to/file.pdf', 'r'),!
]);!
 !
//  Result  オブジェクトを通して結果にアクセスできる
echo $result['ObjectURL'];!
//  処理理を実⾏行行すると  Promise  オブジェクトが⾮非同期に返却される
$promise = $s3Client->putObjectAsync([!
    'Bucket' => 'your-bucket',!
    'Key'    => 'docs/file.pdf',!
    'Body'   => fopen('/path/to/file.pdf', 'r'),!
]);!
 !
//  処理理が完了了して  Result  オブジェクトを取得できるのを待つ
$result = $promise->wait();!
 !
//  その後、同期コールと同じように  Result  オブジェクトを通して結果にアクセスできる
echo $result['ObjectURL'];!
同期コール
⾮非同期コールNEW
例例)⾮非同期コールによる  DynamoDB  のテーブル作成
$client->createTableAsync([!
    'TableName' => $table,!
    // Other params...!
])->then(function () use ($client, $table) {!
    return $client->getWaiter('TableExists', [!
        'TableName' => $table,!
    ])->promise();!
})->then(function () use ($client, $table) {!
    return $client->putItemAsync([!
        'TableName' => $table,!
        'Item' => [!
            // Item attributes...!
        ]!
    ]);!
})->wait();!
⾮非同期ワークフローを作れる
DynamoDB(NoSQLデータベース)  のテーブルを作る場合は、Waiters  を利利⽤用してテー
ブルが  ACTIVE  になるまで待ち、その後データを書き込むことができる。Promise  オブ
ジェクトの  then()  メソッドを使って、このようなアクションを続けざまに実装すること
ができる。
アジェンダ
"  AWS  Mobile  サービス
"  AWS  Mobile  SDK
•  AWS  SDK  for  PHP  アップデート
"  Amazon  Cognito
•  Identity  (ユーザ認証)
•  Sync(データ保存/同期)
"  Amazon  SNS  Mobile  Push
"  まとめ
Amazon  Cognito
Amazon  Cognito  
ユーザIDとアクセス
管理理の簡略略化
クロスデバイス、クロスプ
ラットフォームのデータ同期
Guest
独⾃自認証
ID  プロバイダ
ゲストアクセス
独⾃自認証システム
ユニーク  ID
ジョー アンナ ボブ
デバイス
プラットフォーム
AWS  サービス
独⾃自認証システム
ID  プロバイダによる認証ではなく
独⾃自の  Username  と  Password  で認証
複数の  ID  プロバイダ
ID  プロバイダと簡単に連携して認証
Amazon,  Facebook,  Twitter,  Google,  
OpenID  Connect  などに対応
ゲストユーザアクセス
アカウント作成やログインを必要とせず、セ
キュアに  AWS  サービスを利利⽤用でき、アプリ
の特徴を損なわない。”モノ”の  ID  として
Amazon  Cognito  Identity
Mobile
Analytics
S3
 DynamoDB
 Kinesis
DynamoDB
モバイルアプリ
Amazon  Cognito
Identity
Cognito  ID
Temp  Credentials
S3
Access  Token
Pool  ID
Role  ARNs
Temp  Credentials
Mobile  SDK
IDプロバイダ
Kinesis
Cognito  による認証のフロー
ID  プロバイダや独⾃自認証システムと連携して認証することで、任意のポリシーを持った⼀一
時的なクレデンシャルが発⾏行行され、AWS  リソースを利利⽤用する。
Amazon  Cognito  Identity
ゲストアクセス
独⾃自の認証システム
セキュリティ
細やかなアクセス制御
IAM  との連携で  AWS  リソースへの細かなアクセ
ス制御を実現
AWS  Credentials  の保護
必要な権限だけを付与された⼀一時的なクレデンシャル
を取得できるので、アプリにクレデンシャルを埋め込
まなくてよい
セキュリティのベストプラクティスを⽀支援
セキュリティトークンサービスと連携したり、トー
クンベンディングマシンを構築する必要はない
セキュアに  AWS  サービスを利利⽤用
EC2
 S3
 DynamoDB
 Kinesis
S3
DynamoDB
Get Delete Put
Developer  Authenticated  Identities  
DynamoDBモバイルアプリ
Amazon  Cognito
Identity1.  Login
4.  OpenID  
Token 6.  Cognito  ID
Temp  Credentials
S3
5.  OpenID  Token
Pool  ID
Role  ARNs
7.  Temp  Credentials
Mobile  SDK
独⾃自の認証システム
Analytics
2.  GetOpenIDTokenForDeveloperIdentity()
3.  OpenID  Token
独⾃自認証のフロー
パブリック  ID  プロバイダではなく独⾃自の  Username/Password  で認証し、任意のポリ
シーを持った⼀一時的なクレデンシャルが発⾏行行され、AWS  リソースを利利⽤用する。
PHP
プログラム
Developer  Authenticated  Identities  
DynamoDBモバイルアプリ
Amazon  Cognito
Identity1.  Login
4.  OpenID  
Token 6.  Cognito  ID
Temp  Credentials
S3
5.  OpenID  Token
Pool  ID
Role  ARNs
7.  Temp  Credentials
Mobile  SDK
独⾃自の認証システム
Analytics
2.  GetOpenIDTokenForDeveloperIdentity()
3.  OpenID  Token
独⾃自認証のフロー
パブリック  ID  プロバイダではなく独⾃自の  Username/Password  で認証し、任意のポリ
シーを持った⼀一時的なクレデンシャルが発⾏行行され、AWS  リソースを利利⽤用する。
PHP
プログラム
独⾃自認証システムと連携する(GetOpenIdTokenForDeveloperIdentity)
//  サーバープログラムから  Cognito  へ問い合わせて  Token  を取得する
$result = $client->getOpenIdTokenForDeveloperIdentity(array(!
'IdentityPoolId' => 'string',!
'IdentityId' => 'string',!
'Logins' => array(!
'IdentityProviderName' => 'string',!
), !
'TokenDuration' => integer, !
));!
Returns
GuzzleServiceResourceModel
IdentityId => (string)!
Token => (string)!
Amazon  Cognito  
ユーザIDとアクセス
管理理の簡略略化
クロスデバイス、クロスプ
ラットフォームのデータ同期
Guest
独⾃自認証
Amazon  Cognito  Sync  クラウドへのデータ保存と同期
User Data
Storage and
Sync
Any Platform
iOS/Android/FireOS
アプリのデータ、設定、状態などをクラウドへ保存
アプリやデバイスのデータをクラウドに保存でき、ログイ
ン後にマージされる
クロスデバイス、クロスプラットフォームで同期
ユーサデータや設定をデバイスをまたいで同期
k/v data
Identity pool
複数のアカウントにリンク
アプリやデバイスのデータをクラウドに保存で
き、ログイン後にマージされる
ユーザあたり  20MB  
各データセットは  1MB  までの  Key/Value
最⼤大  1024  Key  まで保存
バイナリデータは  Base64  でエンコードして保存
SDK
ローカルデータストア
オフライン動作
データはまずローカルのデータストレージに保存されるので、
電波が不不安定もしくは不不通であってもシームレスに動作できる
インテリジェントな同期処理理
同期メソッドはローカルとクラウドのデータのバージョンを⽐比
較して、データをプッシュ/プル
柔軟なコンフリクトの解決
同期メソッドは、変更更を読み取り後、ローカルの変更更をクラウ
ドのデータストアへ書き込む。デフォルトでは、最後の書き込
みを有効として保存する。開発者はコンフリクト処理理を独⾃自に
上書きして実装することもできる。
Amazon  Cognito  Sync  クラウドへのデータ保存と同期
Amazon  Cognito  Sync  クラウドへのデータ保存と同期
モバイルアプリ
Amazon  Cognito  
Identity
Mobile  SDK
Amazon  Cognito  
Sync  Store
3.  Dataset
Amazon  Cognito  Sync  のフロー
認証後に  Amazon  Cognito  から発⾏行行された  Cognito  ID  ごとに  Amazon  Cognito  Sync  
Store  というデータ領領域が割り当てられ、任意のデータセットを保存できる。
2.  Cognito  ID
Temp  Credentials
1.  Access  Token
Pool  ID
Role  ARNs
AWS  
Account
Dataset
Identity
Identity
Identity
Dataset
Dataset
Identity
Pool
1:n
1:n
1:n
ユーザ情報
Dataset
ゲーム状況
Dataset
お役⽴立立ちアプリ
ゲームアプリ
DatasetDataset
Key/Value
1:n
Amazon  Cognito  Sync  データモデル  –  例例
モバイルアプリ
(デバイス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
住所 ⼤大阪市□北北区□中之島
Key Value
住所 ⼤大阪市北北区中之島
元データ
修正済みデータ
空⽩白を削除
するプログラム
Lambda  Function
(Node.js)
Amazon  Cognito  Sync  をアプリに組み込む(Android)
CognitoSyncManager  の初期化
同期の実⾏行行
Dataset  の作成、  Key  Values  の追加
cognito = new CognitoSyncManager (context,!
Regions.US_EAST_1, provider);!
dataset.synchronize(new SyncCallback(){..});!
Dataset dataset = !
cognito.openOrCreateDataset(datasetName);!
dataset.put(key, value);!
アジェンダ
"  AWS  Mobile  サービス
"  AWS  Mobile  SDK
•  AWS  SDK  for  PHP  アップデート
"  Amazon  Cognito
•  Identity  (ユーザ認証)
•  Sync(データ保存/同期)
"  Amazon  SNS  Mobile  Push
"  まとめ
Amazon  SNS  Mobile  Push
通知は各プラットフォーム独⾃自の仕組みで送信
送信者 モバイルアプリ
モバイル
プラットフォーム
(e.g.  Apple,  
Google,  
Amazon)
そのため、プラットフォームごとのAPIを抽象化した中間プロバイダを利利
⽤用するのが⼀一般的
?
中間プロバイダ
送信者
モバイルアプリ
Apple APNS
Google GCM
Amazon ADM
プラットフォームを抽象化することの  メリット/デメリット
ü どのプラットフォームの
アプリに対しても簡単に
送信できる
ü 信頼性のある通知の管理理
ができる
û  運⽤用の複雑化
û  スケーラビリティの確保
û  堅牢牢性の確保
û  コスト  –  プラットフォー
ム側が無料料だとしても
メリット デメリット
けんろうせい
プラットフォームを抽象化することの  メリット/デメリット
ü どのプラットフォームの
アプリに対しても簡単に
送信できる
ü 信頼性のある通知の管理理
ができる
û  運⽤用の複雑化
û  スケーラビリティの確保
û  堅牢牢性の確保
û  コスト  –  プラットフォー
ム側が無料料だとしても
メリット デメリット
けんろうせい
Amazon  SNS  Mobile  Push  
なら  ⼤大丈夫
Amazon  SNS  Mobile  Push  はプラットフォーム横断型プッシュ通知の
ための中間マネージドサービス
Amazon SNS
Mobile Push
Apple  iOS
Google  Android
Amazon  Kindle  Fire
送信者
Baidu  Android
MS  Windows  Phone
独⾃自構築ウェブアプリの  API  経由でトークンを収集
モバイル
プラットフォーム モバイルアプリ
1.  トークン要求
2.  トークン返却
3.  トークン収集
4.  トークン登録
(Create  Platform  
Endpoint)
5.  EndpointArn  返却
6.  EndpointArn  保存
Mobile  Push
(属性情報も)
Database
Web
ELB
PHP
プログラム
独⾃自構築ウェブアプリの  API  経由でトークンを収集
モバイル
プラットフォーム モバイルアプリ
1.  トークン要求
2.  トークン返却
3.  トークン収集
4.  トークン登録
(Create  Platform  
Endpoint)
5.  EndpointArn  返却
6.  EndpointArn  保存
Mobile  Push
(属性情報も)
Database
Web
ELB
PHP
プログラム
トークンを登録して  Endpoint  を⽣生成
$result = $client->createPlatformEndpoint(array(!
'PlatformApplicationArn' => 'string',!
'Token' => 'string',!
'CustomUserData' => 'string',!
'Attributes' => array(!
'String' => 'string',!
), !
));!
トークンと属性情報を紐紐付けてプッシュ送信
モバイル
プラットフォーム モバイルアプリ
5.  メッセージ送信
2.  EndpointArn  ⼀一覧
Mobile  Push
1.  属性情報
などで検索索
Web Database
ELB
Worker
3.  Publish4.  メッセージ送信要求
メッセージ
管理理ツール
PHP
プログラム
トークンと属性情報を紐紐付けてプッシュ送信
モバイル
プラットフォーム モバイルアプリ
5.  メッセージ送信
2.  EndpointArn  ⼀一覧
Mobile  Push
1.  属性情報
などで検索索
Web Database
ELB
Worker
3.  Publish4.  メッセージ送信要求
メッセージ
管理理ツール
PHP
プログラム
Endpoint  にメッセージを送信
$result = $client->publish(array(!
'TopicArn' => 'string',!
'TargetArn' => 'string',!
'Message' => 'string',!
'Subject' => 'string',!
'MessageStructure' => 'string',!
'MessageAttributes' => array(!
'String' => array( !
'DataType' => 'string',!
'StringValue' => 'string',!
'BinaryValue' => 'string', !
),!
), !
));!
料料⾦金金
Amazon  Cognito
無料料利利⽤用枠(最初の  12  ヶ⽉月)
•  ⽉月あたり  100  万回の同期オペレーショ
ン
•  ⽉月あたり  10  GB  のデータストア
それ以降降
•  同期オペレーション
10000  回の同期オペレーションあたり  
$0.15
•  同期⽤用データストアの容量量
$0.15  /  GB
Amazon  SNS  Mobile  Push
無料料利利⽤用枠(最初の  12  ヶ⽉月)
•  ⽉月あたり  100  万リクエストまで
それ以降降
•  ⽉月あたり  100  万リクエストにつき  $1
アジェンダ
"  AWS  Mobile  サービス
"  AWS  Mobile  SDK
•  AWS  SDK  for  PHP  アップデート
"  Amazon  Cognito
•  Identity  (ユーザ認証)
•  Sync(データ保存/同期)
"  Amazon  SNS  Mobile  Push
"  まとめ
ユーザ認証
アクセスの認可
データの同期
ユーザ⾏行行動分析
メディアの管理理
メディアの配信
プッシュ通知の送信
共有データの保存
モバイル
アプリ
まとめ:モバイルアプリの課題を  AWS  サービスで解決
Amazon  Cognito
(Identity)
AWS  Identity  and  
Access  Management
Amazon  Cognito  
(Sync)
Amazon  Mobile  
Analytics
AWS  Lambda
Amazon  CloudFront
(Device  Detection)
Amazon  DynamoDB
(Object  Mapper)
Amazon  Kinesis
(Recorder)
Amazon  SNS  
Mobile  Push
AWS  Mobile  SDK
Amazon  S3
Transfer  Manager
ストリームリアルタイムデータビジネスロジックの実⾏行行
まとめ:AWS  を活⽤用して本来の業務へ集中!!
開発者が直⾯面する課題
ü  複数のプラットフォーム
ü  スケーラビリティの確保
ü  ⾼高コストな管理理や運⽤用
ü  ユーザ体験の阻害
ü  ユーザIDの管理理
モバイルアプリのコード
ユーザID管理理、認証
ユーザデータの同期処理理
⾮非同期通信
アクティブデバイスの分析
ユーザ⾏行行動の分析
コンバージョンの分析
プッシュ通知
イベントトリガー
プラットフォームごとのはっきりしない仕様
データチェックと変換
ファイルやメディアのストレージ
共有データベースのストレージ
データコレクション  
その他さまざま….
AWS  Cloud  インフラストラクチャ
本来の業務に集中!
まとめ:AWS  を活⽤用して本来の業務へ集中!!
開発者が直⾯面する課題
ü  複数のプラットフォーム
ü  スケーラビリティの確保
ü  ⾼高コストな管理理や運⽤用
ü  ユーザ体験の阻害
ü  ユーザIDの管理理
モバイルアプリのコード
ユーザID管理理、認証
ユーザデータの同期処理理
⾮非同期通信
アクティブデバイスの分析
ユーザ⾏行行動の分析
コンバージョンの分析
プッシュ通知
イベントトリガー
プラットフォームごとのはっきりしない仕様
データチェックと変換
ファイルやメディアのストレージ
共有データベースのストレージ
データコレクション  
その他さまざま….
AWS  Cloud  インフラストラクチャ
アプリを差別化!
PHP で始める AWS モバイルサービス - PHPカンファレンス_20150530

PHP で始める AWS モバイルサービス - PHPカンファレンス_20150530