BMW Groupが超ハイレベルな新時代のグローバルデータ分析基盤を稼働させていた #ANT310 #reinvent

どうも!DA部の春田です。

本記事は、AWS re:Invent 2020のセッション動画、「ANT310: How BMW Group uses AWS serverless analytics for a data-driven ecosystem」のレポート記事です。

English version is here.

みなさんご存知、世界的な大企業BMW Groupですが、最近ローンチしたと言われる全社活用のグローバルデータ分析基盤、Cloud Data Hubの完成度が凄まじかった…。

AWSインフラの知識がないBMW社員でも、AWSサービス群を最大活用できるデータ分析プラットフォームを構築しながら、社員であれば誰でもPRが出せるOSSとして社内限定に公開し、改善・機能追加のスピードを上げているのが、素晴らしいと言いますか、よくこれをBMW Groupのような大規模の企業で実現できたなと。データ活用を考えている大手企業必見の事例セッションです。

概要

データはBMW Groupのデジタルトランスフォーメーションを活性化させる燃料です。BMWのパーソナライズされた顧客体験や、コネクテッド・モビリティ・ソリューション、分析インサイトを進める動力源となっています。このセッションでは、BMW GroupがCloud Data Hubを構築するまでの道のりをご紹介していきます。BMW Groupのテクニカル・リード、Simon Kernが、自社がいかにAWSのサーバレス基盤を活用して、モジュラー化された、アクセスのしやすい、再利用可能なビッグデータETL基盤を構築・運用しているのかを深堀りし、次のステップに繋がるインサイトを提供します。ここでご紹介するサービスは、AWS Glue、Amazon Athena、Amazon SageMakerなどを含みます。

スピーカー

  • Simon Kern
    • Lead DevOps Engineer - BMW Group

How BMW Group uses AWS serverless analytics for a data-driven ecosystem - AWS re:Invent 2020

内容

  • BMW GroupのIT活用について
  • Cloud Data Hub: BMW Groupの基幹データレイク
  • データ・オーケストラレーション
  • データの抽出と加工
  • データ分析
  • 今後の展望

BMW GroupのIT活用について

BMW Groupは、世界60国籍、29ヵ国に展開するグローバル・モビリティ・カンパニー。世界694カ所が社内のITネットワークで繋がり、230以上のソフトウェアプロダクトを提供しているため、ITカンパニーとも呼べる。その中で最も重要なサービスの一つ、BMW ConnectedDriveのバックエンドでは、1400万の自動車が接続され、1日あたり10億ものリクエストが処理されている。

  • → BMW Groupは、そのバックエンドで大量のデータを捌いている
  • → データレイクへデータを流し、管理と分析を行いたい
  • → Cloud Data Hubが登場

Cloud Data Hub: BMW Groupの基幹データレイク

  • クラウドネイティブなデータレイクのメリット
    • データ投入のしやすさ
    • ストレージがスケーラブル
    • データから価値を見出しやすくする
  • 左図
    • 500以上のソフトウェア・データ・エンジニアが利用
    • データ投入とデータ変換処理を構築し、マーケットプレイスに蓄える
  • 右図
    • 5000以上のビジネス・アナリストとデータサイエンティストが使用
    • ユースケースや機会学習モデルの構築
  • → データの民主化が実現、誰でも全てのデータへアクセス可能に

全てはData Portalを通して、シームレスに使用できる。

アーキテクチャ内部は、Data Provider、Data Consumer、Data Portal & API、の3つの柱で構成されている。全てマルチアカウントで構築・運用している。

データ・オーケストラレーション

  • Data Providers(左側)
    • グローバルIT部門が提供する共通のデータセット
    • ローカルのIT部門固有のデータセット
  • Data Consumer(右側)
    • 図中央の別レイヤーでデータのアクセス権を管理
    • グローバル部門はグローバルのデータセットのみ、ローカル部門はグローバルとローカルの両方にアクセスするなど
  • Data Portal & API(中央)
    • ユーザーができること
      • データの検索とクエリ
      • メタデータの管理
      • インフラのデプロイ
    • 数種類のAPIをベースに構築されている
    • セキュリティ、コンプライアンスにも対応
    • シングルサインオン
    • グレーの枠
      • マーケットとリーガルで分割し、それぞれのハブで固有のアカウントとプロセスを持っている
    • 統合されたシームレスなフロントエンド

  • Dataset
    • S3バケットとGlueデータベースの組み合わせ
    • 必ずHubの内側に存在する
    • 複数のDatasetをカテゴライズするために、Business objectなるものに紐付けられている
    • 各データセットは、以下の3つのレイヤーのどれかに分けられる
      • Source: ソースシステムからのコピー、生データ
      • Prepared: 前処理図済みのデータ
      • Semantic: 分析に使われる集計データ

