More Related Content Similar to Androidを中心に紐解くIoT (20) More from Keisuke Nishitani (8) Androidを中心に紐解くIoT2. Profile
Keisuke Nishitani
Solutions Architect, Amazon Web Service Japan K.K
@Keisuke69 Keisuke69
✤ AWSのソリューションアーキテクト
✤ Webサービス系
✤ モバイル系
✤ クラウドを使ったアプリ開発とかモバイル開発の話しをよくしてい
ます
✤ モバイルニンジャ1号機
✤ RESTおじさん
✤ Lambda Wizards
✤ 餃⼦の王将エヴァンジェリスト(⾃称)
Keisuke69 Keisuke69Keisuke69x
24. Alexa Skill Kit (ASK)
✤ Amazon Echoで使われているクラウド
ベースの⾳声認識サービス
✤ 独⾃の⾳声駆動の機能を簡単に開発する
することが可能
✤ スピーカー、マイクとインターネット接
続があるあらゆるデバイスが統合可能
37. モバイル開発における課題
開発者が直⾯する課題
• 複数プラットフォーム
• スケーラビリティの確保
• ⾼い運⽤管理コストと限られた予算
• ユーザエクスペリエンスの阻害
• ユニークなユーザIDの管理
モバイルアプリケーション
アイデンティティの管理と認可
データ同期
アクティブなユーザの分析
エンゲージメントの分析
Push通知
イベントトリガー
クロスプラットフォーム
データのバリデーションと変換
ファイル/メディア保管⽤ストレージ
データベース
And More….
AWS Cloud Infrastructure
38. 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
39. AWS Mobile SDK
✤ 全てのサービスに共通の認証機構
✤ オンライン・オフラインを⾃動でハンドリ
ング
✤ クロスプラットフォームのサポート:
Android, iOS, Fire OS, Unity, Xamarin
✤ Mobile OSへの最適化
例: ローカルオフラインキャシュを利⽤
するアーキテクチャ
✤ メモリフットプリントの削減
✤ 各プラットフォームのエンハンスに追従
iOS Android Fire OS Unity
Xamarin
41. 典型的なユースケース
ユーザ データ メディアファイル
ロジック メッセージ テスト
<TEST/>
Amazon Cognito
AWS Identity and
Access Management
Amazon Mobile
Analytics
Amazon DynamoDB
Amazon Kinesis
Amazon CloudFront
Amazon S3
Transfer Manager
AWS Lambda
API Gateway
Amazon SNS Mobile Push AWS Device Farm
Amazon Cognito
43. インフラ構築
✤ インフラの運⽤管理
✤ キャパシティ
✤ スケール
✤ デプロイ
✤ 耐障害性
✤ モニタリング
✤ ロギング
✤ ビジネスの差別化には
直接つながらない機能のアプリ実装
✤ 認証
✤ スロットリング
✤ スケーラビリティの確保
✤ etc
不要
不要
不要
(各サービスが
適切にハンドリング)
47. AWS Mobile Hub
✤ AWSの各モバイルサービスを、要件に応じて⼀括で設定してくれるプ
ロビジョニングツール
✤ mBaaSではない
✤ 設定した内容で実際に動作するスターターアプリ(iOS, Android)を
⽣成し、ダウンロード可能
✤ 最強のリファレンスコードで学習コストも削減
✤ 開発環境のセットアップからコードの説明も
✤ 2016.03現在、東京リージョン未対応
✤ スターターアプリだけでも利⽤の価値あり
✤ AWS Mobile Hub⾃体のご利⽤は無料
✤ 利⽤する各サービスの費⽤はかかります
50. パターン1
✤ アプリからセンサーデータをAmazon Kinesisのストリームに直接送信
✤ メッセージの処理はKinesisアプリケーションをEC2上もしくはLambdaで⽤意して実施
✤ 使いどころ:
✤ デバイスからAWSへの⼀⽅向通信のみの場合(センサーデータのアップロードのみ)
✤ 複雑なメッセージ処理が必要な場合
✤ メッセージの順序性を保障したい場合
✤ 扱うメッセージサイズが⼤きい場合(1MBまで)
✤ メッセージの⼀時保管が必要な場合(1~7⽇)
Amazon S3
Amazon DynamoDB
Amazon Redshift
Amazon Kinesis
HTTPS
52. 3つのKinesis
Amazon
Kinesis
Streams
Build your own
custom applications
that process or
analyze streaming
data
Amazon
Kinesis
Firehose
Easily load massive
volumes of streaming
data into Amazon S3
and Redshift
Amazon
Kinesis
Analytics
Easily analyze data
streams using
standard SQL queries
55. Kinesis Client Libraryの動き
1. Kinesis Client LibraryがShardからData Recordを取得
2. 設定された間隔でシーケンス番号をそのワーカーのIDをキーにしたDynamoDB
のテーブルに格納
3. 1つのアプリが複数Shardからデータを取得し処理を実⾏
Stream
Shard-0
Shard-1
Kinesis
アプリケーション
(KCL)
ワーカー シーケンス番号
Instance A 12345
Instance A 98765
Data
Record
(12345)
Data
Record
(24680)
Data
Record
(98765)
DynamoDB
Instance A
(*)実際のKey, Attribute名は異なります。
56. パターン2
✤ アプリからセンサーデータをAmazon API Gatewayに利⽤して公開するWeb APIにリクエ
スト
✤ メッセージの処理はAPI GatewayのバックエンドとしてLambdaを実⾏
✤ 使いどころ:
✤ データの送信時にレスポンスが必要な場合
✤ 複雑なメッセージ処理が必要な場合
✤ オープンなプラットフォームとする場合
✤ ⾃前でサーバインフラを持ちたくない場合
Amazon S3
Amazon DynamoDB
Amazon Redshift
Amazon API Gateway AWS Lambda
HTTPS
58. 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
64. イベントソース
✤ 現時点では以下の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
69. AWS IoT 全体構成
デバイス SDK
接続、認証、メッセージ交換
を⾏なうための
クライアントライブラリ
デバイスゲートウェイ
MQTTとHTTPを利⽤した
デバイスとのコミュニケーション
認証と認可
セキュアな双⽅向の
認証と認可
ルールエンジン
ルールベースの
メッセージ変換と
AWSサービスや
外部エンドポイント
へのルーティング
AWSサービス
- - - - -
その他のサービス
デバイスシャドウ
デバイスステータスの永続化
アプリケーション
AWS IoT API
デバイスレジストリ
デバイスのアイデンティティ
とマネージメント
80. AWS IoTとKinesisの組み合わせ例
N:1 のインバウンドセンサーデータ (ノイズ除去)
ルールエンジンで、フィルタと変換をセンサーデータに対してほどこしてからAmazon Kinesis
にパブリッシュ
Kinesis Streams からエンタープライズアプリケーションへ
Kinesisで収集されたデータをデータベースやアプリケーション、その他のAWSサービスに送信
Ordered Stream