Pythonでkinesis〜ぱいきね! in 第20回AWS User Group Japan 東京勉強会2014.04.11

5,230 views

Published on

Published in: Technology

Pythonでkinesis〜ぱいきね! in 第20回AWS User Group Japan 東京勉強会2014.04.11

  1. 1. PythonでKinesis - ぱいきね! in 第20回AWS User Group Japan 東京勉強会 池内 孝啓@iktakahiro April 9th, 2014 Amazon
 Kinesis
  2. 2. Agenda 2 • 自己紹介 (1分) • Pythonとわたし(120分) • Amazon Kinesis とは (3分) • Python boto で Kinesis! (7分) • KinesisとImmutable Infrastructure (4分)
  3. 3. 自己紹介 • 池内 孝啓 - Takahiro Ikeuchi • 株式会社ALBERT 執行役員 • システム開発・コンサルティング部 部長 • @iktakahiro • http://librabuch.jp • 好きなサービス: EBS(あざとい) 3
  4. 4. Amazon Kinesis とは
  5. 5. Amazon Kinesis とは 5 Data StoreProducer Kinesis Stream Kinesis App (Consumer)
  6. 6. • 大規模なストリーミングデータをリアルタイムで 処理する完全マネージド型サービス • Kinesis Stream自体はデータ加工・計算機能を
 持たない • Kinesis SDK, Client Libraryを使ってデータを
 取り出す Amazon Kinesis とは
  7. 7. session-ID item-ID s100 itemA s100 itemB s200 itemA s200 itemB s100 itemC s300 itemA s300 itemC item-ID session-ID itemA s100, s200, s300 itemB s100, s200 itemC s100, s300 Key-Value StoreRaw Data itemA itemB = SINTER itemA itemB = len(s100, s200) = 2 itemA itemB = SUNION itemB itemC = len(s100, s200, s300) = 3 Use Case
  8. 8. Python botoで
 Kinesis!
  9. 9. Actions - Amazon Kinesis Service API Reference http://docs.aws.amazon.com/kinesis/latest/APIReference/ API_Operations.html Amazon Kinesis API 1. CreateStream 2. DeleteStream 3. DescribeStream 4. GetRecords 5. GetShardIterator 6. ListStreams 7. MergeShards 8. PutRecord 9. SplitShard
  10. 10. Python boto http://boto.readthedocs.org/en/latest/ref/kinesis.html botoを使ったKinesisの操作を見てみましょう
  11. 11. Create & Delete Stream
  12. 12. DescribeStream
  13. 13. DescribeStream
  14. 14. PutRecord
  15. 15. PutRecord { 'ShardId': ‘shardId-000000000000', 'SequenceNumber':’49538386……’ }
  16. 16. GetShardIterator Iteratable Objectを生成
  17. 17. GetRecord
  18. 18. GetRecord { u'PartitionKey': u'one', u'Data': 'hoge', u'SequenceNumber': u'495383866...' }
  19. 19. ちなみに… • ShardやSequenceNumberの管理は結構辛い • Amazon Kinesis Client Library(for Java)なら! • Amazon Kinesis Connectors も!(for Java)!
  20. 20. Kinesisと
 Immutable Infrastructure
  21. 21. • 変更されないサーバー / 変更される場合は
 新規立ち上げ • アプリケーションの更新とインフラの構築を
 一対と考える(インフラの更なる抽象化) • Blue-Green Deployment… Immutable Infrastructure(以下I2) とは
  22. 22. • fluentdがあるのでKinesisは必要ない? • fluentdでもおなじようなことが出来そう? なぜKinesis と I2 ? • ログファイルをtailで攫う • プラグインでS3へ転送、Redshiftへ投入 • 正規表現でテキスト加工もできるし • Scaleできる
  23. 23. fluentdのスケールアウト + • スループットを上げたい場合
 このセットをスケールアウトする
  24. 24. Amazon Kinesis のスケールアウト 24 Data StoreProducer Kinesis Stream Kinesis App (Consumer) •スループットを上げたい場合
 Shard数を増加させる
  25. 25. 25 Data StoreProducer Kinesis Stream Kinesis App (Consumer) •用途毎にConsumerを作る
 S3蓄積用・BIツール用 etc… Amazon Kinesis のスケールアウト
  26. 26. 参考文献 • 「Amazon Kinesisで広がる
 リアルタイムデータ プロセッシングとその未来」
 アマゾンデータサービスジャパン株式会社 大谷 晋平 / 榎並 利晃
 http://www.slideshare.net/shot6/amazon-kinesis-32354587 • Kinesis - boto
 http://boto.readthedocs.org/en/latest/ref/kinesis.html • Amazon Kinesis ことはじめ
 http://www.slideshare.net/iktakahiro/amazon-kinesis-32428443
  27. 27. ご静聴ありがとうございました (> <);

×