LoginSignup
67
67

More than 5 years have passed since last update.

【AWS】Kinesisまとめ

Posted at

Kinesisとは?

一言で言うと、沢山の場所から送られてくる大量のデータを受け付ける窓口。
有名なのが「あきんどスシロー」の事例。
そう、IT化されまくっていて、うまいすしを、腹一杯。うまいすしで、心も一杯になるあの寿司屋です。
あきんどスシローでは寿司の皿をタグで管理していて、全店舗の寿司情報をKinesisにぶち込んでいます。

簡単に聞こえますが、これは、そうとう膨大なデータ量になります。
この膨大なデータの受付窓口を作ろうと思うと、大規模なインフラ環境が必要になります。数十台とか。機器コスト、さらに運用コストが半端ない。
でも、このKinesisを使うと、とても簡単にとてもリーズナブルな値段で利用できるという話です。
何十万ものソースから、1時間あたり何テラバイトにもなる膨大なデータを貯められます。

データは複数AZに格納されるので信頼性・耐久性が高いです。
ただし、一時的なデータ置き場として24時間後にはKinesis上からデータが消えます。
なので、データを受けた後は、整形等のETL処理に加え、S3・Redsift・dynamoDBにデータを永続化する必要があります。

Kinesisの構成

  • Stream:データ受付窓口
  • Shard:受付することができるキャパシティ。shardを増やすと、受け付けることができる量を増やせる。
  • Data Record:入力するデータ。複数AZに格納され、24時間後には消える
  • 複数Shardがある状態でデータ入力する場合は、パーティションキーを元にしたMD5を元に分散される(うまく分散するようにパーティションキーを指定する必要あり)
  • シーケンス番号:Data Recordに付加されるStream内でユニークな番号
  • KinesisデータはKinesisコネクタを利用して、S3、DynamoDB、RedShiftに永続化できる
  • EMRコネクタを利用して、Hive、Pigといった連携ができる

コスト

かなり安い。
10Shardで、1億putで、約月額$110→1万円ちょい
検証で1Shardで5時間使った場合、20円しない→気軽に検証できる!!

  • Shard単位で料金がかかるため、負荷が低い時間帯はshardをマージすると料金を安くすることができる。負荷が高くなる時間帯は逆にShardを分割する
67
67
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
67
67