Upgrade to Pro — share decks privately, control downloads, hide ads and more …

データ活⽤の最⼤化とセキュリティの両⽴ AWS Lake Formation で実現するデータ共有基盤の第⼀歩

データ活⽤の最⼤化とセキュリティの両⽴ AWS Lake Formation で実現するデータ共有基盤の第⼀歩

■イベント
AWS Summit Japan
https://aws.amazon.com/jp/summits/japan/

■発表者
技術本部 Eight Engineering Unit SREグループ 中鉢 雅樹

■Eight Engineering Unit 採用情報
https://media.sansan-engineering.com/eight-engineer

■Sansan Tech Blog
https://buildersbox.corp-sansan.com/

SansanTech

June 21, 2024
Tweet

More Decks by SansanTech

Other Decks in Technology

Transcript

  1. 中鉢 雅樹 Sansan株式会社 Eight Engineering Unit SRE グループ - インフラ・SRE

    としてプロバイダーや Web 系企業 などを経て 2021/07 に Sansan 株式会社へ join - SRE グループとして Eight インフラの拡充や SLO の設定・浸透に貢献
  2. 5 © Sansan, Inc. 聞いてほしい⽅ - データ基盤をこれから作ろうとしている⽅ - プロダクトのデータ共有が必要で運⽤がトイルになっている⽅ -

    負債や課題を認識しているが、仕組みが⼤掛かりで腰が重い⽅ - AWS Lake Formation を実際に使ってみようとしている⽅ はじめに
  3. 6 © Sansan, Inc. - Eight のデータ共有における背景と課題 - AWS Lake

    Formation について - 実装と効果 - ⼯夫・苦戦した点 - 展望 Agenda
  4. 8 © Sansan, Inc. Eight ではプロダクトのさまざまなデータを⾃部⾨内・外に共有している 以下のような⽤途で利⽤される 1. ユーザーのアプリ内操作ログを利⽤した KPI

    の設定および⾏動分析 2. 事業利⽤のためのユーザー属性データ抽出 3. ユーザー属性を付与した⾏動分析 4. 全社データ基盤を利⽤した全社横断的な分析およびデータ抽出 Eight のデータ利活⽤の背景
  5. 9 © Sansan, Inc. - ユーザー⾃⾝の情報 - ユーザーから委託された情報 (委託データ) -

    ユーザー属性データ - ユーザーの操作ログ 名刺データを扱う以上機密情報が含まれる ユーザー⾃⾝の個⼈情報や委託された個⼈情報など、分析・抽出に不要な データは他部⾨へ共有しないように操作する必要がある Eight が扱うデータ
  6. 10 © Sansan, Inc. Eight のデータ利⽤の現状 別プロダクト⽤ データ共有フロー DB 分析チーム⽤

    データ共有フロー 分析基盤⽤ データ共有フロー ログ 分析基盤 分析チーム 別プロダクト KPI測定・⾏動分析 プロダクト効果測定 イベント集客・ 広告⽤データ抽出
  7. 11 © Sansan, Inc. 現状の課題 - 要求を受けたチームが最速で提供できる設計で実装してきてしまった - それぞれの分析・抽出基盤のためにそれぞれのデータ共有フローがある -

    各データ共有フローの担当チームが異なる (サイロ化) 共有しているデータ及び共有フローが不透明 名刺データを扱う以上、セキュリティを担保しつつ管理を⼀元化したい
  8. 12 © Sansan, Inc. - 共有データおよびアクセス権限の⼀元管理 - フローの統⼀ - 機密情報等分析・抽出に不要なデータを共有対象から省くことができる

    要件整理 DB ログ Eight データ基盤 イベント集客・ 広告⽤データ抽出 プロダクト効果測定 KPI測定・⾏動分析
  9. 15 © Sansan, Inc. AWS Lake Formation データレイク構築のための⼀連のアセット - ⼀元化された権限管理

    - AWS Glue データカタログを⽤いて RDB のようにアクセスを制御 - タグベースのアクセスコントロール - データ共有を簡素化 - データストアを容易に作成 - アクセスを監視し包括的なデータ監査が可能 - ワークフロー化されたデータのインポート - ブループリント(データ管理テンプレート)も⽤意されている > データベーススナップショット と 増分データベースの 2種類がある
  10. 16 © Sansan, Inc. AWS Lake Formation AWS ソリューション -

    ストレージ: Amazon Simple Storage Service (S3) - 権限管理: AWS Identity and Access Management (IAM) - メタデータ管理: AWS Glue データカタログ - データ共有: Amazon Redshift と権限管理の組み合わせ - データのインポート: AWS Glue クローラ、ジョブ、およびトリガー
  11. 17 © Sansan, Inc. LF-tag について AWS Glue データカタログのリソースにアタッチ IAM

    ロール等にアクセス許可を付与 許可されたリソースのみにアクセスが可能 Table A Table B LF-tag: department = sales classification = restricted LF-tag: department = marketing classification = open LF-tag: department = sales LF-tag: classification = open Database (AWS Glue Data Catalog) IAM Role B IAM Role A
  12. 18 © Sansan, Inc. 要件との対応 - 共有データおよびアクセス権限の⼀元管理 - 分析・抽出に不要なデータを他基盤に共有しない -

    共有先に対応する LF-tag を設定しアクセスを制御 - リソースの追加・アクセス権限の付与が⼀元化 - フローの統⼀ - 共有先の要件に合わせたリソースを選択が可能に
  13. 20 © Sansan, Inc. 実装のステップ Step 2 (将来) Step 1

    (現在) - Lake Formation の導⼊を優先 - 変更を裏側だけに留め、 データ共有先側の対応を⼩さく 既存の仕組みをベースに最⼩限で開始 利⽤者へデータを put する形で導⼊する - 利⽤者がより⾃由にデータを取得で きる形に - Eight の多種多様なデータを Lake Formation 経由で提供 データマートを提供し任意のタイミング でデータを pull できる形に ログを始めとしたデータソースの追加
  14. 21 © Sansan, Inc. 従来のアーキテクチャ Exports in Amazon S3 毎時実⾏

    ⽇次実⾏ AWS Step Functions workflow 直接データを取得 共有部⾨1 ⾃部⾨内 分析チーム 共有部⾨2 直接クエリを実⾏ Export 完了を検知 Amazon EventBridge Amazon EventBridge AWS Lambda Amazon Aurora Amazon EventBridge AWS Glue AWS Glue Amazon S3 Amazon S3 Amazon S3 AWS Lambda AWS Lambda Amazon Redshift
  15. 22 © Sansan, Inc. 実装したアーキテクチャ Lake Formation 15分毎に定期実⾏ ⽇次実⾏ AWS

    Step Functions workflow ⾃部⾨内 分析チーム 直接クエリを実⾏ Export 完了を検知 Amazon EventBridge Amazon EventBridge AWS Lambda Amazon Aurora Amazon EventBridge AWS Glue AWS Glue Amazon S3 Amazon S3 AWS Glue Data Catalog AWS Glue AWS Glue Amazon Redshift Amazon S3 Amazon S3 共有部⾨1 Amazon S3 共有部⾨2 Amazon S3 Exports in Amazon S3
  16. 23 © Sansan, Inc. 共有先に対応するよう LF-tag を設定 意図しないリソースへのアクセスを防⽌ LF-tag を使ったアクセス権限制御

    分析基盤 分析チーム 別プロダクト Table A LF-tag: 分析基盤 LF-tag: 別プロダクト Table B Table C LF-tag: 分析チーム, 分析基盤 現在は put する形だが 将来的に pull する形に備えて設定 DB ログ Database (AWS Glue Data Catalog)
  17. 24 © Sansan, Inc. - サイロ化が解消 - フローが集約されたことで対応が共通化し⼯数削減につながった - 属⼈化を防ぎ学習コストが低減した

    - ⾼い拡張性 - データソースの追加・削除や監視にも対応 - 今後起こりうるデータ共有先の追加にも対応可能 - 権限の⼀元管理 - 共有先とデータのマッピングが容易に - データに付与している権限が可視化され、セキュリティリスクが低減 実装効果
  18. 26 © Sansan, Inc. - Lake Formation のワークフローによるインポートを検討したが要件を 満たすことができなかった -

    抽出⽤途で利⽤する部⾨にて更新頻度の指定があった(最低15分) - 増分データベースブループリントでは新しい⾏のみが追加され、既存の ⾏の更新に対応していない - Aurora の Export は全テーブルが対象となるため、実⾏時間及び 費⽤⾯で問題が発⽣した - ⽇次更新 / ⾼頻度更新 でフローを分離し、負荷を最⼩限にした上で Aurora にクエリを実⾏する形を選択した インポート⽅法の検討
  19. 27 © Sansan, Inc. Lake Formation に関する権限の理解に苦戦 - 権限設定が複雑 -

    Data lake administrators - Data lake Location に付与する IAM Role - Data lake permissions (LF-Tags and permissions) - 暗黙的な権限付与の考慮 - Glue Data Catalog 作成時には作成者の IAM Role に対してのみ操作権 限が⾃動で付与される - 作成者と作業者が異なる場合、Glue Data Catalog のデータベースと LF-tag に別途操作権限を付与する必要がある
  20. 29 © Sansan, Inc. 展望 Step 2 (将来) Step 1

    (現在) - Lake Formation の導⼊を優先 - 変更を裏側だけに留め、 データ共有先側の対応を⼩さく 既存の仕組みをベースに最⼩限で開始 利⽤者へデータを put する形で導⼊する - 利⽤者がより⾃由にデータを取得 できる形に - Eight の多種多様なデータを Lake Formation 経由で提供 データマートを提供する等任意の タイミングでデータを pull できる形に ログを始めとしたデータソースの追加
  21. 30 © Sansan, Inc. 実装したアーキテクチャ Lake Formation Exports in Amazon

    S3 15分毎に定期実⾏ ⽇次実⾏ AWS Step Functions workflow ⾃部⾨内 分析チーム 直接クエリを実⾏ Export 完了を検知 Amazon EventBridge Amazon EventBridge AWS Lambda Amazon Aurora Amazon EventBridge AWS Glue AWS Glue Amazon S3 Amazon S3 AWS Glue Data Catalog AWS Glue AWS Glue Amazon Redshift Amazon S3 Amazon S3 共有部⾨1 Amazon S3 共有部⾨2 Amazon S3
  22. 31 © Sansan, Inc. Redshift をデータマートとして提供する場合 Exports in Amazon S3

    AWS Step Functions workflow ⾃部⾨内 分析チーム 直接クエリを実⾏ Export 完了を検知 15分毎に定期実⾏ ⽇次実⾏ Amazon EventBridge Amazon EventBridge AWS Lambda Amazon Aurora Amazon EventBridge Lake Formation AWS Glue AWS Glue Amazon S3 AWS Glue Data Catalog Amazon S3 Amazon Redshift 共有部⾨1 Amazon S3 共有部⾨2 Amazon S3
  23. 32 © Sansan, Inc. データウェアハウスを Athena で参照させる場合 共有部⾨2 ⾃部⾨内 分析チーム

    共有部⾨1 Exports in Amazon S3 AWS Step Functions workflow 直接クエリを実⾏ Export 完了を検知 15分毎に定期実⾏ ⽇次実⾏ Amazon EventBridge Amazon EventBridge AWS Lambda Amazon Aurora Amazon EventBridge Lake Formation AWS Glue AWS Glue Amazon S3 AWS Glue Data Catalog Amazon S3 Amazon Athena Amazon Athena Amazon Redshift
  24. 33 © Sansan, Inc. データソースを追加 アクションログ等 Exports in Amazon S3

    AWS Step Functions workflow ⾃部⾨内 分析チーム 直接クエリを実⾏ Export 完了を検知 15分毎に定期実⾏ ⽇次実⾏ Amazon EventBridge Amazon EventBridge AWS Lambda Amazon Aurora Amazon EventBridge Lake Formation AWS Glue AWS Glue Amazon S3 AWS Glue Data Catalog Amazon S3 Amazon Redshift 共有部⾨1 共有部⾨2 Amazon S3 Amazon S3 Amazon CloudWatch
  25. 34 © Sansan, Inc. - Lake Formation の概念理解コストは⾼いが、導⼊後は運⽤がシンプルに - アマゾン

    ウェブサービス (AWS) のサポート活⽤や検証結果のチーム共 有を重ね、知⾒を積みつつ運⽤を開始できた - インポート⽅法・共有⽅法の選択肢が多く、既存の仕組みに合わせた活 ⽤が可能だった - セキュリティリスクを減少させより強固な基盤とすることができた - 影響の⼤きい負債の解消について - まずは⼩さく始め、段階的に切り替えることでスムーズに移⾏できた - チームとして理解度を上げることが重要 まとめ