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

FinOpsを導入してマルチプロダクトのコスト最適化を実現する

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on. →

 FinOpsを導入してマルチプロダクトのコスト最適化を実現する

樋口 直人(mado)(株式会社ナレッジワーク)

※10/30開催「Tech Reliability Jam」での登壇資料です
https://3-shake.connpass.com/event/407290/

<セッション概要>
ナレッジワークでは、マルチプロダクト化とプロダクトへのAIの組み込みが進み、プロダクトごとのコストをより細かく見る必要が出てきました。そこでFinOpsチームを立ち上げ、FinOpsフレームワークに沿ってコストの可視化と最適化を進めてきました。マルチクラウドの請求データの集約、ラベル設計、各プロダクトが自律的に最適化を続けられる仕組みづくりを中心にお話しします。

More Decks by KNOWLEDGE WORK / 株式会社ナレッジワーク

Other Decks in Technology

Transcript

  1. 自己紹介 Naoto Higuchi (mado) 株式会社ナレッジワーク SRE Group Manager パチプロ →

    SIer → パチスロ開発 → ビズリーチ → 現職 趣味 - ギャンブル - サウナ - 旅マラソン © Knowledge Work Inc. kwslide-external-260814-bd018e12 2
  2. 運命は自分の手で切り拓くものだ。 誰もが一度は聞くこの言葉に、希望を持つことはできるだろうか? 人は誰しも、持って生まれた運命があると思う。 環境、才能、機会 … そう、自分の力だけで運命に抗うことは簡単じゃない。 Mission 運命は変えられない? …きっと、 自分だけでは。

    思い出してみよう。 できなかったとき、諦めたくなかったとき、手を伸ばそうとしたとき、 その側に、何かがなかっただろうか? その後ろに、誰かがいなかっただろうか? 努力を後押ししてくれる存在によって得られた「できる喜び」が、 昨日まで見えていた世界を変え、昨日までの運命を変えていけるんだ。 「できない」から「できる」へ 「不安」から「ワクワク」へ「ノルマ」から「目標」へ 「あと 1回」から「もう 1 回」へ 「労働者」から「挑戦者」へ。 「変えられない」と思った今を、「運命」と呼ぶのは早すぎるから。 さあ、毎日を変えていこう。 LIFE WITH ENABLEMENT できる喜びが巡る日々を届ける © Knowledge Work Inc. 3
  3. Agenda 目次 • 前提 • 取り組むテーマ • チーム結成と輪読会 • FinOps

    フレームワーク • Inform① 請求データを集めて、 1 つの数字にする • Inform② 費用をプロダクト・環境・ AI に帰属させる • Optimize / Operate 継続的に最適化する • まとめ © Knowledge Work Inc. kwslide-external-260814-3a5100f2 6
  4. Agenda 目次 • 前提 • 取り組むテーマ • チーム結成と輪読会 • FinOps

    フレームワーク • Inform① 請求データを集めて、 1 つの数字にする • Inform② 費用をプロダクト・環境・ AI に帰属させる • Optimize / Operate 継続的に最適化する • まとめ © Knowledge Work Inc. kwslide-external-260814-3a5100f2 7
  5. Platform と各プロダクト開発チーム プロダクト A 開発チーム プロダクト B 開発チーム プロダクト C

    開発チーム Platform(共通基盤) Platform Engineering Middleware SRE Platform が共通基盤を提供し、各プロダクトが自律的に運用する © Knowledge Work Inc. 8
  6. 背景: マルチプロダクトに、マルチクラウドも 多くのサービスを使う プロダクトごとに採算を見る Google Cloud・AWS・Azure と Datadog などの SaaS

    プロダクトが複数あるので それぞれの採算を見る 多くのサービスを使いながら、プロダクトごとの採算を見る必要があった © Knowledge Work Inc. 9
  7. Agenda 目次 • 前提 • 取り組むテーマ • チーム結成と輪読会 • FinOps

    フレームワーク • Inform① 請求データを集めて、 1 つの数字にする • Inform② 費用をプロダクト・環境・ AI に帰属させる • Optimize / Operate 継続的に最適化する • まとめ © Knowledge Work Inc. kwslide-external-260814-3a5100f2 10
  8. AI 活用の広がりで見えてきた課題 AI 費用は 利用量に応じて 大きく変動する 従来の按分では プロダクト別の実態を 反映しきれない AI

    を含めた原価を より精度高く見て 判断したい AI の活用が広がり、従来の按分ではプロダクト別の原価を追いきれなくなった © Knowledge Work Inc. 12
  9. 取り組むテーマ : 可視化と最適化 ① プロダクト別のコストを、実態に沿って見る 可視化 ② AI 費用を切り分けて見る ③

    本番費用(原価)を切り出す 最適化 細かく見えるようになると、最適化の打ち手が見つかる 根拠を説明できる数字で、意思決定したい © Knowledge Work Inc. kwslide-external-260814-fc28d311 13
  10. ① プロダクト別のコストを、実態に沿って見る これまで AI の組み込み後 有償ユーザー数などを基準に 按分していた 同じユーザー数でも AI の利用量によって

    費用が大きく変わるようになった ユーザー数などの基準で回っていた按分を、 AI の利用量を踏まえた方法に変える必要が出てきた © Knowledge Work Inc. 14
  11. ② AI 費用を切り分けて見る 変動が大きい 原価の構成が変わる 利用量に比例して 大きく変動する AI を使うプロダクトは 使わないプロダクトと

    原価の構成が大きく異なる 変動しやすい AI 費用は、分けて見ることで適切にコントロールできる © Knowledge Work Inc. 15
  12. Agenda 目次 • 前提 • 取り組むテーマ • チーム結成と輪読会 • FinOps

    フレームワーク • Inform① 請求データを集めて、 1 つの数字にする • Inform② 費用をプロダクト・環境・ AI に帰属させる • Optimize / Operate 継続的に最適化する • まとめ © Knowledge Work Inc. kwslide-external-260814-3a5100f2 17
  13. FinOps チームを結成 エンジニア 経理 Platform Engineer SRE Data Engineer 経理

    ゴールと優先順位を 決める ラベル設計と 最適化の推進 請求データの 取り込みと集計 計上月と按分のルール 月次決算 コストの可視化と最適化を目指して、チームを組んだ © Knowledge Work Inc. kwslide-external-260814-fc28d311 18
  14. 何から始めればよいかわからない 困った 輪読会 知った FinOps チームは組んだが 何から始めればよいか わからない 『クラウドFinOps』を チームで輪読した

    FinOps Foundation の FinOps フレームワーク 本を輪読して FinOps フレームワークを知り、チームに共通言語ができた © Knowledge Work Inc. 19
  15. Agenda 目次 • 前提 • 取り組むテーマ • チーム結成と輪読会 • FinOps

    フレームワーク • Inform① 請求データを集めて、 1 つの数字にする • Inform② 費用をプロダクト・環境・ AI に帰属させる • Optimize / Operate 継続的に最適化する • まとめ © Knowledge Work Inc. kwslide-external-260814-3a5100f2 20
  16. FinOps フレームワーク 出典: FinOps Foundation「FinOps Framework 日本語版ポスター」(CC BY 4.0) FinOps

    Foundation が、実践者の経験からまとめた運用モデル © Knowledge Work Inc. kwslide-external-260814-fc28d311 22
  17. FinOps フレームワークの全体像 問い 要素 ひとことで 何を大事にする? 原則 誰が関わる? ペルソナ 何をする?

    ドメインと ケイパビリティ どう回す? フェーズ Inform → Optimize → Operate どこまでできている? 成熟度 ケイパビリティごとに Crawl → Walk → Run 何が対象? テクノロジー カテゴリ 6 つの考え方 FinOps に関わる役割 4 つのドメイン(成果)と、達成する方法 クラウドだけでなく、 SaaS や AI も 出典: FinOps Foundation「FinOps Framework」を翻訳・要約(CC BY 4.0) 何を大事にして、誰が、何を、どう回すかを示す © Knowledge Work Inc. kwslide-external-260814-fc28d311 23
  18. 6 つの原則 チームで協働 財務・エンジニア・プロダクト・経営が、一緒に技術のコストを管理する 価値で判断 総額ではなく、1 ユーザーあたりなど価値に対するコストで判断する 全員が当事者 各チームが、自分たちの技術の使い方とコストに責任を持つ データは早く正確に

    コストのデータを、すぐに・正確に・誰でも見られるようにする 専門チームが推進 組織横断の専門チームがベストプラクティスを広め、割引や購入をまとめる 変動費を活かす 使った分だけ払う仕組みを活かし、必要なときに必要な分だけ使う 出典: FinOps Foundation「FinOps Principles」を翻訳・要約(CC BY 4.0) © Knowledge Work Inc. kwslide-external-260814-bd018e12 24
  19. フェーズ : Inform → Optimize → Operate Inform いまを知る Optimize

    改善を見つける Operate 改善を実行する コストと使用量を可視化し 誰が何に使ったかを知る 効率と価値を高める 方法を見つける 見つけた改善を 実行し、進め方を磨く 出典: FinOps Foundation「FinOps Phases」を翻訳・要約(CC BY 4.0) 3 つのフェーズを、素早く何度も回す © Knowledge Work Inc. kwslide-external-260814-fc28d311 25
  20. Agenda 目次 • 前提 • 取り組むテーマ • チーム結成と輪読会 • FinOps

    フレームワーク • Inform① 請求データを集めて、 1 つの数字にする • Inform② 費用をプロダクト・環境・ AI に帰属させる • Optimize / Operate 継続的に最適化する • まとめ © Knowledge Work Inc. kwslide-external-260814-3a5100f2 26
  21. 請求データを社内データ基盤へ 社内データ基盤(既存) クラウド Google Cloud・AWS・Azure 取り込み SaaS Datadog など billing

    export API・CSV BigQuery に集める dbt で集計して 統合マートに BI ツールの Lightdash で 可視化 経理 仕訳のスプレッドシート 既存のデータ基盤に、請求データを足すところから始めた © Knowledge Work Inc. kwslide-external-260814-fc28d311 27
  22. できるだけ生の請求データを使う 基本: 各社の請求データ 補完: 経理のスプレッドシート クラウドは請求データ SaaS は API から取る

    取り込めない SaaS は 経理の仕訳から取る 請求データが取れないものだけ、経理のスプレッドシートで補う © Knowledge Work Inc. kwslide-external-260814-fc28d311 28
  23. 統合マート : すべての費用を 1 つの表に 統合マート( 1 つの表) Google Cloud

    の請求データ 月 ソース プロダクト 環境 AI か 金額 … … … … … … … … … … … … … … … … … … AWS の請求データ Azure の請求データ SaaS の請求データ 列を そろえる 経理のスプレッドシート 列をそろえると、プロダクト別・環境別・ AI 別に同じように集計できる © Knowledge Work Inc. kwslide-external-260814-fc28d311 29
  24. 振り返り : FOCUS を後から知った FOCUS クラウドや SaaS の請求データの形をそろえる FinOps Foundation

    の標準仕様 主要なクラウドは、 FOCUS の形で請求データを出せる 今からやるなら 自前でスキーマを作る前に、 FOCUS にそろえる 独自のスキーマを、先に作っていた © Knowledge Work Inc. kwslide-external-260814-fc28d311 30
  25. Agenda 目次 • 前提 • 取り組むテーマ • チーム結成と輪読会 • FinOps

    フレームワーク • Inform① 請求データを集めて、 1 つの数字にする • Inform② 費用をプロダクト・環境・ AI に帰属させる • Optimize / Operate 継続的に最適化する • まとめ © Knowledge Work Inc. kwslide-external-260814-3a5100f2 31
  26. AI 費用のガイドラインをつくる なぜ AI 機能とは 変動が大きく、原価への影響も大きいので、分けて見たい モデルの学習・推論の結果を、機能の出力や判断に使う処理 例 入れる: LLM・音声認識と、そのために動くリソース

    入れない: 全文検索・ルールベースの処理 判断 ガイドラインに沿って、各プロダクトが判断する ガイドラインに沿って、 AI 機能かどうかは各プロダクトが判断する © Knowledge Work Inc. kwslide-external-260814-fc28d311 32
  27. 自社で設計したクラウド共通ラベル(一例) service-catalog-system-name env どのシステムか(サービスカタログの単位) どの環境か( prd・stg・dev) cost-ai AI 費用として計上するか( true・false)

    cost-shared 按分が必要な共通費か( true・false) システム単位で付け、プロダクトへの対応は対応表で決める © Knowledge Work Inc. 34
  28. ラベルを付けた先 付けた先 どう付けたか Google Cloud Terraform とアプリのコードで、リソースに付けた AWS Terraform と

    CDK で、リソースにタグとして付けた Datadog ログ・APM・エラートラッキング・外形監視に 同じキーのタグを付けた 同じキーを、クラウドにも SaaS にも使い回せた © Knowledge Work Inc. kwslide-external-260814-fc28d311 35
  29. Vertex AI の、ラベルだけでは分けられないコスト Provisioned Throughput(予約購入) Dynamic Shared Quota(従量課金) 処理枠を前払いで買う ラベルを付けられない

    使った分だけ払う どの機能が使ったかが 請求データに出ない どちらも高額なので、別のやり方で帰属させる © Knowledge Work Inc. kwslide-external-260814-fc28d311 36
  30. 費用を帰属させるやり方 対象 ラベルを付けたリソース どう帰属させるか ラベルで、そのまま帰属させる Vertex AI の Provisioned Throughput(予約購入)

    どのプロダクトの枠かを、スプレッドシートで管理する Vertex AI の Dynamic Shared Quota(従量課金) アプリが出すトークン量のログで、機能ごとに按分する 共通のリソース (どのプロダクトにも属さない) ラベルが付いた費用の比率で按分する ラベル・スプレッドシート・ログ・比率の 4 つで帰属させる © Knowledge Work Inc. kwslide-external-260814-fc28d311 37
  31. Agenda 目次 • 前提 • 取り組むテーマ • チーム結成と輪読会 • FinOps

    フレームワーク • Inform① 請求データを集めて、 1 つの数字にする • Inform② 費用をプロダクト・環境・ AI に帰属させる • Optimize / Operate 継続的に最適化する • まとめ © Knowledge Work Inc. kwslide-external-260814-3a5100f2 38
  32. 目指す状態 : 各プロダクトが自律的に最適化する プロダクト A 開発チーム プロダクト B 開発チーム プロダクト

    C 開発チーム 共通の仕組み (ハンドブック・ダッシュボード・改善会) FinOps チーム 各プロダクトが、自分たちでコストを最適化できるようにする © Knowledge Work Inc. kwslide-external-260814-fc28d311 40
  33. 共通の仕組み : ハンドブック・ダッシュボード・改善会 運用ハンドブック コストダッシュボード 定期的なコスト改善会 目標内なら、工数を割かない 超えそうなら、動く 余裕は、投資に回す プロダクトごとに

    自分たちのコストを Lightdash で見る 各プロダクトと 定期的に開いて コストを見直す 判断の基準と見る場所をそろえて、定期的に見直す © Knowledge Work Inc. kwslide-external-260814-fc28d311 41
  34. エピソード : あるプロダクトで、目標の原価率をやりきった 可視化する どこにコストが かかっているかを見る 成果 目標を決める 役割を分ける 見直し続ける

    原価率に 目標と期日を置く 領域ごとに 担当チームを決める 施策の効果を 定期的に確かめる 期日より前に、目標の原価率を達成した 可視化して役割を分け、各チームが担当の領域を最適化した © Knowledge Work Inc. kwslide-external-260814-fc28d311 44
  35. Agenda 目次 • 前提 • 取り組むテーマ • チーム結成と輪読会 • FinOps

    フレームワーク • Inform① 請求データを集めて、 1 つの数字にする • Inform② 費用をプロダクト・環境・ AI に帰属させる • Optimize / Operate 継続的に最適化する • まとめ © Knowledge Work Inc. kwslide-external-260814-3a5100f2 45
  36. まとめ • 課題: マルチプロダクト化と AI 活用の広がりに合わせて、 コストを細かく見る必要があった • FinOps フレームワークに沿って進めた

    ◦ Inform: 請求データを集め、プロダクト・環境・ AI に帰属させた ◦ Optimize / Operate: 共通の仕組みで、各プロダクトが最適化を続ける • 結果 ◦ 各プロダクトが、自分たちで最適化を進められるようになった ◦ 原価率に目標を置いたプロダクトが、期日前に達成した © Knowledge Work Inc. kwslide-external-260814-bd018e12 46