データの抽出と加工

  • データ抽出のキーコンセプト
    • Ease of use(使いやすさ)
      • GUIのTypescriptベースのCDKから構築やデプロイが可能のため、AWSの知識は最小限でOK
      • Terraformモジュールで、インフラの詳細設定
    • Flexibility(柔軟性)
      • 小さくモジュール化された機能を組み合わせてシステムを構築
      • モジュールの再利用
    • Maintainability(メンテナンスのしやすさ)
      • 社内オープンソースとして公開、全社員がPRを出せるコミュニティへ
      • Forkして使用も可能

  • オンプレからCDH Coreへのデータ出力
    • 全てTerraformで構築
    • Glue ETL
      • プライベートVPCで稼働
      • オンプレからデータを引っ張ってくる
      • CDHのS3バケットへ保存
    • Secrets Manager
      • クレデンシャルを保存するデータベース
    • Cloud Watch
      • ログ管理、Glueジョブのトリガー
    • Glue Data Catalog
      • LambdaでProviderとCDH CoreのData Catalogを同期
    • セキュリティアカウントは独立
      • KMSキーはここで保管
    • PII API
      • センシティブデータはこのAPIを通して暗号化

  • データ前処理
    • 別のTerraformモジュールを使用してセットアップ
    • CDHのS3バケットからデータを取得(source layer)
    • Prepare layerのデータセットとして出力

  • データ抽出での課題
    • マルチアカウントによるS3オブジェクトの所有権問題
    • Glueジョブのサイズ調節
      • Glue ETLで使用するDPUの適切な数の選択に苦戦
      • 自動化は難しかったので、ベストプラクティスに沿って決定した
      • 軽めのETLAWS FargateでオーケストラレートしたSparkで実行
    • 細分化されたファイルの扱い
      • ストリーミングでは、出力ファイルが細かくなりがち
      • GlueとAthenaを使用した、合体(Compaction)用のモジュールを実装した

  • データ抽出まとめ
    • 共通のタスクで使いまわせるモジュール
    • マルチアカウントの設定
      • インフラの分離
      • 組織全体へスケールアウトのしやすさ
      • 個々のチームへ権限付与
    • 150以上のシステムがデータをCloud Data Hubへ出力
    • 1PB以上のデータボリュームに
      • 100TBまでは、PySparkベースのETL処理
      • 他はストリームデータとしてETL処理

データ分析

  • アナリストが使うAWSサービス
    • Amazon Athena
    • Amazon SageMaker(Amazon EMRやAWS Glue ETLも時に使用される)
    • Amazon QuickSight
  • 課題:誰でも実験環境から本番環境へデプロイできるようにすること
    • データ抽出や加工をCI/CDへ導入
    • プロダクトの新しいバージョンを構築するための管理された環境

デモの様子はセッション動画をご覧ください

  • アーキテクチャ -Data PortalとBitbucketを起点に異なるパイプラインへ展開 - 実験(Exploration):データを探索し、変換用のコードを実装 - 開発(Development):変換コードAthenaで検証 - 本番(Production):開発で問題なければ本番へデプロイされる

  • データ分析まとめ
    • 管理されたツールを用意して、誰でもプロダクションパイプラインを使用可能に
    • ベストプラクティスや、パイプラインの手順も内蔵しておく
    • AWSサービスを最大活用するための仕組みづくり

今後の展望

  • 細かい(Fine-grained)アクセス制御を実現するために、AWS Lake Formationを導入
  • Spark実行プランで、カラムレベルで細かいデータの関係性を把握
  • データモニタリングの自動化(よく使用しているユーザーや、データセットの更新日時、ヘルス、統計情報など)
  • BIツールのパフォーマンス改善のためのクエリ高速化レイヤ

AWS re:Invent 2020絶賛開催中!

ぜひ本編のセッション動画もご覧ください!サインアップがまだの方は以下のリンクからどうぞ。

AWS re:Invent | Amazon Web Services