Slide 1

Slide 1 text

1 データ駆動のFinOpsを 実現するための 社内横断データ基盤 2024.11.07@CloudNative Days Winter 2024 プレイベント

Slide 2

Slide 2 text

おかね 2

Slide 3

Slide 3 text

おかね、⼤事ですよね 3

Slide 4

Slide 4 text

Cloud Native × おかね 4

Slide 5

Slide 5 text

クラウドコスト 5

Slide 6

Slide 6 text

クラウドコスト 6 ● なぜか徐々に右肩上がり ● 先⽉分の請求を⾒てびびる ● コスト予実管理⽤の秘伝のスプレッドシートが誕⽣する ● なぜか突如コストが突然爆発する クラウドコストあるある

Slide 7

Slide 7 text

コスト事故 7

Slide 8

Slide 8 text

クラウドコスト 8 請求管理者「先⽉の請求額、普段のn倍だけど!?」 インフラチーム「それはやばい、調べます」 →ソフトウェアアップデートの影響で意図しない機能が使 われていました...... クラウドコスト事故例

Slide 9

Slide 9 text

ソフトウェアをアップデートしたら意図しない機能が使われてしまった図 9

Slide 10

Slide 10 text

FinOps 10

Slide 11

Slide 11 text

FinOpsについて 11 > “FinOps is an operational framework and cultural practice which maximizes the business value of cloud, enables timely data-driven decision making, and creates financial accountability through collaboration between engineering, finance, and business teams.” https://www.finops.org/introduction/what-is-finops/ ● クラウドのビジネス価値を最⼤化するための運⽤枠組みと⽂化的実践 ● データ駆動の意思決定を可能にする ● エンジニアリング、財務、ビジネスチームの協働によって財務的な説 明責任を創出する FinOps

Slide 12

Slide 12 text

FinOpsについて 12 FinOps FoundationはFinOpsのフェーズを次の3つに分類している ● Inform ○ データの収集とレポーティング ● Optimize ○ コスト最適化 ● Operate ○ 継続的運⽤ FinOps Phases   https://www.finops.org/framework/phases/

Slide 13

Slide 13 text

FinOpsについて 13 informは、レポーティングの段階である ● データソースを特定する ○ コストデータはどこから来る? ● コストデータから配分処理を正確に⾏う ○ 複数のチームが⼀つのクラウドアカウントを共有していたらどう やって按分する? ● それらをリアルタイムに可視化する FinOps Phases -inform-

Slide 14

Slide 14 text

FinOpsについて 14 optimizeは、最適化の段階である ● 得られたデータからコスト最適化の機会を⾒つける ○ 使ってないリソースはないか? ○ Reserved Instanceを使うともっと安くならないか? FinOps Phases -optimize-

Slide 15

Slide 15 text

FinOpsについて 15 operateは、継続的運⽤の段階である ● 組織的な変更を実装する ○ ガバナンスポリシーの確⽴ ○ コンプライアンスモニタリング ○ トレーニングプログラムの開発 ● 説明責任の⽂化を構築する ● 反復的に発展させる ○ inform、optimizeフェーズに戻って成熟度を⾼める FinOps Phases -operate-

Slide 16

Slide 16 text

FinOpsについて 16 ● Inform ○ データの収集とレポーティング ● Optimize ○ コスト最適化 ● Operate ○ 継続的運⽤ FinOps Phases(再掲)   https://www.finops.org/framework/phases/

Slide 17

Slide 17 text

informを強化するための データ基盤がほしい 17

Slide 18

Slide 18 text

18 データ駆動のFinOpsを 実現するための 社内横断データ基盤 2024.11.07@CloudNative Days Winter 2024 プレイベント

Slide 19

Slide 19 text

19 ⾃⼰紹介 GMOペパボ 技術部 データ基盤チーム 2022年 新卒⼊社 染⽮ 健⼈ Someya Kento ● インフラエンジニア ● データ基盤の信頼性向上や機能開発をやっています ● 好きなアザラシはワモンアザラシです ● Twitter : @kesompochy ● GitHub: @kesompochy

Slide 20

Slide 20 text

20 アジェンダ 1. 導⼊ - クラウドコストあるあるとFinOpsについて- 2. ペパボのFinOps課題 3. ペパボのデータ基盤”Bigfoot”について 4. ペパボのFinOps inform基盤”Billingfoot”の誕⽣ 4.1. データ抽出 4.1.1. Google Cloud 4.1.2. AWS 4.1.3. Datadog 4.2. データ変換 5. 今後の展望 -効果的なoptimize, operateを⽬指して-

Slide 21

Slide 21 text

ペパボのFinOps課題 21

Slide 22

Slide 22 text

GMOペパボ 22

Slide 23

Slide 23 text

企業理念 もっとおもしろくできる 23

Slide 24

Slide 24 text

