More Related Content Similar to Amazon kinesisで広がるリアルタイムデータプロセッシングとその未来 Similar to Amazon kinesisで広がるリアルタイムデータプロセッシングとその未来 (20) More from Shinpei Ohtani (17) Amazon kinesisで広がるリアルタイムデータプロセッシングとその未来2. ⾃自⼰己紹介
! 名前:⼤大⾕谷 晋平
• ohtani@amazon.co.jp
• @shot6
! 仕事:
• お客様のクラウド活⽤用アーキテクチャ⽀支援
• エマージングソリューション部
! 担当技術分野
• ビッグデータ、データベース、分散システム
3. ⾃自⼰己紹介
! 名前: 榎並 利利晃 (えなみ としあき)
! 現職: Partner Solution Architect
! 前職: 通信キャリア、電機メーカ、ゲーム会社でのシス
テム構築・サービス運⽤用経験
! 3年年間 AWSユーザとしてサービス運⽤用
! 好きな AWS のサービス : Kinesis、S3
6. Amazon Kinesis
フルマネージドなリアルタイムデータ処理理サービス
Data
Sources
App.4
[Machine
Learning]
AWS
Endpoint
App.1
[Aggregate
&
De-‐Duplicate]
Data
Sources
Data
Sources
Data
Sources
App.2
[Metric
Extrac=on]
S3
DynamoDB
Redshift
App.3
[Sliding
Window
Analysis]
Data
Sources
Availability
Zone
Shard 1
Shard 2
Shard N
Availability
Zone
Availability
Zone
使いやすさ リアルタイム処理理
⾼高スループット
/伸縮⾃自在性
インテグレー
ション アプリ開発SDK 低コスト
21. Raspberry pi
! Raspberry pi + 温度度センサ(ADT7410)
21
! I2CでRaspberry piと温度度センサを接続
! 10秒間に1回センサからデータを取得
! Raspberry piから直接KinesisにPut
! Kinesis アプリで、異異常検知とデータ格納
22. MQTT
! M2M向けのpub/subモデルの軽量量プロトコル
! メッセージの軽量量かつ⾼高速な配信に特化している
! 仕様
• http://public.dhe.ibm.com/software/dw/webservices/ws-‐‑‒
mqtt/mqtt-‐‑‒v3r1.html
! 実装
• Mosquitto : オープンソースのMQTTブローカー実装
• http://mosquitto.org/
! こちらを使ってRaspberry piからアップロード
• MQTTプロトコルは直接受けれないのでアダプタ経由
22
24. Raspberry pi +MQTT
リアルタイムダッシュボード
Kinesis
App
[Real=me
ETL]
Frontend
[MQTT
Proxy]
Frontend
[MQTT
Proxy]
MQTT-‐‑‒Kinesisアダプタ部分をみてみましょう
25. Raspberry pi +MQTT
リアルタイムダッシュボード
Kinesis
App
[Real=me
ETL]
Frontend
[MQTT
Proxy]
Frontend
[MQTT
Proxy]
30. Kinesisアプリケーション開発
! Kinesis SDK
• 最もベーシックなSDK
! Kinesis Client Library(KCL)
• https://github.com/awslabs/amazon-‐‑‒kinesis-‐‑‒client
! Kinesis Connectors
• https://github.com/awslabs/amazon-‐‑‒kinesis-‐‑‒connectors
! Kinesis Storm Spout
• https://github.com/awslabs/kinesis-‐‑‒storm-‐‑‒spout
! EMR Connector
• EMRのAMIに同梱
30
31. Kinesis Client Library(KCL)
! Kinesisアプリを作りやすくするJavaフレームワーク
• DynamoDB, CloudWatch, AutoScalingを利利⽤用
• ワーカーが死んだ時にオートスケール+担当シャードアサイン
! 作るもの
• ブートストラップ
• IRecordProcessorFactoryを継承したファクトリー
• IRecordProcessorを継承したプロセッサー
31
ブートスト
ラップ
ファクトリ
ー
プロセッサ
ー
ワーカー
⽣生成 ⽣生成
⽣生成
実⾏行行
利利⽤用
33. Kinesis WebHDFSコネクター作ってみた
! KinesisからEMRのHDFSに簡単にデータを送りたい
! というわけで、WebHDFSのREST経由でやってみた
! リアルタイム TO バッチのシームレス連携
33
RESTで送信
HTTP PUT
http://xxx.9101/webhdfs/v1/user/ohtani/file
?op=create&user.name=hadoop
Kinesis EMR
Client
36. Kinesis Connectors
! KinesisとAWSサービスの連携コネクタ
36
ITransformer
• Kinesis
から
ユーザ
が使い
やすい
モデル
への変
換
IFilter
• データの
フィルタ
リング。
フィルタ
リングし
て残った
ものが
バッ
ファーへ
⾏行行く
IBuffer
• 指定のレ
コード数
か、バイ
ト数まで
バッファ
ー
IEmitter
• 他AWS
サービ
スの
コール
実施
S3
DynamoDB
Redshift
Kinesis
38. AWSを使ったアーキテクチャイメージ
AWS
Endpoint
Kinesis
App.1
Kinesis
App.2
Redshift
DynamoDB
Kinesis
App.3
Availabilit
y Zone
Shard 1
Shard 2
Shard N
Availabi
lity
Zone
Availabi
lity
Zone
RDS
企業内データ
アナリスト
BIツールで
統計分析
データ as a Serviceを提供
エンドユーザ向けサービス提供
S3
企業データ
の保存
エンドユーザへの通知
Kinesisによるストリーム保存
39. サンプルアーキテクチャ
! Streamをパイプラインのようにつなげてデータ処理理を⾏行行うパターン
Data
Sources
Data
Sources
Data
Sources
Kinesis
App
Kinesis
App
Kinesis
App
Data
Sources
Data
Sources
Data
Sources
Kinesis
App
Kinesis
App
Kinesis
App
Kinesis
App
Data Source群A
Data Source群B
Data Source群A⽤用ETL
(クレンジング)
Data Source群B⽤用ETL
(クレンジング)
集計
42. まとめ
! Kinesisが可能にした事のは・・・
• ストリーム処理理をサービスとして提供する事で、
全く新しいアプリケーションを可能にした
• まだまだユースケースはあるはず
! Kinesis + AWSサービスを使うと・・・
• ストリームのリアルタイム処理理から、バッチ処理理ま
でシームレスにデータをながせる
! というわけで皆さん試してみてください!
42