アールスリーインスティテュート
金春 利幸(JAWS-UG大阪)
Amazon Kinesis
#jawsdays #ace
このセッションのハッシュタグは、
!
#jawsdays #ace
!
でお願いします
#jawsdays #ace
自己紹介
金春 利幸(こんぱる としゆき)
!
アールスリーインスティテュート
マネージャー&ソリューションアーキテクト
!
JAWS-UG大阪 コアメンバー
!
ブログ: http://www.konpa.ru/
   (網元AMIで動いてます)
FB: t.konparu
twitter: t_konparu
#jawsdays #ace
アールスリーインスティテュートについて
・2000年創業の大阪のシステム開発会社
!
・大手がやる仕事を少数精鋭で実施するのがコンセプ
ト(実際に大手と提案で勝負すること多々)
!
・2012年からAWSのパートナー
!
・AWSを活用し、AWS上で稼働するシステムを提案
!
・今年は、今まで以上にAWSに力を入れていく予定
!
・入り口のJOB Boardに求人出してますのでぜひ!
#jawsdays #ace
初心者向けに事例もまじえ
てわかりやすく説明します!
#jawsdays #ace
Amazon Kinesis
触ったことある人?
#jawsdays #ace
朝一のAWS大谷さんの
セッション参加した人?
#jawsdays #ace
朝一聞いた人は
もう理解しちゃってますね・・・
#jawsdays #ace
Amazon Kinesis
リアルタイム分析
プラットフォーム
#jawsdays #ace
???
#jawsdays #ace
リアルタイムに
不規則に
発生するデータを
漏らすことなく
スマートに処理するための仕組み
#jawsdays #ace
リアルタイム分析の悩み
・データを受け取るための適切なリソースのサイ
ジングを行うのは難しい
!
・安全にデータを保管するのは難しい
!
・受けたデータを適切な速度で処理するのはサイ
ジングが難しい
!
・かといって、ピーク性能に合わせるとコストがか
かる
どんどんやってくるデータに対して
#jawsdays #ace
Kinesisの基本概念
Data Sources Kinesis Endpoint
Shards Kinesis Application
Instances
Kinesis Stream
RDS
DynamoDB
#jawsdays #ace
Shard
Shard
Partition Key Data Body
Partition Key Data Body
Partition Key Data Body
Partition Key Data Body
Partition Key Data Body
Partition Key Data Body1
2
3
4
Shardの能力
Write 1MB/sec(1000write/sec)
Read 2MB/sec(5read/sec)
50KB256bytes
ストリーム全体でユニークな
SequenceNumberが振られる
Shard内のデータは
24時間で削除される
どのShardにデータが入る
かはPartitionKeyで決まる
#jawsdays #ace
Shardの考え方の雑なイメージ
…
スーパーのレジを想像してください。
レジがShard お客さんがデータ
#jawsdays #ace
#jawsug っていいよね
#jawsug すごいよね
#jawsug 大阪熱いよね
#aws C3インスタンスにEBS Optimizedを
#aws Workspacesにもっとスペックを
#aws AWS太っ腹
Kinesisでのデータの流れ方
#jawsdays #ace
Amazon Kinesis
Shard
Shard
#jawsug っていいよね
#jawsug すごいよね
#jawsug 大阪熱いよね
#aws C3インスタンスにEBS Optimizedを
#aws Workspacesにもっとスペックを
#aws AWS太っ腹
Kinesisでのデータの流れ方
#jawsdays #ace
GetNextRecord
Kinesis App
Kinesis App
Amazon Kinesis
Shard
Shard
#jawsug っていいよね
#jawsug すごいよね
#jawsug 大阪熱いよね
#aws C3インスタンスにEBS Optimized
#aws Workspacesにもっとスペックを
#aws AWS太っ腹
Partition Key
1
2
3
4
5
6
GetNextRecord
Kinesisでのデータの流れ方
#jawsdays #ace
DynamoDB
Kinesis App
Kinesis App
#jawsug: 3
#aws: 3
Kinesisでのデータの流れ方
#jawsdays #ace
Kinesis Client Library(KCL)
・APIを直接使わなくても簡単に使える
!
・データを処理するWorkerの生成
!
・各Shardに対してWorkerがちゃんとつくように制御
!
・Shard増減時のWorkerの増減
!
・処理中にWorkerが死んだときの再処理制御
!
・AutoScaling時にWorkerとShardの割当を自動的に調整
#jawsdays #ace
Kinesis Connector Library
・Kinesis Streamから必要なデータ変換をしてS3,
DaynamoDB, Redshiftへデータを格納するライブラリ
!
・変換部分の記述に集中できる
!
・最近EMR(ElasticMapReduce)用のConnectorも発表に
なりました
!
・Kinesis log4j Appenderも公開されているので、Webサ
イトのログをKinesisに流してEMRで分析なんてのも簡
単にできます
#jawsdays #ace
事例
全国に設置された大量の機器からのデータを処理
【現在】
FTP Server DB Server Web Server
これが何セットもある
#jawsdays #ace
事例
全国に設置された大量の機器からのデータを処理
【Amazon Kinesis】
Region
Kinesis Endpoint
Shards RDS
S3
Web Server
Analysis Server
#jawsdays #ace
事例
全国に設置された大量の機器からのデータを処理
【Amazon Kinesis】
Region
Kinesis Endpoint
Shards RDS
S3
Web Server
Analysis Server
Amazon Kinesis
#jawsdays #ace
事例
全国に設置された大量の機器からのデータを処理
【Amazon Kinesis】
Region
Kinesis Endpoint
Shards RDS
S3
Web Server
Analysis Server
Managed Service
#jawsdays #ace
事例
全国に設置された大量の機器からのデータを処理
【Amazon Kinesis】
Region
Kinesis Endpoint
Shards RDS
S3
Web Server
Analysis Server
Auto Scaling
#jawsdays #ace
事例
全国に設置された大量の機器からのデータを処理
【Amazon Kinesis】
Region
Kinesis Endpoint
Shards RDS
S3
Web Server
Analysis Server
Auto ScalingManaged Service
#jawsdays #ace
解決されること
・お客さんが増えてもShardをスケールさせればデータは受け
られる
!
・万が一お客さんが減ってもスケールダウンさせればムダな
リソースは発生しない
!
・分析側もAutoScalingでデータ量に合わせてスケールできる
!
・RAWデータはS3に安全に保管できる
!
・基本的にすべてManagedなので、インフラの運用に関する負
担が非常に小さい
#jawsdays #ace
まとめ
・Amazon Kinesisは、従来のAWSのサービス群と違い、
マッチするユースケースがないと利用しづらいと思
います
!
・ただし、マッチするユースケースがある場合は積極
的に使うことによって楽にリアルタイム分析プラット
フォームを構築することができます
!
・もし事例があれば、JAWS-UGで公開してください。み
んな喜びます
#jawsdays #ace
Thank You
JOB Boardに弊社求人を
掲載しています!
一緒にシステム作りましょう!

JAWSDAYS2014 Amazon Kinesis for Beginner