GMOペパボについて GMOペパボのサービス 金融支援 事業 ホスティン グ 事業 ハンドメイド 事業 EC支援 事業 表現したい人を支援するためのサービスを複数運営している

Slide 25

Slide 25 text

GMOペパボについて 25 ● IaaS, PaaS ○ AWS ○ Google Cloud ○ Heroku ● SaaS ○ Datadog ○ Mackerel ● etc… 主に使⽤しているクラウドサービス ※太字のもののコストが支配的でかつ変動しやすい

Slide 26

Slide 26 text

GMOペパボについて 26 ● 意図しないコストの急増に、請求されてから気づく ● コストの適正性を説明できない ● 複数の⾃社サービスが複数のクラウドサービスを利⽤しており、 それぞれのコストの扱いが標準化されていない ○ マネージャーが秘伝スプレッドシートに⼿作業で⼊⼒したり ペパボのFinOps課題

Slide 27

Slide 27 text

全社横断データ基盤の出番だ 27

Slide 28

Slide 28 text

Bigfootについて 28 ● ペパボのデータ駆動化を実現するために⽣まれた ● 複数のデータが社内から集まっている ○ アプリケーションDBから抽出したデータ ○ サービスユーザーの⾏動ログデータ ○ SaaSから抽出したデータ ● Bigfootを活⽤することで FinOps課題の解決を⽬指す ペパボのデータ基盤 “Bigfoot” 「Bigfootくん」と社内で 親しまれているキャラクター

Slide 29

Slide 29 text

29 Bigfoot 概略図 logs metrics GitHub issues databases tbls BigQuery bigfoot/platform Cloud Storage Looker Studio bigfoot/cloud-composer Cloud Composer dags/ tbls-build base tbls.yml files patch files ( *.yml, *.json ) patched tbls.yml files tbls-meta tbls data catalog bigfoot/data-catalog Send analysis results Verne Vertex AI Pub/Sub Dataflow

Slide 30

Slide 30 text

BigfootのFinOps機能 30

Slide 31

Slide 31 text

BigfootのFinOps機能 “Billingfoot” 31

Slide 32

Slide 32 text

Billingfoot 32 ● Inform ○ 任意のクラウドサービスのコストデータを抽出する ○ 抽出したコストデータを変換し、 標準形式のコスト情報として提供する ○ 他のデータと合わせて、ビジネス価値を⽰すコスト情報を提供する ■ Unit Economics ● 収益最⼤化のために限界費⽤‧限界収益を扱う ● 「単位収容ユーザーごとのクラウドコスト」など Billingfootの機能

Slide 33

Slide 33 text

Billingfoot 今回は3つのサービスを対象にした ● Google Cloud ● AWS ● Datadog データ抽出 33

Slide 34

Slide 34 text

Billingfoot ● コストデータのBigQueryへのエクスポート機能がある ○ https://cloud.google.com/billing/docs/how-to/export-data-bigquery?hl=ja ● それぞれのprojectでエクスポート機能を有効化し、 Bigfootのviewからクエリする データ抽出 -Google Cloud- 34

Slide 35

Slide 35 text

35

Slide 36

Slide 36 text

Billingfoot ● 詰まりポイント ○ コストデータエクスポートの有効化には、「請求先アカウント」の権限が必要 ■ OrganizaitonやProjectとは異なる概念なので注意 ○ 有効化してからのデータしかエクスポートされない ■ 過去に遡ってコストデータを抽出することはできない データ抽出 -Google Cloud- 36

Slide 37

Slide 37 text

Billingfoot ● S3にコストデータを出⼒する機能がある ○ https://docs.aws.amazon.com/ja_jp/cur/latest/userguide/what-is-data-exports.html ○ 出⼒形式を選べる ● S3のデータをGCSにTransferし、 BigQueryの外部テーブルとしてクエリする データ抽出 -AWS- 37

Slide 38

Slide 38 text

Billingfoot ● 選ばなかった⼿法 ○ BigQuery Omni ■ S3のオブジェクトに対してBigQueryからクエリできるという機能 ■ 今の規模だとコストが⾒合わないため⾒送った データ抽出 -AWS- 38

Slide 39

Slide 39 text

Billingfoot ● 詰まりポイント ○ Data Exportによって1⽇に複数回のコストデータが 配置されるが、そのオブジェクトには 「その⽉のすべてのコストデータ」が含まれる ■ つまり、当⽉のファイルをすべて保持して転送する必 要はない ● すべてのファイルを外部テーブルとして参照すると ⼤量の重複が発⽣する(⼀敗) ■ 「M⽉のファイル」で毎回上書きするのがよい データ抽出 -AWS- 39

Slide 40

Slide 40 text

