「FinOps(フィンオプス)」。数年前に概念が登場したもので、クラウドのビジネス価値の最大化、データ主導によるタイムリーな意思決定、部門横断の連携でクラウド支出に財務上の説明責任をもたらすためのフレームワークを実践することを指す。
しかし、国内では公開事例は多くなく、組織的に実践している企業が少ないのが実情だ。しかし、注目を集めているのは事実であり、ともすれば「コスト削減」と思われがちだが、その主眼はあくまでも「ビジネス価値の最大化」に置かれている。
今回、国内でも数少ないFinOpsを実践し、専任チームを設けているメルカリの事例について、同社 Engineering Managerの風間勇志氏と、同 Platform Infra Teamの中田健誠氏、そして現在、弊誌で連載「はじめてのFinOps」を執筆している、ネットアップの小原誠氏を聞き手とした対談を前後編で紹介する。
前編となる今回は、メルカリにおけるFinOps導入までの道のりに加え、FinOpsの体制、社内のステークホルダーとのコミュニケーションについての話だ。
チャレンジングだが難しい側面もあるFinOps
小原氏(以下、敬称略):まずは、自己紹介からお願いします。
風間氏(同):メルカリでEngineering Managerをしています。約4年前に入社し、FinOpsの専任チームのマネージャーです。かれこれ15~20年程、ソフトウェア開発とEngineering Managerをしていますね。また、「Japan FinOps Meetup」のオーガナイザーもしています。
中田氏(同):新卒で2年前にメルカリに入社し、プラットフォームチームで共通基盤の開発などを行っています。メルカリでは1つのプラットフォームにサービスの大半が載っており、横串で全体の最適化を行えることから、FinOpsの活動に最もコントリビュートしているチームのうちの1つです。最適化のためのツールを開発し、Kubernetesのコミッターでもあります。
小原:私はネットアップに入社して4年目になります。ネットアップが2020年に買収したSpotという企業の製品をお客さまに紹介する中で、FinOpsに出会いました。原稿の執筆なども行い、風間さんとはJapan FinOps Meetupで初めて会いしました。
はじめに、メルカリさんのクラウド活用の現状から伺えればと思います。風間さんの部署で取り組みをされているFinOpsの活動は、グループ全体が対象でしょうか?
風間:メルカリはグループ会社で構成されていて、株式会社メルカリとその連結子会社で構成されており、全体はメルカリグループと呼んでいます。フリマアプリを提供するマーケットプレイス事業、メルペイやメルコインなどを提供するFintech事業と大きく2つあります。創業当初から複数のパブリッククラウドサービスを活用しています。
メインで利用しているクラウドはGoogle Cloudで、FinOpsの活動は基本的にGoogle Cloudに関するものです。グループ会社の事業に応じて、Microsoft AzureやAWS(Amazon Web Service)も利用しています。グループ全体にFinOpsを波及させることはチャレンジングでもあるし、逆に難しい側面もあります。
小原:FinOpsの取り組みをされている一方で、CCoE(Cloud Center of Excellence:クラウド活用推進組織)のようにクラウドの利用に際して、ルールやガイドラインを作成して浸透させるような活動はされていたのですか?
風間:今まで当社にはそのような組織がなかったんですよね。そのため、現在に至りFinOps専任のチームができたわけなのですが、以前にチームがなかったが故にコストの改善がなかなか進まないような状況でした。
クラウドは便利で良いのですが、コストがビジネスの成長を上回ってしまうような状況になり、それをきっかけにFinOpsに取り組むことになりました。
小原:それまではメルカリグループの各部門で、クラウドを好きに使っていい!みたいな風潮だったものが、コストの統制を効かせなければ成長を阻害するような危機感もあり、チームを立ち上げた感じですね。
風間:そうですね。毎月請求書が送付されてくるのですが、想定外の金額が記載されいて慌てて調査することがありました。そのような状況がFinOpsを始める前に、実際には起きていました。
FinOps活動の手始めに行ったことは?
小原:FinOpsのチームを組成される前は、どのようなことをされていたのですか?
風間:先ほども話したようにメルカリは、Google Cloudを含めて複数のパブリックサービスを利用しています。
私自身、サービスの契約管理や費用処理などのチームのマネジメントもしていましたが、そのチームはエンジニアリングの組織ではなく、結果的にエンジニアリングに問い合わせる必要がありました。しかし、問い合わせても、すぐに回答があるわけではないため歯がゆい想いを感じていました。
小原:風間さんは基盤側のチームに所属しているため、割と全体を見渡せる立場だったのですね。現在、FinOpsのチームの規模感はどれくらいでしょうか?また、チームではFinOps以外の活動もされていますか?
風間:FinOpsチームに関わっている人は数人で、100%フォーカスしています。とは言え、メルカリグループ全体を対象にしているので範囲が非常に広く、なんとか対応している感じです。マイクロサービスのアーキテクチャを採用し、200以上のサービスが動いており、PB(ペタバイト)規模ですね。
中田:ピークタイムと、そうではない時間帯で数の差はありますが、KubernetesのDeployment数は1000は超えています。もちろん、1つのデプロイメントに対して1つのチームではなく、1つのチームが複数のデプロイメントを持っています。例えば、決済サービスのチームがいるとしたら、機能別でチームがあるイメージです。
小原:FinOpsの活動は何からスタートしたのでしょうか?そして、FinOpsという方法論にどのようにして辿り着いたのでしょうか?
風間:実際にコストを調べようにも、グループ内のどこの会社がどのプロジェクトで、どのくらいサービスを使っているのかということがブラックボックスの状態になっていました。そのため、まずはコスト構造の見える化から着手しました。
FinOpsという言葉自体は元々知っており、O'Reilly Mediaの『Cloud FinOps』も読んでいました。他社の事例などをネットで調べる中で、FinOps Foundationにどうしても行き着くんですよね。
そこで、さまざまなノウハウなどが公開されているため、活用しながら活動を進めています。プロジェクト自体を立ち上げたのは、2022年夏ごろですね。なので、そろそろ2年が経過します。
どのように社内ステークホルダーを巻き込んだのか
小原:FinOpsは、エンジニアリングだけでなくファイナンス(財務)の巻き込みも重要ですが、とはいえ組織の壁を超えた協調は難しいものですよね。メルカリさんではどのようにしましたか?
風間:私から見ても、クラウドの利用はブラックボックスになっており、財務からするとそもそも何をやっているのか分からないという側面がありました。なぜ、エンジニアがクラウドにお金を使っているのか判然としないため、その点をしっかり説明することから始めました。
年度ごとに予算を策定していますが、その中にはクラウドの予算も組み込まれており、財務と議論を行いますが、クラウドのコストの細かい部分まで把握することに苦労していました。ただ、私自身が費用処理のチームをマネジメントしていたため、前年度のコスト感を伝えて議論を進めました。
最初は、なぜこんなにもお金がかかっているのか財務チームは理解できませんでした。しかし、FinOpsの活動を進めることで、会社・プロジェクト単位でのコストに関する情報が理解できるため、財務チームでも全体像が見えてきてコミュニケーションがスムーズになりました。
小原:経営層の方はどのように感じているのでしょうか?
風間:経営陣としても会社の価値としては、無駄なコストをどれだけ減らせたのかという観点もあるので、そういう面も着目して取り組んでいます。
ただ、見えないものを改善することが難しいということは、CTOを中心に理解してもらっていたので、CTOの後押しで活動を進められたのは大きいことですね。FinOpsの活動により、ビジネスは成長しているためコストが上がること自体は悪くないという点を説明することができています。
何か指標がなければ、コストが適切か否かを判断できないと思います。そのため、フリマアプリでは1回あたりの取引で、どの程度インフラのコストがかかっているのか、つまり「トランザクションあたりのコスト」という指標を導入しました。
指標が少なくとも下がっていたり、平行になっていたりすればビジネスの成長と比較して、コストの無駄遣いはしていないという説明がつくので、そのような指標を用いながら経営層と議論するようになっています。
元々、FinOpsのプロジェクトはエンジニアリングの組織からスタートしたので、インフラコストの情報は取れます。しかし、ビジネスの方は詳細な情報を把握できていなかったため当初は困っていました。ただ、財務チームとのやり取りの中でトランザクションの情報や売り上げの情報が把握できるようになり、組み合わせることで指標などの議論ができるようになりました。
四半期ごとにOKRやKPIを設定
小原:クラウドのコストの話になるとエンジニアリング世界だけに閉じてコストの話をしがちで、それが妥当なのか説明ができなかったりしますが、メリカリさんはビジネス側との関係の構築ができ、ビジネス視点で見たときの数字と紐づけてコストを管理することができていますよね。
一方、FinOpsでは「Inform(可視化)」「Optimize(最適化)」「Operate(実行)」の3つのフェーズを繰り返して活動します。その中で取り組まれている活動について教えてください。
風間:状況が把握できていないと、そもそも活動できないため最初にInformに取り組みました。従来は請求書の金額を見て、今月はこれぐらいかかるということを認識するレベルだったのですが、コストダッシュボードを作成して、どの会社がどれくらいサービスを使っているのかを見える化しました。
しかし、月次で情報が更新されていたことから、タイムラグありました。そのため、最近では日次のデータなどリアルタイムのデータを取得しながらダッシュボードを更新し、変動があった時にもリアルタイムで状況を把握できるようにしています。
サードパーティのBI(ビジネスインテリジェンス)ツールを利用していますが、データの吸い上げや見せ方などは作り込んでいます。
また、見える化してコストを最適化しようとしても目標がないとエンジニアリングも活動しにくいため、社内全体で四半期ごとにOKR(Objectives and Key Results:目標と主要な結果)で目標を設定し、その中でFinOpsに関するOKRを設定するようにCTOが動いてくれました。
現在は期初に予算を設定しているため、少なくとも予算は越えるべきでないことが前提にあるので、予算と実績との差の推移を見ています。エンジニアリングでは、コスト目標と予算の差は抽象的なものなので具体的なKPIを設定しています。
例えば、クラウドのコンピュートリソースでCPUやメモリがどのくらいの割合で効率的に使われているかの指標や、ストレージに対する保存期限のポリシー適用率などですね。これをやることによって、コスト最適化が自動的に可能になります。
小原:Inform、Optimize、Operateの実行状況はどうですか?
風間:四半期ごとにOKRを据えているため、四半期ごとに1サイクルを回してみることを継続的に行っています。そのため、意識的に各フェーズのスケジュールを組むということではなく、すべての活動を一体的に回しています。
小原:レポーティングについてはいかがでしょうか?定期的に行われていますか?
風間:レポーティングはエンジニアリング向け、財務向け、経営層向けの3つのレポーティングがあります。それぞれ関心事が異なるため何をレポーティングするかは、ステークホルダーごとに分けてます。
一例として、エンジニアリングに対しては、月1でエンジニアリングの全体会議があります。そこでは、現状のコスト状況を説明することに加え、エンジニアが自律的に改善した活動などを称賛するようなことも行うと、やる気になって良いサイクルが回ります。
小原:財務や経営層に向けてのレポーティングは、いかがでしょうか?
風間:財務はクラウドの予算を策定する際に密にコミュニケーションを取り、前述したトランザクションあたりのコストなどユニットエコノミクスを提案し、ビジネスの成長とクラウドのコストの関係について建設的な議論ができるようになってきています。
ただ、マーケットプレイス事業は日米で展開していますが、市場と提供しているアプリなど前提となる条件が異なるので、トランザクションあたりのコストの比較はしていません。経営層に対しては定期的に先ほどのOKRの進捗状況などの報告や、月次でグループ会社全体の状況をレポートするようにしています。
以上が前編となる。後編は社内におけるFinOpsの文化醸成に関する取り組みや、実際の成果・効果などについてお伝えする。