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.

Step functionsとaws batchでオーケストレートするイベントドリブンな機械学習基盤

6,404 views

Published on

リクルートライフスタイルでは機械学習を用いたサービスの展開もしています。サービスが増え続ける中で素早く市場に対応するためには、いかに簡単に基盤を作り、運用を減らせていくかが重要になってきます。

上記の課題を踏まえパワーが必要な機械学習処理のためのサーバレス基盤を構築しました。
なぜserverlessを選択したのか?
構築にあたり使用したStep FunctionsやAWS Batchの注意点と共に機械学習基盤を紹介します。
山田 雄(株式会社リクルートライフスタイル)

Published in: Technology
  • Be the first to comment

Step functionsとaws batchでオーケストレートするイベントドリブンな機械学習基盤

  1. 1. Step FunctionsとAWS Batch でオーケストレートするイベン トドリブンな機械学習基盤 Serverless Conf 2017 11/03 2017 山田 雄 ネットビジネス本部 データ基盤チーム 堤 崇行 ITサービス・ペイメント事業本部 方式基盤技術部
  2. 2. ■山田 雄(ヤマダ ユウ) 株式会社 リクルートライフスタイル ネットビジネス本部 データ基盤T Twitter:@nii_yan GitHub:https://github.com/yu-yamada ・以前はメールマーケティング用基盤の作成からデータ分析まで関わる 現在はリクルートライフスタイルの共通分析基盤の開発、運用全般を担当 ビックデータ、Ruby、ビール、カップ焼きそばが好き。 自己紹介
  3. 3. 会社紹介
  4. 4. リクルートライフスタイルの持つサービス
  5. 5. 80% 基盤エンジニアが運用に割いている割合
  6. 6. 開発: 運用: その他: 理想の割合 70% 20% 10%
  7. 7. 商品概要
  8. 8. トリップAIコンシェルジュ システム概要図
  9. 9. 商品概要 • 会社が商品として売り出すものである • 今後長く使われる可能性がある • 今後機能が追加になる可能性がある
  10. 10. 機械学習基盤に求められるもの
  11. 11. Scalability
  12. 12. Availability
  13. 13. Maintenability
  14. 14. Robustness
  15. 15. Machine learning pipelines on-premises Data load Machine learning on-premises State control Cloud trail Cloud watch Monitoring
  16. 16. Limited interface on-premises Data load Machine learning on-premises State control Cloud trail Cloud watch Monitoring
  17. 17. Full managed work flow on-premises Data load Machine learning on-premises State control Cloud trail Cloud watch Monitoring
  18. 18. Scalable batch on-premises on-premises State control Cloud trail Cloud watch Monitoring Data load Machine learning
  19. 19. Data load Machine learning Visualize on-premises on-premises Cloud trail Cloud watch Monitoring State control
  20. 20. State control Data load Machine learning Infrastructure as code on-premises on-premises Cloud trail Cloud watch Monitoring
  21. 21. State control Data load Machine learning Monitoring on-premises on-premises Cloud trail Cloud watch Monitoring
  22. 22. © 2017 NTT DATA Corporation 23 堤 崇行(ツツミ タカユキ) 株式会社NTTデータ ITサービス・ペイメント事業本部 方式基盤統括部 経歴 • Webアプリ開発 • データ基盤開発・運用 / バッチ開発 • ETL / バッチ処理フレームワーク • ストリーム処理 利用者/運用者/開発者みんなが気持ちよく使える システムを構築できるよう日々奮闘中 好きなものはチョコレートとビール 自己紹介
  23. 23. Machine Learning Pipeline on-premises Data load Machine learning on-premises State control Cloud trail Cloud watch Monitoring
  24. 24. Components of Pipelines Interface
  25. 25. Scheduler Triggers
  26. 26. Scheduler or Triggers Scheduled Task Polling Event Trigger
  27. 27. Interface
  28. 28. Interface Interface Processing Interface
  29. 29. Processing
  30. 30. Batch Processing with Container Batch On Demand Scalable AWS Batch
  31. 31. AWS Batch Submit Job Running Succeeded / Failed JobのCPU数 / メモリを指定 Job Containerが稼動 終了 “最適な”EC2 Instanceが起動Runnable
  32. 32. JobのCPU数 / メモリを指定 “最適な”EC2 Instanceが起動 Job CPU数 メモリ EC2 CPU数 メモリ CPU: 8 メモリ: 24GiB Type: m4.2xlarge CPU: 8 メモリ: 32GiB CPU: 8 メモリ: 500GiB Type: r4.16xlarge? CPU: 64 メモリ: 488GiB
  33. 33. Step Functions Workflow Scalable Managed Event Driven Control AWS Batch
  34. 34. Event Driven BatchStep FunctionsLambdaS3 Data
  35. 35. AWS Step Functions & Batch State Machine Submit Get Status Loop
  36. 36. Monolithic or Micro?
  37. 37. Micro State Machine Pre- processing (Data Load) Processing (Machine Learning)
  38. 38. Relay Step Functions Batch Results BatchStep Functions BatchStep Functions
  39. 39. Event Driven with Lambda ExecutionTrigger S3 Eventで Lambdaを実行 起動成功 起動失敗 多重起動
  40. 40. Event Driven with Lambda Failures & Solutions SolutionsFailuresTrigger S3 Eventで Lambdaを実行 起動失敗 再実行 多重起動 多重起動の阻止 多重起動OK
  41. 41. Retry when Execution Failed Polling DLQ DLQによる確実なLambdaの実行 Cloud Watch Events Event
  42. 42. Preventing Multiple Starts DynamoDBでステート管理 Conditional Put Item Update Item Batch Status State Control DB Start Execution DON’T Start CAN’T Put
  43. 43. Support Idempotent Batch べき等性のあるBatch Jobを実装 多重起動しても正常を保つ Upsert Unique Object name Get Latest Object
  44. 44. Monitoring
  45. 45. Monitoring: Alerts Cloud Watch Logs Log監視 Lambdaをフィルタで振分け ERRORログを検知 Subscription Filter Info Alert
  46. 46. Monitoring: Alerts Batch Status監視 長時間Runnableを検知 Submit Running Succeeded / Failed Job Containerが稼動 “最適な” EC2 Instanceが起動Runnable
  47. 47. Monitoring: Alerts Step Functionの起動監視 一定の時間以上起動していないを検知 BatchStep FunctionsLambdaS3Data
  48. 48. Monitoring: Visualize Batch Status DynamoDB Streams ES
  49. 49. Machine Learning Pipeline Cloud trail Cloud watch Monitoring BatchStep Functions S3 LambdaObjects DynamoDB
  50. 50. Monitoring Machine Learning Pipeline on-premises Data load Machine learning on-premises State control Cloud trail Cloud watch
  51. 51. 最後に
  52. 52. 一緒に基盤作ってくれる人募集中!!! http://engineer.recruit-lifestyle.co.jp/recruiting/
  53. 53. Happy serverless development!!

×