Successfully reported this slideshow.
Your SlideShare is downloading. ×

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

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 63 Ad

More Related Content

Slideshows for you (20)

Viewers also liked (20)

Advertisement

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

More from 崇之 清水 (20)

Advertisement

Recently uploaded (20)

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

  1. 1. Takayuki  Shimizu Solutions  Architect,  Amazon  Data  Services  Japan,  K.K. PHP  カンファレンス  2015 2015.  5.  30                 で始める AWS  Mobile  サービス
  2. 2. ⾃自⼰己紹介 清⽔水  崇之  @shimy.net •  アマゾン  データ  サービス  ジャパン  株式会社 ⎼  ソリューション  アーキテクト •  ⻄西⽇日本担当(⼤大阪のお客様にもプライム対応!だけどプライスレス) •  ゲーム、モバイル、Web  サービス全般 •  AWS  芸⼈人  (詳しくは  http://www.slideshare.net/shimy_̲net)
  3. 3. アジェンダ "  AWS  Mobile  サービス "  AWS  Mobile  SDK •  AWS  SDK  for  PHP  アップデート "  Amazon  Cognito •  Identity  (ユーザ認証) •  Sync(データ保存/同期) "  Amazon  SNS  Mobile  Push "  まとめ
  4. 4. アジェンダ "  AWS  Mobile  サービス "  AWS  Mobile  SDK •  AWS  SDK  for  PHP  アップデート "  Amazon  Cognito •  Identity  (ユーザ認証) •  Sync(データ保存/同期) "  Amazon  SNS  Mobile  Push "  まとめ
  5. 5. あなたのモバイルアプリの特徴は? あなたがもっとも時間をかけている部分は? 質問
  6. 6. あなたのモバイルアプリの特徴は? あなたがもっとも時間をかけている部分は? 質問 時間をかけるべき部分に 時間をかけられているかを チェックする質問です
  7. 7. あなたのモバイルアプリの特徴は? あなたがもっとも時間をかけている部分は? 質問
  8. 8. 実際は、課題がいっぱい 開発者が直⾯面する課題 ü  複数のプラットフォーム ü  スケーラビリティの確保 ü  管理理や運⽤用のコスト ü  ユーザ体験の阻害 ü  ユーザIDの管理理 モバイルアプリのコード ユーザID管理理、認証 ユーザデータの同期処理理 ⾮非同期通信 アクティブデバイスの分析 ユーザ⾏行行動の分析 コンバージョンの分析 プッシュ通知 イベントトリガー プラットフォームごとのはっきりしない仕様 データチェックと変換 ファイルやメディアのストレージ 共有データベースのストレージ データコレクション   その他さまざま…. AWS  Cloud  インフラストラクチャ
  9. 9. 実際は、課題がいっぱい 開発者が直⾯面する課題 ü  複数のプラットフォーム ü  スケーラビリティの確保 ü  管理理や運⽤用のコスト ü  ユーザ体験の阻害 ü  ユーザIDの管理理 モバイルアプリのコード ユーザID管理理、認証 ユーザデータの同期処理理 ⾮非同期通信 アクティブデバイスの分析 ユーザ⾏行行動の分析 コンバージョンの分析 プッシュ通知 イベントトリガー プラットフォームごとのはっきりしない仕様 データチェックと変換 ファイルやメディアのストレージ 共有データベースのストレージ データコレクション   その他さまざま…. AWS  Cloud  インフラストラクチャ 時間とお⾦金金は有限
  10. 10. クラウドを活⽤用して 課題を解決
  11. 11. でも実際は サーバープログラムも ちょっと必要
  12. 12. 安⼼心と伝統の AWS  SDK  for  PHP
  13. 13. 管理理  & セキュリティ アクセス コントロール 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  以上のサービス
  14. 14. 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 λ λ
  15. 15. 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メール分散キュー バックエンドサーバーな しで実⾏行行できるステート レスなクラウド関数
  16. 16. 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メール分散キュー バックエンドサーバーな しで実⾏行行できるステート レスなクラウド関数
  17. 17. 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  を利利⽤用
  18. 18. アジェンダ "  AWS  Mobile  サービス "  AWS  Mobile  SDK •  AWS  SDK  for  PHP  アップデート "  Amazon  Cognito •  Identity  (ユーザ認証) •  Sync(データ保存/同期) "  Amazon  SNS  Mobile  Push "  まとめ
  19. 19. AWS  Mobile  SDK クロスプラットフォーム •  Android,  Fire  OS,  iOS,  Unity  をサポート 共通の認証 •  Amazon  Cognito  により認証機構を迅速に導⼊入可能 ネットワーク状態を⾃自動でハンドリング •  例例:  ローカルキャッシュによりオフラインでも利利⽤用可能 メモリフットプリントの削減 •  導⼊入するパッケージをサービス単位で選択可能
  20. 20. 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  !
  21. 21. 多くの⾔言語とプラットフォームをカバーする  SDK  と  IDE サーバーサイド から利利⽤用 Android iOS Java NodeJS .NET PHP Python Ruby JavaScript  in  Browser クライアントサイド から利利⽤用 Unity コマンドライン から利利⽤用 モバイル ブラウザ CLI Powershell IDE  から利利⽤用 Eclipse Visual  Studio SDK
  22. 22. 性能改善、依存関係アップデート ここ数年年にわたるバージョン  2  で受け取ったフィードバックに応えてビルドされまし た。依存関係をアップデートし、性能を改善し、最新の  PHP  のスタンダードに則って ビルドされました。 AWS  SDK  for  PHP  version  3  -‐‑‒  2015.5.27  NEW ⾮非同期コール AWS  に対して⾮非同期コールを⾏行行うことが可能になり ました。コールは  Promises  を返します。コールを発 ⾏行行した後、それが完了了し、結果にアクセスできるよう になるのを待つことができます。⾮非同期ワークフロー を作成するために複数のコールを⼀一緒につなげること ができます。
  23. 23. 同期コールと⾮非同期コール //  処理理を実⾏行行すると  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
  24. 24. 例例)⾮非同期コールによる  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()  メソッドを使って、このようなアクションを続けざまに実装すること ができる。
  25. 25. アジェンダ "  AWS  Mobile  サービス "  AWS  Mobile  SDK •  AWS  SDK  for  PHP  アップデート "  Amazon  Cognito •  Identity  (ユーザ認証) •  Sync(データ保存/同期) "  Amazon  SNS  Mobile  Push "  まとめ
  26. 26. Amazon  Cognito
  27. 27. Amazon  Cognito   ユーザIDとアクセス 管理理の簡略略化 クロスデバイス、クロスプ ラットフォームのデータ同期 Guest 独⾃自認証
  28. 28. ID  プロバイダ ゲストアクセス 独⾃自認証システム ユニーク  ID ジョー アンナ ボブ デバイス プラットフォーム AWS  サービス 独⾃自認証システム ID  プロバイダによる認証ではなく 独⾃自の  Username  と  Password  で認証 複数の  ID  プロバイダ ID  プロバイダと簡単に連携して認証 Amazon,  Facebook,  Twitter,  Google,   OpenID  Connect  などに対応 ゲストユーザアクセス アカウント作成やログインを必要とせず、セ キュアに  AWS  サービスを利利⽤用でき、アプリ の特徴を損なわない。”モノ”の  ID  として Amazon  Cognito  Identity Mobile Analytics S3 DynamoDB Kinesis
  29. 29. 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 ゲストアクセス 独⾃自の認証システム
  30. 30. セキュリティ 細やかなアクセス制御 IAM  との連携で  AWS  リソースへの細かなアクセ ス制御を実現 AWS  Credentials  の保護 必要な権限だけを付与された⼀一時的なクレデンシャル を取得できるので、アプリにクレデンシャルを埋め込 まなくてよい セキュリティのベストプラクティスを⽀支援 セキュリティトークンサービスと連携したり、トー クンベンディングマシンを構築する必要はない セキュアに  AWS  サービスを利利⽤用 EC2 S3 DynamoDB Kinesis S3 DynamoDB Get Delete Put
  31. 31. 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 プログラム
  32. 32. 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 プログラム
  33. 33. 独⾃自認証システムと連携する(GetOpenIdTokenForDeveloperIdentity) //  サーバープログラムから  Cognito  へ問い合わせて  Token  を取得する $result = $client->getOpenIdTokenForDeveloperIdentity(array(! 'IdentityPoolId' => 'string',! 'IdentityId' => 'string',! 'Logins' => array(! 'IdentityProviderName' => 'string',! ), ! 'TokenDuration' => integer, ! ));! Returns GuzzleServiceResourceModel IdentityId => (string)! Token => (string)!
  34. 34. Amazon  Cognito   ユーザIDとアクセス 管理理の簡略略化 クロスデバイス、クロスプ ラットフォームのデータ同期 Guest 独⾃自認証
  35. 35. 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  でエンコードして保存
  36. 36. SDK ローカルデータストア オフライン動作 データはまずローカルのデータストレージに保存されるので、 電波が不不安定もしくは不不通であってもシームレスに動作できる インテリジェントな同期処理理 同期メソッドはローカルとクラウドのデータのバージョンを⽐比 較して、データをプッシュ/プル 柔軟なコンフリクトの解決 同期メソッドは、変更更を読み取り後、ローカルの変更更をクラウ ドのデータストアへ書き込む。デフォルトでは、最後の書き込 みを有効として保存する。開発者はコンフリクト処理理を独⾃自に 上書きして実装することもできる。 Amazon  Cognito  Sync  クラウドへのデータ保存と同期
  37. 37. 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
  38. 38. 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  データモデル  –  例例
  39. 39. モバイルアプリ (デバイス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
  40. 40. 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
  41. 41. モバイルアプリ 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)
  42. 42. 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);!
  43. 43. アジェンダ "  AWS  Mobile  サービス "  AWS  Mobile  SDK •  AWS  SDK  for  PHP  アップデート "  Amazon  Cognito •  Identity  (ユーザ認証) •  Sync(データ保存/同期) "  Amazon  SNS  Mobile  Push "  まとめ
  44. 44. Amazon  SNS  Mobile  Push
  45. 45. 通知は各プラットフォーム独⾃自の仕組みで送信 送信者 モバイルアプリ モバイル プラットフォーム (e.g.  Apple,   Google,   Amazon)
  46. 46. そのため、プラットフォームごとのAPIを抽象化した中間プロバイダを利利 ⽤用するのが⼀一般的 ? 中間プロバイダ 送信者 モバイルアプリ Apple APNS Google GCM Amazon ADM
  47. 47. プラットフォームを抽象化することの  メリット/デメリット ü どのプラットフォームの アプリに対しても簡単に 送信できる ü 信頼性のある通知の管理理 ができる û  運⽤用の複雑化 û  スケーラビリティの確保 û  堅牢牢性の確保 û  コスト  –  プラットフォー ム側が無料料だとしても メリット デメリット けんろうせい
  48. 48. プラットフォームを抽象化することの  メリット/デメリット ü どのプラットフォームの アプリに対しても簡単に 送信できる ü 信頼性のある通知の管理理 ができる û  運⽤用の複雑化 û  スケーラビリティの確保 û  堅牢牢性の確保 û  コスト  –  プラットフォー ム側が無料料だとしても メリット デメリット けんろうせい Amazon  SNS  Mobile  Push   なら  ⼤大丈夫
  49. 49. Amazon  SNS  Mobile  Push  はプラットフォーム横断型プッシュ通知の ための中間マネージドサービス Amazon SNS Mobile Push Apple  iOS Google  Android Amazon  Kindle  Fire 送信者 Baidu  Android MS  Windows  Phone
  50. 50. 独⾃自構築ウェブアプリの  API  経由でトークンを収集 モバイル プラットフォーム モバイルアプリ 1.  トークン要求 2.  トークン返却 3.  トークン収集 4.  トークン登録 (Create  Platform   Endpoint) 5.  EndpointArn  返却 6.  EndpointArn  保存 Mobile  Push (属性情報も) Database Web ELB PHP プログラム
  51. 51. 独⾃自構築ウェブアプリの  API  経由でトークンを収集 モバイル プラットフォーム モバイルアプリ 1.  トークン要求 2.  トークン返却 3.  トークン収集 4.  トークン登録 (Create  Platform   Endpoint) 5.  EndpointArn  返却 6.  EndpointArn  保存 Mobile  Push (属性情報も) Database Web ELB PHP プログラム
  52. 52. トークンを登録して  Endpoint  を⽣生成 $result = $client->createPlatformEndpoint(array(! 'PlatformApplicationArn' => 'string',! 'Token' => 'string',! 'CustomUserData' => 'string',! 'Attributes' => array(! 'String' => 'string',! ), ! ));!
  53. 53. トークンと属性情報を紐紐付けてプッシュ送信 モバイル プラットフォーム モバイルアプリ 5.  メッセージ送信 2.  EndpointArn  ⼀一覧 Mobile  Push 1.  属性情報 などで検索索 Web Database ELB Worker 3.  Publish4.  メッセージ送信要求 メッセージ 管理理ツール PHP プログラム
  54. 54. トークンと属性情報を紐紐付けてプッシュ送信 モバイル プラットフォーム モバイルアプリ 5.  メッセージ送信 2.  EndpointArn  ⼀一覧 Mobile  Push 1.  属性情報 などで検索索 Web Database ELB Worker 3.  Publish4.  メッセージ送信要求 メッセージ 管理理ツール PHP プログラム
  55. 55. 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', ! ),! ), ! ));!
  56. 56. 料料⾦金金 Amazon  Cognito 無料料利利⽤用枠(最初の  12  ヶ⽉月) •  ⽉月あたり  100  万回の同期オペレーショ ン •  ⽉月あたり  10  GB  のデータストア それ以降降 •  同期オペレーション 10000  回の同期オペレーションあたり   $0.15 •  同期⽤用データストアの容量量 $0.15  /  GB Amazon  SNS  Mobile  Push 無料料利利⽤用枠(最初の  12  ヶ⽉月) •  ⽉月あたり  100  万リクエストまで それ以降降 •  ⽉月あたり  100  万リクエストにつき  $1
  57. 57. アジェンダ "  AWS  Mobile  サービス "  AWS  Mobile  SDK •  AWS  SDK  for  PHP  アップデート "  Amazon  Cognito •  Identity  (ユーザ認証) •  Sync(データ保存/同期) "  Amazon  SNS  Mobile  Push "  まとめ
  58. 58. ユーザ認証 アクセスの認可 データの同期 ユーザ⾏行行動分析 メディアの管理理 メディアの配信 プッシュ通知の送信 共有データの保存 モバイル アプリ まとめ:モバイルアプリの課題を  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 ストリームリアルタイムデータビジネスロジックの実⾏行行
  59. 59. まとめ:AWS  を活⽤用して本来の業務へ集中!! 開発者が直⾯面する課題 ü  複数のプラットフォーム ü  スケーラビリティの確保 ü  ⾼高コストな管理理や運⽤用 ü  ユーザ体験の阻害 ü  ユーザIDの管理理 モバイルアプリのコード ユーザID管理理、認証 ユーザデータの同期処理理 ⾮非同期通信 アクティブデバイスの分析 ユーザ⾏行行動の分析 コンバージョンの分析 プッシュ通知 イベントトリガー プラットフォームごとのはっきりしない仕様 データチェックと変換 ファイルやメディアのストレージ 共有データベースのストレージ データコレクション   その他さまざま…. AWS  Cloud  インフラストラクチャ 本来の業務に集中!
  60. 60. まとめ:AWS  を活⽤用して本来の業務へ集中!! 開発者が直⾯面する課題 ü  複数のプラットフォーム ü  スケーラビリティの確保 ü  ⾼高コストな管理理や運⽤用 ü  ユーザ体験の阻害 ü  ユーザIDの管理理 モバイルアプリのコード ユーザID管理理、認証 ユーザデータの同期処理理 ⾮非同期通信 アクティブデバイスの分析 ユーザ⾏行行動の分析 コンバージョンの分析 プッシュ通知 イベントトリガー プラットフォームごとのはっきりしない仕様 データチェックと変換 ファイルやメディアのストレージ 共有データベースのストレージ データコレクション   その他さまざま…. AWS  Cloud  インフラストラクチャ アプリを差別化!

×