Your SlideShare is downloading. ×
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

[AWSマイスターシリーズ]Amazon SNSモバイルプッシュ通知

16,587

Published on

1 Comment
58 Likes
Statistics
Notes
No Downloads
Views
Total Views
16,587
On Slideshare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
125
Comments
1
Likes
58
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. AWSマイスターシリーズ番外編 Amazon SNS モバイルプッシュ通知 2013.09.17 アマゾン データ サービス ジャパン株式会社 ソリューション アーキテクト 安川 健太 篠原 英治
  • 2. 今日のAgenda モバイルプッシュ通知について Amazon SNSモバイルプッシュ通知機能 • 機能概要 • SDK, IDE • 料金・無料使用枠 Amazon SNSでモバイルプッシュ通知を使うまで Q&A
  • 3. モバイルプッシュならアプリが起動していなくても通知が 可能 • ユーザは通知を受け取るか否か 設定可能 • 特定のデバイス上の特定のアプリ にのみ通知する事も • 送るのは短いメッセージ: 読んで 無視するも、アプリを起動するも
  • 4. クラウドから特定のデバイス上の特定のアプリに通知可 クラウド上の プログラム モバイル・アプリ
  • 5. 通知は各プラットフォーム独自の仕組みで送信 クラウド上の プログラム モバイルアプリ モバイル プラットフォーム (e.g. Apple, Google, Amazon)
  • 6. 開発者側でデバイスごとのトークンおよびユーザの受信設定を管理 プラットフォーム トークンの登録 ト ー ク ン へ の フィードバック
  • 7. 通常プラットフォームごとに通知の方法は異なる Apple APNS Google GCM Amazon ADM • 異なるAPI • 異なる機能 • 異なるフィードバック機構
  • 8. 一般に数百万のデバイスへの通知の管理運用は大きな問題に クラウド上の プログラム プラットフォーム モバイルアプリ
  • 9. そのため、プラットフォームごとのAPIを抽象化した中間プロバイダを 利用するのが一般的 モバイルアプリ中間プロバイダ
  • 10. 開発者側でプラットフォームを抽象化するサービスを利用することで 得られるもの、得られないもの  どのプラットフォーム上の アプリのユーザでも抽象化 出来る  信頼性のある通知のため のトークンは管理可能  運用の複雑さの回避  スケーラビリティの確保の  コスト – プラットフォーム 側が無料だとしても
  • 11. Amazon SNS Mobile Pushはプラットフォーム横断型プッシュ通知 のための中間マネージドサービス Amazon SNS Mobile Push Apple Devices Google Devices Amazon Kindle Fire Devices
  • 12. Apple Kindle Fire Kindle Fire Google Publish Apple Kindle Fire Kindle Fire Google Publish SNSならプラットフォーム特有のメッセージペイロードを送ることも可 一度のPublish指示であらゆる端末へ プラットフォームそれぞれに異なる ペイロードを送信
  • 13. デバイスごとに異なるメッセージを送ることも、グループに一斉 通知をすることも可 Publish Publish Publish Publish デバイスごとの直接通知 パートナー様を通じた場合等のシナリオ 1SNSトピックの 最大サイズは10,000 (2013年8月現在)
  • 14. メッセージサイズの上限はプラットフォームごと • Apple Push Notification Service • 256 bytes • https://developer.apple.com/library/ios/documentation/NetworkingInternet/Con ceptual/RemoteNotificationsPG/Chapters/ApplePushService.html • Amazon Device Messaging • 6144 bytes • https://developer.amazon.com/sdk/adm/sending-message.html • Google Cloud Messaging • 4096 bytes • http://developer.android.com/intl/ja/google/gcm/adv.html
  • 15. SNSは各フラットフォームからのフィードバックを基にトークンの 入れ替えや無効化を自動実行 Amazon SNS Mobile Push トークンの登録 トークン フィードバック クラウド上 のアプリ ケーション • デバイスごとに安定 したエンドポイントを 提供 • トークンフィードバッ クは参照可能 (必ずしも参照しなくても 利用可)
  • 16. SNSのスケーラビリティならアプリが必要とする分だけの通知をいつ でも送信可能 • 数通のメッセージから億単位のメッセージまで • 数個のデバイスから億単位のデバイスまで ...これらを設定管理の手間なしで ...堅牢性や信頼性を犠牲にすることなく
  • 17. 広範な言語とプラットフォームをカバーするSDKとIDE お好みの言語やプラットフォームのSDKを選択 …そしてお好みのIDEに統合 Eclipse Visual Studio CLI Powershell Android iOS Java nodeJS .NET PHP Python Ruby
  • 18. SNSモバイルプッシュ通知はコンソールからでも利用可 • 簡単な手順でクロスプラット フォームな通知を実装可 • トークンをバッチ入力するこ とで既存のデバイスの一斉 登録も可
  • 19. 料金・無料使用枠 1月あたり100万リクエスト • 100万のPublish(アプリSNS) • 100万のモバイルプッシュ通知(SNS各プラットフォーム) 以降は100万リクエスト当たり $1.00 • $0.50 で 100万publish (アプリSNS) • $0.50 で 100万モバイルプッシュ通知(SNS各プラットフォーム) Note: - SNSトピック経由で送る方が全体の費用は削減できる - 各プラットフォームへの支払いは特に無し
  • 20. Amazon SNS Mobile Push ここまでのまとめ: • クロスプラットフォームプッシュ通知 (Apple, Google, Amazon) • 1月100万リクエスト無料、以降は100万 ごとに$1.00 • 堅牢性と信頼性とスケーラビリティを兼備 • 簡単なトークン管理
  • 21. 今日のAgenda • モバイルプッシュ通知について • Amazon SNSモバイルプッシュ通知機能 – 機能概要 – SDK, IDE – 料金・無料使用枠 • Amazon SNSでモバイルプッシュ通知を使うまで • Q&A
  • 22. https://s3.amazonaws.com/codesamples/sns/latest/snsmobilepush.zip サンプルアプリケーション Androidアプリ PushリクエストBatch
  • 23. AndroidアプリをEclipseでBuild 必要なライブラリ • Android SDK • Google Play Services
  • 24. Google apis設定およびKeyの取得 https://code.google.com/apis/console/
  • 25. Androidアプリを起動
  • 26. USB接続した実機で実行
  • 27. インストールされたAndroidアプリ
  • 28. インストールされたAndroidアプリ
  • 29. Management ConsoleからPush
  • 30. Management ConsoleからPush
  • 31. Management ConsoleからPush
  • 32. Device Tokenを端末から取得 import com.google.android.gms.gcm.GoogleCloudMessaging; private GoogleCloudMessaging gcm; gcm = GoogleCloudMessaging.getInstance(this); token = gcm.register(getString(R.string.project_number));
  • 33. Management ConsoleからPush CSVによるバルク登録機能も。ただし上限は2MBまで。
  • 34. Management ConsoleからPush Push from Management Console
  • 35. Management ConsoleからPush
  • 36. Java BatchアプリからPush
  • 37. Java BatchアプリからPush 『AWS SDK提供のSNSライブラリでメッセージをPush』 • AWSのCredential(AccessKeyID と SecretAccessKey)でAmazon SNS用のClientオブジェク トを生成 ↓ • Google apiのキー, Device Token, 送信メッセージを定義 ↓ • 各プラットフォーム(Android, Apple, Kindle)用オブジェクトを生成 ↓ • 送信先デバイスのEndpointを生成 ↓ • Endpointにメッセージを送信
  • 38. Java BatchアプリからPush • 各プラットフォーム(Android, Apple, Kindle)用オブジェクトを生成 CreatePlatformApplicationRequest platformApplicationRequest = new CreatePlatformApplicationRequest(); Map<String, String> attributes = new HashMap<String, String>(); attributes.put("PlatformPrincipal", principal); attributes.put("PlatformCredential", credential); platformApplicationRequest.setAttributes(attributes); platformApplicationRequest.setName(applicationName); platformApplicationRequest.setPlatform(platform.name()); CreatePlatformApplicationResult platformApplicationResult = snsClient.createPlatformApplication(platformApplicationRequest); • Google: GCMでは使用しない • Apple: Certificate(pem) • Kindle: Client ID • Google: apisのキー • Apple: ClientKey(pem) • Kindle: Client Secret
  • 39. Java BatchアプリからPush • 送信先デバイスのEndpointを生成 String applicationArn = platformApplicationResult.getPlatformApplicationArn(); CreatePlatformEndpointRequest platformEndpointRequest = new CreatePlatformEndpointRequest(); platformEndpointRequest.setCustomUserData(customData); platformEndpointRequest.setToken(platformToken); platformEndpointRequest.setPlatformApplicationArn(applicationArn); CreatePlatformEndpointResult platformEndpointResult = snsClient.createPlatformEndpoint(platformEndpointRequest); 端末から取得した デバイスのトークン プラットフォーム情報
  • 40. Java BatchアプリからPush • Endpointにメッセージを送信 PublishRequest publishRequest = new PublishRequest(); Map<String, String> messageMap = new HashMap<String, String>(); messageMap.put(platform.name(), getPlatformSampleMessage(platform)); publishRequest.setTargetArn(platformEndpointResult.getEndpointArn()); publishRequest.setMessageStructure("json"); message = jsonify(messageMap); publishRequest.setMessage(message); PublishResult publishResult = snsClient.publish(publishRequest); messageをセットしてpublish 各プラットフォームを意識せず 統一のインターフェースでシンプルにpush可能
  • 41. Java BatchアプリからPush
  • 42. Event管理の設定 ”Endpointの追加/削除/更新”および”送信失敗”という Eventが発生した場合、設定を行うことで検知が可能になります
  • 43. Amazon SNS Mobile Push まとめ: • クロスプラットフォームプッシュ通知 (Apple, Google, Amazon) • 1月100万リクエスト無料、以降は100万ごとに$1.00 • 堅牢性と信頼性とスケーラビリティを兼備 • 簡単なトークン管理 参考情報: • SNSの詳細: http://amzn.to/179ee7r • はじめ方およびサンプルアプリ: http://amzn.to/15rs1DV

×