欧米を中心に広がり、昨今国内でも認知度が高まりつつある「FinOps」について、その基本から本連載では解説していきます。今回は、具体的にクラウドコストを最適化(あるいは削減)していくために、具体的にどのような活動が必要なのか、「支出の公式」に照らし合わせてみていきます。「はじめてのFinOps」の過去回はこちらを参照。

シンプルだが奥深い、支出の公式

これまで連載の第1回ではFinOpsの背景とフレームワークの全体像について解説し、第2回第3回で、FinOpsフレームワークの要素の1つ、ペルソナ(Personas)を、そして第4回で、その活動領域と内容を整理したドメイン(Domain)と、ケイパビリティ(Capability)を紹介しました。

それではクラウドのコストを最適化(あるいは削減)していくにあたって、具体的にどのようにどのような手法があるのでしょうか。

よく知られた手法には、例えばリザーブドインスタンスやSavings Plans(AWSの場合)のような、長期間にわたってクラウドリソースを利用する予定がある場合にその利用を約束することで深い割引を得る方法(コミットメント割引)や、使われていない無駄なリソースを削り込む方法(ライトサイジング)があります。

ここで基本的ですが重要なことを理解しておく必要があります。それは、「クラウドでは、あらかじめ決められた料金で、使った分だけ、コストが発生する」というものです。

コスト = 料金(単価) × 使用量

一見シンプルなこの式は、実はとても奥深いものです。コストを最適化(削減)するには、「料金(単価)」と「使用量」に働きかけていく必要があるということを示しています。

1. 料金(単価)の低減(rate reduction)

クラウド事業者は実にさまざまなサービスを提供していますが、それらには必ず料金(単価)が設定されています。そして料金自体を下げることができれば、使用量によらず、コストは減ることになります。

この料金の低減は平たく言えば、調達の仕方を改めるということです。後述する使用量の削減とは異なり、基本的にクラウドリソースの使い方(システム設計や運用)には直接的な影響はありません。

料金低減の方法としてよく知られているものには、前述のコミットメント割引のほかに、いわゆる「大口割引」があります。多くのクラウド事業者は年間コストが一定額を超える大口顧客向けに割引制度を提供しています。例えばAWSのEDP(Enterprise Discount Program)、Microsoft AzureのEA(Enterprise Agreement)などです。

これらに共通するのは、企業などでIT部門や各システム担当者が個別にクラウド事業者と小さな契約を結ぶより、企業全体で一括契約する方が、コミットメント割引でより大きなコミットメントをしやすくなり、大口割引での価格交渉力も強くなるということです。

そこでFinOpsのベストプラクティスでは、各システム担当者が個別に料金の低減に取り組むのではなく、FinOpsチームが組織全体で取りまとめて行うことを推奨しています。

クラウド事業者は、サービスの利用は各部門で自由に行えるようにしながら、契約と請求を組織全体で取りまとめる仕組みを提供しています(AWS Organizationなど)。このような仕組みを上手く活用して、FinOpsチームがコミットメント割引の適用や、大口割引の交渉などを行うのです。

  • はじめてのFinOps 第5回

    料金(単価)の低減(筆者作成)

2. 使用量の削減(usage reduction)

クラウドリソースを「使った分だけ」コストが発生するのであれば、その使用量を減らすことができれば、その分だけコストも発生しなくなる(つまりコストが減る)ことになります。これを「コスト回避(cost avoidance)」とも呼びます。

使用量の削減は、クラウド事業者が提供しているサービス仕様を正しく理解し、使い方によってコストがどのように変化するのかを考えて見直すことで行います。これは実に地道な作業ではありますが、見落としがちなポイントやよくある手法がFinOps Foundationのサイトで紹介されていますので、参考にしてみてください。

それでは、FinOpsチームは使用量の最適化にはどのように関わるのでしょうか?

使用量の最適化において、そのクラウドリソースの使用量を減らす、あるいはより料金の安い同種のサービスに置き換えたりシステム構成自体を見直したりという判断は、FinOpsチームだけではできません。

そのシステムを実際に開発し運用保守しているIT部門のシステム担当者が知らないところで、FinOpsチームが勝手に使用量を削減してしまっては、システムトラブルにもつながりかねません。

そのためFinOpsチームは、クラウドの利用に関して無駄を洗い出し、無駄な使用量を削減するための案とその案の実行リスクを整理した「推奨案」を、IT部門のシステム担当者に提示・提案し、その採用判断と実行はシステム担当者が行うようにします。

  • はじめてのFinOps 第5回

    使用量の削減(筆者作成)

FinOps実践のポイント:コスト削減自体を目的にしない

今回は、クラウドコストを最適化するための具体的な活動について、支出の公式にあてはめて解説しました。

FinOpsの活動についてよくある誤解は「FinOpsとは、クラウドのコストを削減する活動だ」というものです。たしかにFinOpsにおいて「コストの削減」は外せないポイントです。

しかし重要なのは、コストの削減それ自体が目的ではなく、クラウドがもたらすビジネス価値を最大化するために、「必要なものにはそれ相応のコストをかけ、不要なものにはコストをかけない」という「コスト最適化」の観点です。(連載第1回参照)

このための基本的な考え方として、FinOpsの中では「ユニットエコノミクス(Unit Economics)」という言葉が出てきます。ユニットエコノミクスとは、1つの製品やサービスあたりの経済性を分析する指標です。

クラウドにかけたコストがどれだけの事業価値を生み出したかにより、コストの妥当性を判断します。例えば、新規獲得ユーザ数やアクティブユーザ数、ショッピングカートに入った商品点数や売上高などとコストを比べながら、妥当性を測ります(※)。

※筆者注:このように、企業やプロジェクトの長期的な成長と成功のための最も重要な指標のことを、北半球の大海原で自船の進むべき方向を見失わないために頼りにする北極星に例えて、「North Star Metrics」(北極星指標)とも呼びます。

コストだけをみてしまうと、「なんか高いから一律10%コストを削減しろ」とか、「今期は予算も余っているから、まあよしとしよう」といった場当たり的な判断となり、現場のやる気を削ぐようなことになったり、あるいは事業が成長している中で必要なコストをかける判断が遅れてしまったりしかねません。

エンジニアにビジネス的なコスト感覚を育むとともに、テクノロジーにコストをかけることの妥当性をビジネス側が理解するためにも、ユニットエコノミクスという考え方は重要です。そして、コスト削減自体が目的ではなく、コストを最適化していくのだという姿勢が大切です。

次回は、FinOpsフレームワークの残りの要素、FinOpsのPhase(フェーズ)とMaturity(成熟度)について解説します。