Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AWS Lambdaによるデータ処理理の⾃自動化とコモディティ化

7,740 views

Published on

AWS Lambdaによるデータ処理理の⾃自動化とコモディティ化
@ビッグデータオールスターズ 2015.08.01

Published in: Technology

AWS Lambdaによるデータ処理理の⾃自動化とコモディティ化

  1. 1. AWS Lambdaによる データ処理理の⾃自動化とコモディティ化 @ビッグデータオールスターズ 2015.08.01 Yuta  Imai Solutions  Architect,  Amazon  Data  Services  Japan
  2. 2. 2 ⾃自⼰己紹介 •  今井  雄太(いまい  ゆうた) •  Solutions  Architect •  ゲーム、広告業界のお客様を 主に担当しています。
  3. 3. 3 アジェンダ •  AWS  概要 •  AWS  Lambda •  AWS  Lambdaとビッグデータサービス •  事例例など •  まとめ
  4. 4. 4
  5. 5. 5 世界中のデータセンタ群(リージョン) どのリージョンでも同じ使い勝⼿手 同じやり⽅方で⽇日本から利利⽤用可能 11のリージョン 1. US  EAST  (Virginia) 2. US  WEST    (N.  California) 3. US  WEST  2  (Oregon) 4. EU  WEST  (Ireland) 5. JAPAN  (Tokyo) 6. South  America  (Sao  Paulo) 7. ASP  1  (Singapore) 8. ASP  2  (Sydney) 9. GovCloud   10. BJS  1  (Beijing  China)  limited  preview 11. EU  (Frankfurt) 28のアベイラビリティ・ゾーン(AZ) 50以上のエッジロケーション
  6. 6. 6 AWS  のイノベーションの速度度   2014年年には516のメジャーな新機能や新サービスがリリースされました 24 48 61 82 159 280 516 2008 2009 2010 2011 2012 2013 2014
  7. 7. 7 TECHNICAL & BUSINESS SUPPORT Account Management Support Professional Services Solutions Architects Training & Certification Security & Pricing Reports Partner Ecosystem AWS MARKETPLACE Backup Big Data & HPC Business Apps Databases Development Industry Solutions Security MANAGEMENT TOOLS Queuing Notifications Search Orchestration Email ENTERPRISE APPS Virtual Desktops Storage Gateway Sharing & Collaboration Email & Calendaring Directories HYBRID CLOUD MANAGEMENT Backups Deployment Direct Connect Identity Federation Integrated Management SECURITY & MANAGEMENT Virtual Private Networks Identity & Access Encryption Keys Configuration Monitoring Dedicated INFRASTRUCTURE SERVICES Regions Availability Zones Compute Storage Objects, Blocks, Files Databases SQL, NoSQL, Caching CDNNetworking PLATFORM SERVICES APP Mobile & Web Front-end Functions Identity Data Store Real-time DEVELOPMENT Containers Source Code Build Tools Deployment DevOps MOBILE Sync Identity Push Notifications Mobile Analytics Mobile Backend ANALYTICS Data Warehousing Hadoop Streaming Data Pipelines Machine Learning
  8. 8. 8 AWS  Lambda Run  your  code  in  the  cloud. アップロードした関数をイベントドリブンに呼び出 してくれるサービス。
  9. 9. 9 インフラの管理理が不不要 •  ビジネスロジックにフォーカスで きる •  コードをアップロードするだけで、 あとはAWS  Lambdaが以下をハ ンドリング –  キャパシティ –  スケール –  デプロイ –  耐障害性 –  モニタリング –  ロギング –  セキュリティパッチの適⽤用
  10. 10. 10 オートスケール •  イベントの発⽣生レートに合わせて ⾃自動でスケール •  プロビジョニング中や完了了を気に する必要なし •  コードが稼働した分だけのお⽀支払 い
  11. 11. 11 Bring  your  own  code •  Node.js,  Javaで書かれたコード を実⾏行行 •  コード内では以下も可能 –  スレッド/プロセスの⽣生成 –  バッチスクリプトや何らかの実⾏行行 ファイルの実⾏行行 –  /tmpのread/write •  各種ライブラリも利利⽤用可能 –  ネイティブライブラリも可能 –  利利⽤用するライブラリを⼀一緒にアップ ロード
  12. 12. 12 細やかな料料⾦金金体系 •  100ミリ秒単位でのコンピュート 時間に対する価格設定 •  リクエストに対する低額の課⾦金金 •  ⼗十分な無料料枠
  13. 13. よく語られるユースケース
  14. 14. 14 イメージリサイズ、サムネイル⽣生成   •  S3に画像がアップロードされたときにサムネイ ルの⽣生成やリサイズを実⾏行行 AWS LambdaAmazon S3 Bucket イベント 元画像 サムネイル画像 1 2 3
  15. 15. 15 値チェックや別テーブルへのコピー •  DynamoDBへの書き込みに応じて値チェックを しつつ別テーブルの更更新やプッシュ通知を実⾏行行 AWS Lambda Amazon DynamoDB Table and Stream プッシュ通知 別テーブルを更新
  16. 16. 今⽇日はもう少しデータ処理理に⽬目を向けて・・・
  17. 17. Webアプリケーションにおけるデータフロー S3 Amazon S3 Consumer Game DB Game Servers Kinesis Amazon Redshift Amazon Elastic MapReduce DSV JSON
  18. 18. データフローには多くのIf..Then..が S3 Amazon S3 Consumer Game DB Game Servers Kinesis Amazon Redshift Amazon Elastic MapReduce DSV JSON
  19. 19. これまでは・・・ •  ストレージにデータをアップロード。更更にその 事実をメッセジキューに積んで、待ち受けてい る後続のワーカーがそれを読み取って処理理 •  定期的にストレージをポーリングして新しい ファイルがあれば処理理
  20. 20. これまでは・・・ Worker⽤用のサーバー⽤用意して、そこにアプリケー ションデプロイして・・・ While  trueなプロセスが落落ちないように Supervisord動かして・・・ 管理理の⼿手間がかかり、更更にアプリケーションエン ジニアだけで実現しずらかった。
  21. 21. If..Then..  with  AWS  Lambda! S3 Amazon S3 Consumer Game DB Game Servers Kinesis Amazon Redshift Amazon Elastic MapReduce DSV JSON 多くのIf..Then..は Lambdaで⾃自動化できる ( )
  22. 22. 22 If..Then..  with  AWS  Lambda! With  your  code!
  23. 23. AWS  ビッグデータ関連サービスの概要
  24. 24. 24 ビッグデータパイプライン Data Answers Collect   Process   Analyze   Store  
  25. 25. 25 Collect   Process   Analyze   Store   プリミティブなパターン Data Collection and Storage Data Processing Event Processing Data Analysis
  26. 26. 26 プリミティブなパターン S3 Kinesis DynamoDB AWS  Lambda KCL  Apps EMR EMR Redshi> Machine Learning Collect   Process   Analyze   Store   Data Collection and Storage Data Processing Event Processing Data Analysis
  27. 27. 27 プリミティブなパターン S3 Kinesis DynamoDB AWS  Lambda KCL  Apps EMR EMR Redshi> Machine Learning Collect   Process   Analyze   Store   Data Collection and Storage Data Processing Event Processing Data Analysis AWSのビッグデータ関連サービスは ビルディングブロック群 やりたいことに合わせて柔軟に組み⽴立立てができる
  28. 28. 28 AWS  Lambda  as  a  pipeline  glue Collect   Process   Analyze   Store   Data Collection and Storage Data Processing Event Processing Data Analysis
  29. 29. 29 たとえばデータストアのイベント処理理 ファイル:  media,  log  files  (sets  of  records) ストリーム:  records  (eg:  device  stats) トランザクション:  DBへのRead/Write
  30. 30. 30 S3 Kinesis DynamoDB たとえばデータストアのイベント処理理
  31. 31. S3  Event  Notifications Kinesis  stream DynamoDB  Streams AWS  Lambda たとえばデータストアのイベント処理理
  32. 32. S3  Event  Notifications Kinesis  stream DynamoDB  Streams AWS  Lambda Consumer 継続的な処理には継続的なConsumerを 挟んだほうがよいことも たとえばデータストアのイベント処理理
  33. 33. AWS  Lambdaを使ったデータ処理理の事例例
  34. 34. 34 Expedia Pipelineのオーケストレーション http://blogs.aws.amazon.com/bigdata/post/Tx1R28PXR3NAO1I/How-Expedia- Implemented-Near-Real-time-Analysis-of-Interdependent-Datasets
  35. 35. 35 TempTracker AWSクラウドでの 蜂の巣箱のモニタリング
  36. 36. 36 温度度センサー ボード “raspberry  pi”     マイクロサーバー 防⽔水のボックス
  37. 37. 37 Python  (boto) DynamoDBKinesis   App Kinesis 収集 ダッシュボード Lambda イベント ソース SNS TempTracker:  IoT  センサーデータ収集例例
  38. 38. 38 蜂の巣箱内の温度度 蜂の巣箱外の温度度
  39. 39. 39 Scalable  &  Responsive  Big  Data  Interface  with   AWS  Lambda  at  FireEye http://blogs.aws.amazon.com/bigdata/post/Tx3KH6BEUL2SGVA/Building-Scalable-and-Responsive-Big-Data-Interfaces- with-AWS-Lambda •  Lambda+S3で、 サーバを全く使わな い分析環境 –  脅威分析、異異常検知等 •  Web  UIへのクエリを 複数のLambda   functionを⾮非同期に 呼び出して処理理
  40. 40. 40 API Gateway Slack Lambda ECS Lambda S3 Aurora Outgoing Webhook -  cluster name -  # of tasks -  commands RunTasks -  cluster name -  # of tasks -  commands as environment variables -  output location Output STDOUT as file Spin up containers and run tasks Incoming Webhook -  Read file from S3 and emit it to Slack データ処理理ではないけれども・・・  Sysbenchの分散起動を Slack+AWS  API  Gateway+AWS  Lambda+Amazon  ECSで実装
  41. 41. まとめ
  42. 42. 42 AWS  Lambda ⾃自動化 •  多くのデータ処理理で必要とされる「イベント駆 動」を簡単に実現してくれる コモディティ化 •  Amazon  EMRやAmazon  ECSとの組み合わせに より、HadoopやSparkのジョブなどをよりプロ グラマブルに利利⽤用できる
  43. 43. 43 AWS  Lambda  enables... AWS Lambda If Then Amazon DynamoDB Amazon Kinesis Amazon S3 Amazon EMR Amazon Redshift Amazon Machine Learning Amazon API Gateway Amazon ECS With  your  code!

×