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

データ基盤におけるIaCの重要性とその運用

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.
Avatar for k.muguruma k.muguruma
January 20, 2025

 データ基盤におけるIaCの重要性とその運用

Avatar for k.muguruma

k.muguruma

January 20, 2025
Tweet

More Decks by k.muguruma

Other Decks in Technology

Transcript

  1. © 2024 Finatext Holdings Ltd. • むぐるまです • 株式会社ナウキャスト所属 ◦

    データエンジニア/データプラットフォームエンジニア ◦ 社内のデータ基盤のエンハンス・顧客向けデータ基盤構築支援など ◦ webエンジニア出身 • 北海道・札幌在住 ◦ 山とスキーが好き • X: @mt_musyu • 今日の内容は大体Zennに書いた記事の通りです ◦ データ基盤におけるIaCの重要性とその運用 1 自己紹介 六車 光貴
  2. © 2024 Finatext Holdings Ltd. 2 会社紹介 データの保有側・利用側の双方に価値を提供するオルタナティブデータのTwo-Sided Platformを展開し ます

    データのマネタイズから一気通貫でサービスを展 開することで、データホルダーとデータユーザー それぞれの商流を阻む障害点を解決することが できます。
  3. © 2024 Finatext Holdings Ltd. 弊社主催のDataOps Night にてデータ組織についてお話しするのでこちらもぜひ! 3 自己紹介

    宣伝: DataOps Night #6を2025/02/04に開催予定! https://finatext.connpass.com/event/341105/
  4. © 2024 Finatext Holdings Ltd. 4 背景 • 近年、データ利活用の推進や生成AIの利用が進む中で、データ基盤の重要性が増加 •

    単にデータ基盤を構築するだけでなく、増え続けるデータやユーザーを考慮した運 用も求められている ◦ PoCで終わらせない。運用が本番。 • データ基盤の構築や運用を効率化するために、ソフトウェアエンジニアリングの知 見を生かすこと、とりわけIaC(Infrastructure as Code)の導入が重要であると 考えている • 改めてデータ基盤においてのIaCの重要性を整理したい AIの発展によりIaCの概念が終わる可能性は十分高 いが、最初からIaC化されているとAIによる高度化は やりやすくはなると考えている
  5. © 2024 Finatext Holdings Ltd. 5 閑話休題 データエンジニアリングはますます「エンタープライズ」的になる Data engineering

    is becoming more “enterprisey. データ エンジニアリングはますます「エンタープライズ」的になっています。 ~略~ When I discuss “enterprisey,” I’m referring to some of the good things that larger companies might do with data — management, operations, governance, and other “boring” stuff. I think data engineering becoming “enterprisey” is a great thing. Welcome it with arms wide open! 私が「エンタープライズ」について話すとき、私は大企業がデータを使って行うかもしれない良いこと、つまり管理、運用、ガバナン ス、その他の「退屈な」ことのいくつかについて言及しています。 Joe Reis 3 Data Engineering Experts Share Their Thoughts on Where Data Is Headed | by Ben Rogojan | Better Programming より 運用も考慮されたエンタープライズデータ基盤を構築する必要性が高まっている
  6. © 2024 Finatext Holdings Ltd. 6 今日の流れ • データ基盤の特徴・要件を整理 •

    そこに対してIaC化がもたらすメリットを整理 • IaC導入のプラクティス • ナウキャストでの事例紹介
  7. © 2024 Finatext Holdings Ltd. 7 今日の流れ • データ基盤の特徴・要件を整理 •

    そこに対してIaC化がもたらすメリットを整理 • IaC導入のプラクティス • ナウキャストでの事例紹介
  8. © 2024 Finatext Holdings Ltd. 8 データ基盤の特徴・要件 以下の5つの特徴を持つことが多い • 多様なデータソースの統合

    • 複雑なユーザーアクセス権限の管理 • スケーラビリティと柔軟性 • ガバナンスとコンプライアンス • データメッシュの必要性
  9. © 2024 Finatext Holdings Ltd. 9 データ基盤の特徴・要件 多様なデータソースの統合 • データ基盤は、さまざまなデータソース(データベース、

    API、ファイルストレージなど)からデータを収集し、統合 する役割を果たす ◦ 異なるフォーマットや構造のデータを扱う必要 ◦ 例)オブジェクトストレージ(S3など)からデータを取得する のか、RDBからデータを取得するのか、また CRM(Salesforceなど)からデータを取得するのか
  10. © 2024 Finatext Holdings Ltd. 10 データ基盤の特徴・要件 複雑なユーザーアクセス権限の管理 • データ基盤は、エンジニアだけでなく、アナリストやビジネスメンバーなど、さま

    ざまなロールのユーザーが利用する • それぞれのユーザーに対して適切な権限を設定し、データのセキュリティを確保す ることが求められる • これが一つのテナント・アカウントに同居することがデータ基盤の場合、求められ がち ◦ データが複数のアカウントやテナントに散らばっていたら(=サイロ化していた ら)複数のデータを組み合わせた分析がしづらいため ◦ よって、権限管理がより複雑になりやすい ▪ cf. 1つのAWSアカウントに複数のWebサービスが同居しているような状態
  11. © 2024 Finatext Holdings Ltd. 11 データ基盤の特徴・要件 スケーラビリティと柔軟性 • データの量や利用者が増加する中で、データ基盤はスケーラブルである必要があ

    り、ビジネスニーズの変化に応じて柔軟に対応できる設計が求められる • データ基盤はそれ単体では付加価値を生まないコストセンターに見られがち • リッチなデータ基盤だけあっても、データ利活用・データプロダクトがなければ、 意味がない
  12. © 2024 Finatext Holdings Ltd. 12 データ基盤の特徴・要件 ガバナンスとコンプライアンス • データの利用に関するガバナンスやコンプライアンスの要件が厳しくなっている中

    で、データ基盤はこれらの要件を満たす必要がある。適切な監視やログ管理が不可 欠 • 誰がどのデータにアクセスしたか、どのデータがどのように利用されたか、などの 情報を記録し、必要に応じて監査を行うことが求められる
  13. © 2024 Finatext Holdings Ltd. 13 データ基盤の特徴・要件 データメッシュの必要性 • 小さな組織やPoC的にデータ基盤を構築する場合、中央にデータ基盤を構築し、そ

    こにデータを集約して中央のデータチームで管理することが一般的だった • しかし、データ利活用が進むにつれ、データ基盤を利用するユーザーが増え、デー タの種類も多様化し、その結果、中央のデータチームがボトルネックとなり、デー タ基盤の運用が困難になることがある • データメッシュとは、データ基盤を中央に持たず、データを利用するユーザーに近 い場所にデータ基盤を配置し、それぞれのユーザーが必要なデータを自由に利用で きるようにするアーキテクチャ
  14. © 2024 Finatext Holdings Ltd. 16 今日の流れ • データ基盤の特徴・要件を整理 •

    そこに対してIaC化がもたらすメリットを整理 • IaC導入のプラクティス • ナウキャストでの事例紹介
  15. © 2024 Finatext Holdings Ltd. 17 IaCがもたらすメリット 一貫性と再現性 • 環境の一貫性を確保

    ◦ IaCにより、データ統合環境をコードで管理 ◦ 再現性のあるインフラを構築可能 • コードの使い回し ◦ 例: S3からSnowflakeへのデータロードパイプラインをコード化 ◦ 新たなデータソースが追加されても迅速に対応可能 • 一貫性のある権限管理 ◦ 権限設定をIaCでコード化し、再現性のある管理を実現 • セルフサービスの提供 ◦ ドメインチームがテンプレートを利用してパイプラインを構築可能 データ基盤の特徴・要件の • 多様なデータソースの統合 • 複雑なユーザーアクセス権限の管理 • スケーラビリティと柔軟性 • データメッシュの必要性 に有用
  16. © 2024 Finatext Holdings Ltd. 18 IaCがもたらすメリット ガバナンスの強化 • トレーサビリティの向上

    ◦ IaCにより、インフラの変更履歴をコードで管理 ◦ GitHubやCI/CDのログで「誰が・いつ・何を」変更したかを正確に記録 • 監査対応の効率化 ◦ AWS CloudTrailやGCP Audit LogsとIaCを組み合わせ、履歴を一元管理 ◦ 監査時に必要な情報を迅速に取得可能 • 承認プロセスの自動化 ◦ Two Person IntegrityをIaCで実現 ◦ 例: Pull Requestでの承認フローを必須化 データ基盤の特徴・要件の • ガバナンスとコンプライアンス に有用
  17. © 2024 Finatext Holdings Ltd. 19 今日の流れ • データ基盤の特徴・要件を整理 •

    そこに対してIaC化がもたらすメリットを整理 • IaC導入のプラクティス • ナウキャストでの事例紹介
  18. © 2024 Finatext Holdings Ltd. 20 IaC導入のプラクティス Single Source of

    Truthの確保 • IaCでインフラの構成をコードとして管理しても、その反映が様々なフロー・プロ セスで実行されるとそれがSingle Source of Truth(信頼できる唯一の情報源, SSoT)であることを保証できない • CI/CDの導入とコード管理の徹底することでSSoTを保証する ◦ IaCを実際のリソースに反映(Terraformの場合、apply)するのが原則CI/CD経由の みとする
  19. © 2024 Finatext Holdings Ltd. 21 IaC導入のプラクティス メンバー間のスキル差を考慮した運用 • データ基盤利用者はデータエンジニア、データサイエンティスト、データアナリス

    トなど異なるスキルセットを持つメンバー • セルフサービス的に運用するならば、IaC利用のハードルを下げることが重要 ◦ Terraformを使っている場合は、Atlantisやtfcmtを使うなどする • メンバーに求めるスキルセット ◦ Platformチーム: Terraformモジュールの設計方法やCI/CDパイプラインの管理な ど、IaCの深い理解が必要 ◦ 他のメンバー:ベーシックなIaCの使い方、Ci/CD踏まえたデプロイの仕方の理解 をしていればOK(となるようにセルフサービスプラットフォームを整えておく)
  20. © 2024 Finatext Holdings Ltd. 22 IaC導入のプラクティス ガードレールの仕込み • セキュリティ対策や権限管理の標準化

    • セキュリティ設定の自動化 ◦ パスワードポリシーをコードで強制適用 ◦ MFA(多要素認証)の必須化 • 権限の制御 ◦ DBの作成・削除をTerraform経由のみに限定 ◦ IAMポリシーをIaCで一元管理 • 致命的なミスの防止 ◦ セルフサービス運用でも最低限のセキュリティを確保 ◦ テンプレート化により不適切な設定を防止
  21. © 2024 Finatext Holdings Ltd. 23 今日の流れ • データ基盤の特徴・要件を整理 •

    そこに対してIaC化がもたらすメリットを整理 • IaC導入のプラクティス • ナウキャストでの事例紹介
  22. © 2024 Finatext Holdings Ltd. 24 ナウキャストでの事例紹介 AtlantisによるTerraform CI/CD運用 •

    ナウキャストではAtlantis を利用した安全でスケーラブルな Terraform の CI / CDを採用 ◦ AtlantisはGitHubのPRコメント上でTerraformのplanやapplyができるツール ◦ 権限の追加や新規データソース用のリソース作成などが、チームメンバーによって 安全に行えるようになっている ▪ lock機能があるので、同時に複数人が作業していてもconflictを防ぐ ▪ applyは特定のメンバーのapproveがないと実行できないなどのルールを設定可能
  23. © 2024 Finatext Holdings Ltd. 25 ナウキャストでの事例紹介 チームメンバーのIaC活用促進 • 新規参画エンジニア向けのオンボーディングで自分自身のAWS/Snowflakeユー

    ザーアカウントの発行のPRを作成いただいている →これによりナウキャストのエンジニアは全員Terraformを書いてApplyを実施した経 験がある状態にする • きめ細やかな権限を設定する必要があるデータ基盤においては複雑な部分は Terraform モジュールを作成して隠蔽 ◦ ref: マルチデータプロダクト基盤としての Snowflake の権限管理とコスト管理 - Speaker Deck
  24. © 2024 Finatext Holdings Ltd. 26 ナウキャストでの事例紹介 実際の運用イメージと成果 • AtlantisでPR上でコミュニケーションを

    し、Terraform Applyを実行している • ナウキャストのデータエンジニアのほぼ全 員がSnowflakeのTerraformリポジトリの Contributorとなっている
  25. © 2024 Finatext Holdings Ltd. 28 まとめ • データ基盤におけるIaCの導入がもたらす効率性・安全性を説明しました •

    IaCを活用して運用をより効率化し、価値を創出するプロフィットセンター化を目 指しましょう