AWS 移行事例紹介
~ DMM のデータ活用を支えるビッグデータ基盤・ML基盤のクラウド移行 ~
座間味 卓臣
合同会社 DMM.com データ本部 本部長 C U S - 4 0アジェンダ
• 自己紹介
• DMMについて
• データ本部について
• 移行後のシステム概要について
• データ基盤の移行について
• 機械学習(ML)基盤の移行について
• まとめ
アジェンダ
•
自己紹介
• DMMについて
• データ本部について
• 移行後のシステム概要について
• データ基盤の移行について
• 機械学習(ML)基盤の移行について
• まとめ
自己紹介
• 合同会社 DMM.com
データ本部
本部長
座間味 卓臣 ( Takumi Zamami )
• 経歴
• 2018年1月 入社 社長室配属
• 2018年5月 AI部 部長
• 2020年3月 データサイエンス部 部長
• 2021年1月 データ本部 本部長
アジェンダ
• 自己紹介
•
DMMについて
• データ本部について
• 移行後のシステム概要について
• データ基盤の移行について
• 機械学習(ML)基盤の移行について
• まとめ
アジェンダ
• 自己紹介
• DMMについて
•
データ本部について
• 移行後のシステム概要について
• データ基盤の移行について
• 機械学習(ML)基盤の移行について
• まとめ
データの収集から活用までを担当
Client Users Application server DWH, Datamart Data Analyst ①データ取り込み ②整形 ③ 分析環境の提供 ④ データ解析 (MLはおもに解析・データ生成で活用) ⑤ データを活用した アプリケーションの提供 (商品推薦・商品検索) Data Engineer Data Scientist, Data Engineer SRE Application Engineerアジェンダ
• 自己紹介
• DMMについて
• データ本部について
•
移行後のシステム概要について
• データ基盤の移行について
• 機械学習(ML)基盤の移行について
• まとめ
そんな要求に答える、現在のシステム(移行後)
AWS Cloud Data center Office Server Client User Client API Cluster Batch Cluster DWH Data Mart Amazon EMRAmazon S3 Amazon S3 Amazon S3
AWS Glue Data Catalog
AWS Glue Data Catalog
Amazon EMR Amazon Athena
Amazon SageMaker Service Task Service Amazon DynamoDB Elastic Load Balancing Amazon Route 53 Users AWS Glue Crawler
アジェンダ
• 自己紹介
• DMMについて
• データ本部について
• 移行後のシステム概要について
•
データ基盤の移行について
• 機械学習(ML)基盤の移行について
• まとめ
AWS Glue Crawler Data center Server Client Users
まずは、データ基盤のクラウド移行について
AWS Cloud Office
User Client API Cluster Batch Cluster DWH Data Mart Amazon EMR
Amazon S3 Amazon S3 Amazon S3
AWS Glue Data Catalog
AWS Glue Data Catalog
Amazon EMR Amazon Athena
Amazon SageMaker Service Task Service Amazon DynamoDB Elastic Load Balancing Amazon Route 53
データ基盤 規模
Client Users Application server DWH, Datamart 分析利用者 1TB/1日 以上追加 Data Engineer Data Scientist, Data Engineer SRE Application Engineer 数百TBのデータ 1,000 Table 以上 1,000人以上 • 事業担当者 • エンジニア • マーケティング担当者 …. 実行ジョブ 実行Query 20,000 / 週 以上データ基盤移行前
ハイブリット構成 データが散在
Client Application server DWH 分析利用者 DWH DWH ①基盤チーム管理外の 独自コピー, 独自処理 AWS Cloud Data center 悲しい過去の事例 • 基盤チーム管理外の独自コピー、 独自処理Batchが存在(①) • 元データ不具合発生時の再取り込み時(②)に 誰も整合性を担保できないデータ発生(③) • データの不一致をユーザーが検知(④) • データの差分調査が発生 • 利用者から信頼を失う ④一致すべきデータの不整合を検知 ②不具合発生時は 再取り込み ③独自管理のため 再実行されない DWHプロダクトごとに利用データが異なる
Client Application server DWH DWH DWH AWS Cloud Data center DWH プロダクトA プロダクトB プロダクトC 分析利用者事業ごとに独立した、高い柔軟度
Client Application server DWH DWH DWH AWS Cloud Data center DWH プロダクトA プロダクトB プロダクトC 分析利用者結果的に数多くのシステムが乱立
Virtual machine 数172
(本番のみ) などなど。。。。 これらの組み合わせにより構成された、 * 2 * 2問い合わせ
業務負荷が高く、6人の基盤チームはパンク
Client Application server DWH DWH DWH AWS Cloud Data center DWH プロダクトA プロダクトB プロダクトC 分析利用者 担当者 担当者 問い合わせ 問い合わせ 問い合わせ 基盤担当問い合わせ
データ基盤を取り巻く課題まとめ
Client Application server DWH DWH DWH AWS Cloud Data center DWH プロダクトA プロダクトB プロダクトC 分析利用者 担当者 担当者 問い合わせ 問い合わせ 問い合わせ 基盤担当 ① ② ② ② ② ③ ③ ③ ③ ④ ①システムが乱立 ②データが散在 ③データの状態がわからず、 安心して使えない 結果的に ④基盤チームに問い合わせ殺到し 業務負荷が高い状態問い合わせ
増加データへの対応、データ活用推進が困難な状況
Client Application server DWH DWH DWH AWS Cloud Data center DWH プロダクトA プロダクトB プロダクトC 分析利用者 担当者 担当者 問い合わせ 問い合わせ 問い合わせ 基盤担当 ①システムが乱立 ②データが散在 ③データの状態がわからず、 安心して使えない 結果的に ④基盤チームに問い合わせ殺到し 業務負荷が高い状態問い合わせ
クラウド移行を通じ、課題解消を目指す
Client Application server DWH DWH DWH AWS Cloud Data center DWH プロダクトA プロダクトB プロダクトC 分析利用者 担当者 担当者 問い合わせ 問い合わせ 問い合わせ 基盤担当 ①システムが乱立 ②データが散在 ③データの状態がわからず、 安心して使えない 結果的に ④基盤チームに問い合わせ殺到し 業務負荷が高い状態 スケール可能なシステム・業務の実現 • どうしても必要な業務・システムのみ残す • 可能な限りManagedなサービスを利用 • 管理対象のシステム・業務を極限まで減らすSingle Source of Truth ( SSoT ) の実現
• すべてのデータを一箇所に集める
データ品質の可視化の実現
• データ品質の監視を導入
AWS Glue Crawler Data center Server Client Users
オンプレシステムについて
AWS Cloud Office
User Client API Cluster Batch Cluster DWH Data Mart Amazon EMR
Amazon S3 Amazon S3 Amazon S3
AWS Glue Data Catalog
AWS Glue Data Catalog
Amazon EMR Amazon Athena
Amazon SageMaker Service Task Service Amazon DynamoDB Elastic Load Balancing Amazon Route 53
最低限のシステムのみに
オンプレデータ取り込みのための * 2 * 2 Virtual machine 数8
(本番のみ)Data center Server Client Users
アマゾン ウェブ サービス(AWS)のシステムについて
Office User DWH Data MartAmazon EMR Amazon S3 Amazon S3
AWS Glue Data Catalog
AWS Glue Data Catalog
Amazon EMR Amazon Athena AWS Cloud
Amazon S3
AWS Glue Crawler
AWS Glue Crawler Data center Server Client Users
Amazon S3を活用したSSoTの実現
Office User DWH Data MartAmazon EMR Amazon S3 Amazon S3
AWS Glue Data Catalog
AWS Glue Data Catalog
Amazon EMR Amazon Athena AWS Cloud Amazon S3 すべてのデータを同一AWSアカウントのAmazon S3に集め、SSoTを実現 Audit用のログ取得も容易 監査対応業務の廃止 注意した点) • スローダウンへの対策
Data center
Server Client Users
AWS Glue Crawler 活用でTable定義を自動化
Office
User
DWH Data Mart
Amazon EMR Amazon S3 Amazon S3
AWS Glue Data Catalog
AWS Glue Data Catalog
Amazon EMR Amazon Athena AWS Cloud
Amazon S3
AWS Glue Crawlerを活用し、Amazon S3に保存されたデータからTable定義を自動作成 Hive (Spark), Amazon Athena でも読み書き可能な形式に対応
テーブル定義更新業務を廃止
AWS Glue Crawler
Data center Server Client Users
EMRを活用した効率改善
Office User DWH Data MartAmazon EMR Amazon S3 Amazon S3
AWS Glue Data Catalog
AWS Glue Data Catalog
Amazon EMR Amazon Athena AWS Cloud Amazon S3 ジョブごとにクラスタを分割し、リソースを割当 様々な言語で実装されていたBatchの実装をSparkで再実装 (再実装の際に不要なJobや、集約可能なJobを整理) 結果的にオンプレ時代の 1/8 程度のスペックで運用を実現 クラスタ管理業務の廃止、監視対象のJob数削減による業務負担軽減 注意した点 )
• Amazon S3にVPC endpoint を設定 ( 利便性観点で EMR を public subnet に配置 )
AWS Glue Crawler
Data center
Server Client Users
AWS Glue Data Catalogを活用したデータ品質可視化
OfficeUser
DWH Data Mart
Amazon EMR Amazon S3 Amazon S3
AWS Glue Data Catalog
AWS Glue Data Catalog
Amazon EMR Amazon Athena AWS Cloud
Amazon S3
データ品質に関わる情報*をGlue Data Catalogに集約し、 利用者がデータの品質を確認可能な状態を実現
( *: ex.データ更新時間、データValidation成否等 ) データに関する問い合わせ対応を大幅に削減
AWS Glue Crawler
Data center Server Client Users
Athenaを活用したQuery環境の提供
Office User DWH Data MartAmazon EMR Amazon S3 Amazon S3
AWS Glue Data Catalog
AWS Glue Data Catalog
Amazon EMR Amazon Athena AWS Cloud Amazon S3 SQLの実行環境をAthenaに集約し、Query実行環境の管理業務を廃止 実行環境を一元化したことにより、Audit 対応業務も大幅削減 AWS Glue Crawler
AWS Glue Crawler Data center Server Client Users
結果的に利用者、基盤担当が幸せに
Office DWH Data MartAmazon EMR Amazon S3 Amazon S3
AWS Glue Data Catalog
AWS Glue Data Catalog
Amazon EMR Amazon Athena AWS Cloud Amazon S3 基盤担当 User 安心してデータを利用できる環境を獲得 • データの不整合の解消 • データ品質が可視化 データ活用促進へ注力可能な状態を獲得 • 運用業務の大幅削減 • (副次的に)利用実態を把握可能な状態を獲得 Managedなスケール可能な環境を獲得
アジェンダ
• 自己紹介
• DMMについて
• データ本部について
• 移行後のシステム概要について
• データ基盤の移行について
•
機械学習(ML)基盤の移行について
• まとめ
AWS Glue Crawler Data center Server Client Users
次に、ML基盤のクラウド移行について
AWS Cloud Office
User Client API Cluster Batch Cluster DWH Data Mart Amazon EMR
Amazon S3 Amazon S3 Amazon S3
AWS Glue Data Catalog
AWS Glue Data Catalog
Amazon EMR Amazon Athena
Amazon SageMaker Service Task Service Amazon DynamoDB Elastic Load Balancing Amazon Route 53
ML基盤移行前
データ活用促進に向けた課題
データ活用促進に向けた課題 • スケール性 オンプレのリソースが共有となっており、 重たい処理実行時には調整が必要 (①) • 効果計測方法がバラバラ ABテスト等リリース効果評価の仕組みを 各プロダクトで実装。 横断評価が困難(②) • 業界のプラクティス導入工数が大きい プロダクトごとに別々の環境を利用しており、 実装管理方法・Release方法が異なっていた。 知見の共有がしづらく、プラクティス導入時も 個別対応が必要となっていた(③) DWH DWH AWS Cloud Data center DWH プロダクトA プロダクトB プロダクトC 担当者 担当者 ① ② ③クラウド移行を通じた課題解消方針
データ活用促進に向けた課題 • スケール性 オンプレのリソースが共有となっており、 重たい処理実行時には調整が必要 (①) • 効果計測方法がバラバラ ABテスト等リリース効果評価の仕組みを 各プロダクトで実装。 横断評価が困難(②) • 業界のプラクティス導入工数が大きい プロダクトごとに別々の環境を利用しており、 実装管理方法・Release方法が異なっていた。 知見の共有がしづらく、プラクティス導入時も 個別対応が必要となっていた(③) DWH DWH AWS Cloud Data center DWH プロダクトA プロダクトB プロダクトC 担当者 担当者 ① ② ③ スケール可能なシステムの提供 • 可能な限りManagedなサービスを利用 • 管理対象のシステム・業務を極限まで減らす リリース影響評価を統一 • ABテストの評価方法を統一 Agility高い環境の獲得 • 非データ活用領域を集約 • 業界のプラクティスを導入可能な状態の実現移行後のML基盤
AWS Cloud API Cluster Batch Cluster DWH Amazon S3 AWS Glue Data Catalog Amazon SageMaker Service Task Service Amazon DynamoDB Elastic Load Balancing Amazon Route 53各専門家が得意な領域に注力
AWS Cloud API Cluster Batch Cluster DWH SRE / Amazon S3 AWS Glue Data Catalog Amazon SageMaker Service Task Service Amazon DynamoDB Elastic Load Balancing Amazon Route 53 Data Scientist /ML 基盤 Batch cluster
AWS Cloud API Cluster DWH Amazon S3 AWS Glue Data Catalog Service Elastic Load Balancing Amazon Route 53 Batch Cluster Amazon SageMaker Task Service Amazon DynamoDBService
Spark on Amazon EKS, Amazon SageMaker の活用
AWS Cloud API Cluster DWH Amazon S3 AWS Glue Data Catalog Service Elastic Load Balancing Amazon Route 53 Batch Cluster Amazon DynamoDB Amazon SageMaker Task • 良いモデル・Batch を作ることに注力
• Scheduling や workflow の定義は yaml を書くだけ • Spark on k8s, Amazon SageMaker はお好みで
• Amazon SageMaker operator を利用することで、 Batch化もYamlを記述するだけで実現可能
Service
DynamoDB の活用
AWS Cloud API Cluster DWH Amazon S3 AWS Glue Data Catalog Service Elastic Load Balancing Amazon Route 53 Batch Cluster Amazon SageMaker Task• Batch ClusterとAPI Clusterの間に設置し責務を分離
• Data Scientist, Data Engineer は良いデータを届けることに注力 • Key にABテストIDを入れ、モデルを分離
• StateをAPI Cluster外に分離することで、
StatelessなApplicationに限定し、API Clusterの運用工数を削減
Amazon DynamoDB
ML 基盤 API cluster
AWS Cloud Batch Cluster DWH SRE / Amazon S3 AWS Glue Data Catalog Amazon SageMaker Task Service Elastic Load Balancing Amazon Route 53 API Cluster 推薦API Amazon DynamoDB • サービスの安定性維持、継続的改善に注力 • Scalingは Amazon EKS におまかせ• Flagger を採用し、リリースやABテストの切り替えを トラフィック1%単位で自動検証
ABテスト判定 購入済商品除外
Microservices on Amazon EKS + Istio + Flagger による
アジリティ獲得
認証用API 推薦API
購入済み商品除外API
ABテスト判定API Campaign api
・・・ ① ② ⑤ ⑥ ③ ④ ⑨ ⑩ ⑧ ⑦ API Cluster Amazon DynamoDB • APIを疎結合にし、 再利用性を向上 車輪の再開発を抑止 • Istio導入により API間の通信(影響範囲) 可視化を実現
Microservices on Amazon EKS + Istio + Flagger による
アジリティ獲得
⑥リリース 完了 ② v2(新しいversion) へ トラフィックを徐々に流す (エラー検知で自動差戻し) ④v2の検証を完了 v1をv2へ置換 ⑤置き換えたv2へ トラフィックを 徐々に戻す リリースまでの流れ リリースまでのトラフィック推移各専門家が得意領域に注力できる環境の獲得
AWS Cloud API Cluster Batch Cluster DWH Amazon S3 AWS Glue Data Catalog Amazon SageMaker Service Task Service Amazon DynamoDB Elastic Load Balancing Amazon Route 53 Managedなスケール可能な環境を獲得 システムの安定性向上・Agility向上に注力可能に 業界のプラクティスを楽に導入可能に リソースを気にせず気軽に実験可能に 良いアルゴリズム・Batchの実装に注力 SRE / Application Engineer Data Scientist / Data Engineerアジェンダ
• 自己紹介
• DMMについて
• データ本部について
• 移行後のシステム概要について
• データ基盤の移行について
• 機械学習(ML)基盤の移行について
•
まとめ
そんな課題をAWS移行を通じて解決しました
AWS Cloud Data center Office Server Client User Client API Cluster Batch Cluster DWH Data Mart Amazon EMRAmazon S3 Amazon S3 Amazon S3
AWS Glue Data Catalog
AWS Glue Data Catalog
Amazon EMR Amazon Athena
Amazon SageMaker Service Task Service Amazon DynamoDB Elastic Load Balancing Amazon Route 53 Users AWS Glue Crawler Users
今後は、さらなるデータ活用促進に注力
AWS Cloud Data center Office Server Client User Client API Cluster Batch Cluster DWH Data Mart Amazon EMRAmazon S3 Amazon S3 Amazon S3
AWS Glue Data Catalog
AWS Glue Data Catalog
Amazon EMR Amazon Athena
Amazon Service Task Amazon DynamoDB Elastic Load Balancing Amazon Route 53 Users AWS Glue Crawler Users ①より新鮮なデータを利用者に届ける ②複雑な分析が可能な環境の提供 ④ニアリアルタイムに 結果を変える仕組みの構築