FinOpsとは ― クラウド費用の見える化と最適化
FinOpsは、
FinOpsとは、開発・財務・事業の部門が一緒にクラウド費用を管理する取り組み
月末のクラウドの請求が前月の倍になり、どのチームの何が増えたのか誰も説明できません。FinOpsは、こうした状態をなくすための取り組みです。開発・財務・事業の部門が同じ費用のデータを見て、どこにいくら使うかを一緒に決めます。
目的は、費用を減らすことそのものではありません。注文が伸びて請求が増えたのなら、減らさないほうが正しいこともあります。使った費用に見合う価値が出ているかを判断できる状態にするのが目的です。
FinOpsは、FinanceとDevOpsを合わせた語です。FinOps Foundationは、技術の事業価値を最大化する運用の枠組みであり、組織の文化でもあると定義しています。対象もクラウドだけでなく、SaaSやAI、データセンターの費用に広がっています。
TCOは導入前に案を比べるときの考え方で、FinOpsは使い始めた後の費用を毎月管理するやり方です。請求が増える理由、原因の探し方、減らす方法、小さな始め方の順に説明します。
クラウド費用が想定を超える理由は、従量課金と、作る人の多さと、請求の細かさ
オンプレミスでは、機器を買う前に見積もりを出し、財務が金額を確かめます。クラウドでは、開発者が画面から数分でサーバを作れます。財務が金額を知るのは、使った後に届く請求を見たときです。
1つ目の理由は、クラウドの従量課金です。使った分だけ払うので、止め忘れたサーバの分も、増えた通信の分も、そのまま翌月の請求に出ます。
2つ目は、資源を作る人が多いことです。購入の手続きが要らないので、費用を決める人が開発の現場に広がります。検証用に作ったサーバが、誰にも気づかれずに動き続けることもあります。
3つ目は、請求が細かいことです。サーバ・ディスク・通信ごとに行が分かれ、行を見ただけでは誰が使った費用か分かりません。料金の形は事業者ごとに違い、AWSの例はAWSの料金の記事で確かめられます。
FinOpsの3つの段階は、見える化・最適化・運用
FinOpsは、3つの段階を繰り返して進めます。FinOps Foundationの呼び方では、Inform、Optimize、Operateです。
| 段階 | やる | 請求が |
|---|---|---|
| 見える | 費用と | 検証環境の |
| 最適化 | 減らせる | 夜間に |
| 運用 | 担当者が | 夜間に |
1周で終わりではありません。クラウドの構成も使い方も毎月変わるので、翌月の請求で効果を確かめて、また見える化に戻ります。FinOps Foundationは、この3つをすばやく繰り返すことを勧めています。チームの中で、人ごとに違う段階の作業をしていても構いません。
FinOpsフレームワークの6つの原則と、関わる人
FinOps Foundationは、ここまでの進め方をFinOpsフレームワークとして公開しています。原則・関わる人・段階・成熟度に加えて、やるべき作業を領域ごとに整理したものです。原則は6つあり、順番はありません。
6つの原則と、現場で変わること
| 原則 | 現場で |
|---|---|
| チームが | 財務・開発・事業が |
| 事業の | 総額より |
| 全員が | 開発者が |
| データは | 月末を |
| 中央の | 進め方の |
| クラウドの | 需要に |
財務と開発だけでなく、調達と経営層も関わる
FinOps Foundationは、中心となる人を6種類に分けています。FinOpsは1人の担当者の仕事ではなく、それぞれの立場の人の働き方を変える取り組みです。
| 関わる | やる |
|---|---|
| FinOps担当 | データを |
| エンジニア | 使用量を |
| 財務 | 予算と |
| 事業の | 製品が |
| 調達 | 事業者と |
| 経営層 | 費用と |
見える化はタグで費用を配分し、誰の費用かを決めることから始める
請求を見えるようにするとは、1行ごとに持ち主を決めることです。チームや製品ごとにアカウントやプロジェクトを分けるだけでも、大まかな内訳は分かります。もっと細かく分けるときに使うのがタグです。
タグは、リソースに付けるキーと値の組です。事業者によってはラベルと呼びます。次の表は、架空の請求100万円に、チームを表すteamと環境を表すenvのタグを付けた例です。
| 請求の | team | env | 金額 |
|---|---|---|---|
| サーバ web-01 | shop | prod | 50万円 |
| サーバ dev-01 | shop | dev | 28万円 |
| ディスク vol-17 | なし | なし | 12万円 |
| ストレージと | shop | prod | 10万円 |
この例では、開発環境の28万円がshopチームの費用だと分かります。持ち主のいないディスクの12万円は、誰にも止められないまま請求に載り続けます。タグのない費用は、誰も減らせない費用です。
タグは、後から付けて回るより、リソースを作るときに必須にするほうが漏れません。IaCで環境を作っていれば、タグもコードに書いておけます。
共有費用は、分け方を先に決める
サポート料金や共通のネットワークのように、複数のチームで使う費用は1つのチームに結び付きません。使用量の比率で分けるのか、均等に分けるのかを先に決めておきます。最初は無理に分けず、中央の予算でまとめて持つと決める組織も多くあります。
ショーバックとチャージバックの違い
配分した費用の使い方は2つあります。費用を各チームに見せるだけのやり方がショーバックで、部門の予算に正式に計上するやり方がチャージバックです。
| 観点 | ショーバック | チャージバック |
|---|---|---|
| する | 費用を | 費用を |
| 会計への | しない | する |
| 使う | チームに | 会計の |
FinOps Foundationは、どちらが成熟しているとも考えないとしています。チャージバックがすべての組織に必要なわけでもありません。
月末を待たずに、異常な増え方に気づく
請求だけを見ていると、気づくのは月末です。そこで、ふだんの費用から大きく外れた増え方を検知して、担当者に通知します。タグがあれば、増えた費用の持ち主がすぐに分かり、誰に確かめればよいかで迷いません。
マルチクラウドでは、事業者ごとに請求データの形が違うことも問題になります。FOCUSは、この形をそろえるためにFinOps Foundationが進めている公開の仕様です。
クラウド費用を削減する定番の方法は、使用量を減らすことと単価を下げること
クラウドの費用は、使用量と単価の掛け算で決まります。減らす方法も、この2つのどちらかを変えるものに分かれます。
| 方法 | 変える | 気を |
|---|---|---|
| 未使用の | 使用量 | 消す前に |
| サイズの | 使用量 | 混む |
| スケジュール停止 | 使用量 | 止めても |
| 割引の | 単価 | 約束した |
| 余った | 単価 | 途中で |
使用量を減らす:整理・サイズの見直し・スケジュール停止
最初に手を付けやすいのは、どのサーバにもつながっていないディスクのような未使用のリソースです。次がサイズの見直しです。性能に余裕があるかはCPU使用率などのメトリクスで確かめ、SLOを守れる範囲で小さくします。
開発環境は、夜間と休日に止めるだけで大きく減ります。平日に12時間だけ動かすと、週168時間のうち60時間で済むからです。本番のように負荷が変わる環境では、需要に合わせて台数を自動で増減するオートスケールが同じ働きをします。
単価を下げる:割引の約束と、余った資源の利用
割引の約束は、1年や3年の利用を約束する代わりに単価を下げてもらう買い方です。コミットメント割引とも呼びます。約束の対象は、特定の資源の場合と、利用額の場合があります。
この割引はクーポンに近いもので、資源を買うわけではありません。使う資源が約束と合わなくなっても、約束した分は払い続けます。そのため、ずっと動かし続ける資源に使います。
余った資源を割安に使うやり方もあります。多くの事業者が、これをスポットと呼びます。事業者が資源を回収すると処理が止まるので、途中で止まってもやり直せる処理に向きます。夜間の集計や動画の変換が、その例です。
施策を組み合わせると、効果は足し算にならない
次の部品で、架空の月100万円の請求に4つの施策を組み合わせられます。割引は3割引きとし、開発環境は平日12時間だけ動かします。本番サーバのサイズの見直しでは、費用が8割になるものとします。
- 本番サーバ
- 50万円
- 開発環境サーバ
- 28万円
- 未使用の
ディスク - 12万円
- ストレージと
通信 - 10万円
- 本番サーバ
- 50万円
- 開発環境サーバ
- 28万円
- 未使用の
ディスク - 12万円から
0円に - ストレージと
通信 - 10万円
- 本番サーバ
- 50万円
- 開発環境サーバ
- 28万円から
10万円に - 未使用の
ディスク - 12万円
- ストレージと
通信 - 10万円
- 本番サーバ
- 50万円
- 開発環境サーバ
- 28万円から
10万円に - 未使用の
ディスク - 12万円から
0円に - ストレージと
通信 - 10万円
- 本番サーバ
- 50万円から
40万円に - 開発環境サーバ
- 28万円
- 未使用の
ディスク - 12万円
- ストレージと
通信 - 10万円
- 本番サーバ
- 50万円から
40万円に - 開発環境サーバ
- 28万円
- 未使用の
ディスク - 12万円から
0円に - ストレージと
通信 - 10万円
- 本番サーバ
- 50万円から
40万円に - 開発環境サーバ
- 28万円から
10万円に - 未使用の
ディスク - 12万円
- ストレージと
通信 - 10万円
- 本番サーバ
- 50万円から
40万円に - 開発環境サーバ
- 28万円から
10万円に - 未使用の
ディスク - 12万円から
0円に - ストレージと
通信 - 10万円
- 本番サーバ
- 50万円から
35万円に - 開発環境サーバ
- 28万円
- 未使用の
ディスク - 12万円
- ストレージと
通信 - 10万円
- 本番サーバ
- 50万円から
35万円に - 開発環境サーバ
- 28万円
- 未使用の
ディスク - 12万円から
0円に - ストレージと
通信 - 10万円
- 本番サーバ
- 50万円から
35万円に - 開発環境サーバ
- 28万円から
10万円に - 未使用の
ディスク - 12万円
- ストレージと
通信 - 10万円
- 本番サーバ
- 50万円から
35万円に - 開発環境サーバ
- 28万円から
10万円に - 未使用の
ディスク - 12万円から
0円に - ストレージと
通信 - 10万円
- 本番サーバ
- 50万円から
28万円に - 開発環境サーバ
- 28万円
- 未使用の
ディスク - 12万円
- ストレージと
通信 - 10万円
- 本番サーバ
- 50万円から
28万円に - 開発環境サーバ
- 28万円
- 未使用の
ディスク - 12万円から
0円に - ストレージと
通信 - 10万円
- 本番サーバ
- 50万円から
28万円に - 開発環境サーバ
- 28万円から
10万円に - 未使用の
ディスク - 12万円
- ストレージと
通信 - 10万円
- 本番サーバ
- 50万円から
28万円に - 開発環境サーバ
- 28万円から
10万円に - 未使用の
ディスク - 12万円から
0円に - ストレージと
通信 - 10万円
4つすべてを選ぶと、請求は48万円になります。別々に見積もった削減額を足すと55万円ですが、実際の削減は52万円です。本番のサイズを下げると割引の対象も10万円減るので、その3割の3万円を二重に数えていたことになります。
順番でも差が出ます。先に本番の50万円分を約束すると、支払いは月35万円です。後からサイズを下げても約束した額が残るので、先に8割へ下げてから約束した場合の28万円より月7万円高くなります。
だからといって、減らし終えるまで約束を待つのも得策ではありません。FinOps Foundationは、待つとほとんどの場合で多く払うことになると注意しています。これからも確実に使う量の分だけを先に約束します。
総額ではなく注文1件あたりの費用で見る
総額だけを見ていると、事業が伸びて増えた費用と、無駄で増えた費用を区別できません。そこで、費用を注文数のような事業の量で割って見ます。FinOpsではユニットエコノミクスと呼び、注文1件あたりや利用者1人あたりの費用がその例です。
注文は1月から順に10万件、15万件、20万件、20万件と増えた例です。2月と3月は請求が増えていますが、1件あたりの費用は下がっているので、減らす理由はありません。4月は注文が増えていないのに請求が30万円増え、1件あたりも7.5円から9円に上がりました。調べるべきなのは4月です。
割る量は、事業の担当者がふだん見ている数字から選びます。財務も開発も同じ数字を見られるようになり、請求の話が事業の話としてできるようになります。
FinOpsを小さく始める手順
最初から専用のチームやツールをそろえる必要はありません。次の順に、できるところから始めます。
- 先月の請求を、サービス別とアカウント別に分けて、金額の大きい順に並べます。
- 上位の費用それぞれに、持ち主のチームを決めます。
- teamとenvのような少数のタグを決め、新しいリソースでは必須にします。
- 未使用のリソースの整理など、すぐ減らせるものから実行します。
- 予算を決めて、超えそうなときに通知が届くようにします。
- 月に1回、開発と財務で集まり、前月の改善の効果を請求で確かめます。
FinOps Foundationは、取り組みの進み具合をCrawl、Walk、Runの3段階で表しています。すべての作業をRunまで上げることが目標ではありません。事業への効果が大きい作業から、段階を上げていきます。
| 段階 | 状態 | 費用の |
|---|---|---|
| Crawl | 報告も | 70%以上 |
| Walk | 組織で | 85%以上 |
| Run | すべての | 90%超 |
参考にした資料
- FinOps Foundation「What is FinOps?」(語の由来と定義)
- FinOps Foundation「FinOps Framework」(フレームワークの構成)
- FinOps Foundation「FinOps Principles」(6つの原則)
- FinOps Foundation「FinOps Personas」(関わる人)
- FinOps Foundation「FinOps Phases」(3つの段階)
- FinOps Foundation「FinOps Maturity Model」(Crawl、Walk、Runと目標の例)
- FinOps Foundation「Allocation」(タグと共有費用)
- FinOps Foundation「Invoicing & Chargeback」(ショーバックとチャージバック)
- FinOps Foundation「Anomaly Management」(異常な増え方の検知)
- FinOps Foundation「Usage Optimization」(使用量の見直し)
- FinOps Foundation「Rate Optimization」(割引の約束と使用量の見直しの関係)
- FinOps Foundation「Unit Economics」(単価の指標)
- FinOps Open Cost and Usage Specification(FOCUSの仕様)
練習問題(全5問)
正解:開発・財務・事業の
FinOpsは、
正解:
FinOps Foundationは、
正解:ショーバックは
違いは、
正解:28万円
サイズを
正解:7.5円から
150万円÷20万件=7.5円、
選んでから「採点する」を押すと、解説つきで答え合わせができます。