Billingfoot ● Usage MeteringのWeb APIが提供されている ○ https://docs.datadoghq.com/api/latest/usage-metering/ ● Usage Metering APIからAirbyteで抽出する ○ Airbyteは異なるデータソース間でデータを同期できるツール ○ セルフホストのAirbyteを運⽤している ○ Cloud Funcitonなどで定期的にリクエストを投げるでもよいが、 せっかくAirbyteが運⽤されているので使いたかった データ抽出 -Datadog- 40

Slide 41

Slide 41 text

41 Bigfoot 概略図(再掲) logs metrics GitHub issues databases tbls BigQuery bigfoot/platform Cloud Storage Looker Studio bigfoot/cloud-composer Cloud Composer dags/ tbls-build base tbls.yml files patch files ( *.yml, *.json ) patched tbls.yml files tbls-meta tbls data catalog bigfoot/data-catalog Send analysis results Verne Vertex AI Pub/Sub Dataflow

Slide 42

Slide 42 text

Billingfoot ● Airbyte Connector ○ Airbyteではさまざまな”Connector”を使って抽出元や抽出先を設定する ○ Datadog Connectorもあった ■ https://docs.airbyte.com/integrations/sources/datadog ○ しかしこのコネクタはUsage Metering APIからの抽出はサポートしていない? データ抽出 -Datadog- 42

Slide 43

Slide 43 text

Billingfoot ● Custom Connectorを作った データ抽出 -Datadog- 43

Slide 44

Slide 44 text

Billingfoot ● Custom Connectorを作った ○ コンテナイメージを指定すればSourceとして追加できる データ抽出 -Datadog- 44

Slide 45

Slide 45 text

Billingfoot ● Custom Connectorを作った ○ いったん、Billingfootに必要な特定APIのみを対応した ■ 特定⽉の推定コスト ■ 時間ごと‧product familyごとの使⽤量 ■ Usage Metering APIは他にもAPIエンドポイントがある データ抽出 -Datadog- 45

Slide 46

Slide 46 text

Billingfoot ● コストデータを他のデータと⼀緒にBigQueryに⼊れる ● Google Cloud ○ BigQueryへのエクスポート機能 ● AWS ○ S3へのエクスポート機能 ● Datadog ○ Web APIを叩くAirbyte Custom Connectorを作った データ抽出 まとめ 46

Slide 47

Slide 47 text

Billingfoot ● Cloud Composer ○ Apache Airflowベースのマネージドサービス ○ DAG(有向⾮巡回グラフ)の実⾏ができる ● dbt ○ Airflowの中でデータ変換処理ツールとして dbt(data build tool)を採⽤している ○ yamlとSQLでデータ変換処理を定義できる ○ Airflowの中でdbtを実⾏するためにCosmosというツールを採⽤している データ変換 47

Slide 48

Slide 48 text

48 Bigfoot 概略図(再再掲) logs metrics GitHub issues databases tbls BigQuery bigfoot/platform Cloud Storage Looker Studio bigfoot/cloud-composer Cloud Composer dags/ tbls-build base tbls.yml files patch files ( *.yml, *.json ) patched tbls.yml files tbls-meta tbls data catalog bigfoot/data-catalog Send analysis results Verne Vertex AI Pub/Sub Dataflow

Slide 49

Slide 49 text

Billingfoot ● Bigfootは全社横断で使われるため、 そのコストは各事業に按分されなければならない ● AWS, Google Cloudではリソースに 任意のtagをつけることができる ● 按分サービスごとにtagをつけて集計すればOK コスト配分 49

Slide 50

Slide 50 text

Billingfoot ● BIツールからセルフサービスでダッシュボード化して もらう ○ Redash ○ Looker Studio ○ Verne ■ PythonのフレームワークであるStreamlitを利⽤したアプリケーションの社内呼称 ■ Dashboard as CodeとしてダッシュボードにしたいSQLコードをバージョン管理している 可視化 50

Slide 51

Slide 51 text

Billingfoot 51 ● Inform ○ クラウドサービスの任意アカウントのコストデータを抽出 ○ BigQueryからコストデータを読み取る ○ dbtによって、他のデータとともに、有⽤なビジネス情報に変換 ○ 得られたデータをダッシュボードで可視化 Billingfoot 機能まとめ

Slide 52

Slide 52 text

Billingfoot 52 ● Optimize ○ コストデータの異常検知 ■ 各クラウドサービスにあったりするが社として標準的に実施できると嬉しい ○ 各サービスの特性を考慮したコスト最適化実施 ● Operate ○ インフラコストのバジェット管理 ○ マネージャーを秘伝スプレッドシートから引き剥がす 今後Billingfootで実現されたいこと

Slide 53

Slide 53 text

● クラウドコスト最適化のためにFinOpsという枠組みがある ● FinOpsはinform, optimize, operateの3段階で考えられる ● ペパボではinformを強化するために 全社データ基盤Bigfootを活⽤している まとめ 53

Slide 54

Slide 54 text

54 おわり We are 超 hiringです https://recruit.pepabo.com/