JAWSDAYS2014 Amazon Kinesis for Beginner

30
アールスリーインスティテュート 金春 利幸(JAWS-UG 大阪) Amazon Kinesis

description

3/15に実施された JAWS DAYS2015 ACEき聞け! Amazon Kinesisで発表した資料です。 最初のネタ話は割愛しています。

Transcript of JAWSDAYS2014 Amazon Kinesis for Beginner

Page 1: JAWSDAYS2014 Amazon Kinesis for Beginner

アールスリーインスティテュート 金春 利幸(JAWS-UG大阪)

Amazon Kinesis

Page 2: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

このセッションのハッシュタグは、 !

#jawsdays #ace !

でお願いします

Page 3: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

自己紹介金春 利幸(こんぱる としゆき) !アールスリーインスティテュート マネージャー&ソリューションアーキテクト !JAWS-UG大阪 コアメンバー !ブログ: http://www.konpa.ru/    (網元AMIで動いてます) FB: t.konparu twitter: t_konparu

Page 4: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

アールスリーインスティテュートについて

・2000年創業の大阪のシステム開発会社 !

・大手がやる仕事を少数精鋭で実施するのがコンセプト(実際に大手と提案で勝負すること多々) !

・2012年からAWSのパートナー !

・AWSを活用し、AWS上で稼働するシステムを提案 !

・今年は、今まで以上にAWSに力を入れていく予定 !

・入り口のJOB Boardに求人出してますのでぜひ!

Page 5: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

初心者向けに事例もまじえてわかりやすく説明します!

Page 6: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

Amazon Kinesis 触ったことある人?

Page 7: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

朝一のAWS大谷さんの セッション参加した人?

Page 8: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

朝一聞いた人は もう理解しちゃってますね・・・

Page 9: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

Amazon Kinesis

リアルタイム分析 プラットフォーム

Page 10: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

???

Page 11: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

リアルタイムに 不規則に

発生するデータを 漏らすことなく

スマートに処理するための仕組み

Page 12: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

リアルタイム分析の悩み

・データを受け取るための適切なリソースのサイジングを行うのは難しい

!

・安全にデータを保管するのは難しい !

・受けたデータを適切な速度で処理するのはサイジングが難しい !

・かといって、ピーク性能に合わせるとコストがかかる

どんどんやってくるデータに対して

Page 13: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

Kinesisの基本概念

Data Sources Kinesis Endpoint

Shards Kinesis ApplicationInstances

Kinesis Stream

RDS

DynamoDB

Page 14: JAWSDAYS2014 Amazon Kinesis for Beginner

#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で決まる

Page 15: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

Shardの考え方の雑なイメージ

スーパーのレジを想像してください。

レジがShard お客さんがデータ

Page 16: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

#jawsug っていいよね

#jawsug すごいよね

#jawsug 大阪熱いよね

#aws C3インスタンスにEBS Optimizedを

#aws Workspacesにもっとスペックを

#aws AWS太っ腹

Kinesisでのデータの流れ方

Page 17: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

Amazon Kinesis

Shard

Shard

#jawsug っていいよね

#jawsug すごいよね

#jawsug 大阪熱いよね

#aws C3インスタンスにEBS Optimizedを

#aws Workspacesにもっとスペックを

#aws AWS太っ腹

Kinesisでのデータの流れ方

Page 18: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

GetNextRecord

Kinesis App

Kinesis App

Amazon Kinesis

Shard

Shard

#jawsug っていいよね

#jawsug すごいよね

#jawsug 大阪熱いよね

#aws C3インスタンスにEBS Optimized

#aws Workspacesにもっとスペックを

#aws AWS太っ腹

Partition Key

12

3

4

56

GetNextRecord

Kinesisでのデータの流れ方

Page 19: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

DynamoDB

Kinesis App

Kinesis App

#jawsug: 3

#aws: 3

Kinesisでのデータの流れ方

Page 20: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

Kinesis Client Library(KCL)

・APIを直接使わなくても簡単に使える !

・データを処理するWorkerの生成 !

・各Shardに対してWorkerがちゃんとつくように制御 !

・Shard増減時のWorkerの増減 !

・処理中にWorkerが死んだときの再処理制御 !

・AutoScaling時にWorkerとShardの割当を自動的に調整

Page 21: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

Kinesis Connector Library

・Kinesis Streamから必要なデータ変換をしてS3, DaynamoDB, Redshiftへデータを格納するライブラリ !

・変換部分の記述に集中できる !

・最近EMR(ElasticMapReduce)用のConnectorも発表になりました !

・Kinesis log4j Appenderも公開されているので、WebサイトのログをKinesisに流してEMRで分析なんてのも簡単にできます

Page 22: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

事例全国に設置された大量の機器からのデータを処理

【現在】

FTP Server DB Server Web Server

これが何セットもある

Page 23: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

事例全国に設置された大量の機器からのデータを処理

【Amazon Kinesis】

Region

Kinesis Endpoint

Shards RDS

S3

Web Server

Analysis Server

Page 24: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

事例全国に設置された大量の機器からのデータを処理

【Amazon Kinesis】

Region

Kinesis Endpoint

Shards RDS

S3

Web Server

Analysis ServerAmazon Kinesis

Page 25: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

事例全国に設置された大量の機器からのデータを処理

【Amazon Kinesis】

Region

Kinesis Endpoint

Shards RDS

S3

Web Server

Analysis Server

Managed Service

Page 26: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

事例全国に設置された大量の機器からのデータを処理

【Amazon Kinesis】

Region

Kinesis Endpoint

Shards RDS

S3

Web Server

Analysis Server

Auto Scaling

Page 27: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

事例全国に設置された大量の機器からのデータを処理

【Amazon Kinesis】

Region

Kinesis Endpoint

Shards RDS

S3

Web Server

Analysis Server

Auto ScalingManaged Service

Page 28: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

解決されること

・お客さんが増えてもShardをスケールさせればデータは受けられる !

・万が一お客さんが減ってもスケールダウンさせればムダなリソースは発生しない !

・分析側もAutoScalingでデータ量に合わせてスケールできる !

・RAWデータはS3に安全に保管できる !

・基本的にすべてManagedなので、インフラの運用に関する負担が非常に小さい

Page 29: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

まとめ

・Amazon Kinesisは、従来のAWSのサービス群と違い、マッチするユースケースがないと利用しづらいと思います !

・ただし、マッチするユースケースがある場合は積極的に使うことによって楽にリアルタイム分析プラットフォームを構築することができます !

・もし事例があれば、JAWS-UGで公開してください。みんな喜びます

Page 30: JAWSDAYS2014 Amazon Kinesis for Beginner

#jawsdays #ace

Thank You

JOB Boardに弊社求人を 掲載しています!

一緒にシステム作りましょう!