DEV Community

Cover image for クラウドサービスのコストはFinOpsで最適化していくのがトレンドらしいので何をすれば良いのかまとめてみた
Shiomi Sumi
Shiomi Sumi

Posted on

クラウドサービスのコストはFinOpsで最適化していくのがトレンドらしいので何をすれば良いのかまとめてみた

こんにちはSumiです。
最近、クラウドサービスのコスト最適化に取り組む機会が増えています。なぜなら、ビジネスのスピードアップを求めるあまり、どのくらいのコストがかけられているかが見えていなかったり、必要以上に投資してしまっている場合があるからです。
ほとんどの組織では契約しているクラウドサービスのうち、およそ 32% が過剰な支出になっているというデータもあります。
Image description

逆に、クラウドサービスのコストを恐れて抑制しすぎると、ビジネスの成長を遅らせてしまうリスクもあります。無駄なコストを省き、適切なクラウドへの投資でビジネス価値を最大化させるための取り組みは、どの組織においても大きくは変わりなく、FinOpsという考え方でベストなIT投資を実現することが可能と考えられています。

今回は、そんなFinOpsについてまとめてみました。

FinOpsとは

FinOpsは、エンジニアリング、財務、テクノロジー、ビジネスの人々が1つのチームとなり、データに基づいて支出を決定する際に協力できるようにすることで、組織がクラウドの支出をより深く理解し、最大のビジネス価値を得ることができるようにする取り組みです。

具体的には、エンジニア、ビジネス、経営、財務が参加する「FinOpsチーム」が、クラウドのコスト管理を行います。FinOpsチームの結成の段階でつまづくと後々に無駄に時間と精神が持っていかれてしまうので、ここは慎重に丁寧に取り組んでいくべきでしょう。(という自分への戒めと反省)

FinOpsチームは、各ステークホルダーに、クラウドのコストやリソース等の情報を共有します。それを元に、エンジニアはサービス構築やサポートに取り組みます。ビジネスや経営は、透明性や組織全体の効率性を確保し、予算超過のリスクを防ぎます。財務はFinOpsチームが提供するレポートを活用して、事業計画の策定やクラウド契約の見直しを行います。

各部門が協力しながら、以下の3つのステップを実施することで、FinOpsを実現することができます。

  • Inform / 可視化
    • 使⽤量とコストを可視化し、説明責任を果たせるようになる
  • Optimize / 最適化
    • チームが効率性を特定し、測定し、改善できるようにする
  • Operate / 運用
    • 最終的に事業⽬標に向けたプロセスを定義し、実⾏できるようになる

Image description

可視化する

目的を明確にする

ファーストステップとして、目的を設定しておきましょう。
「何がしたくて」コスト最適化をするのかを定めると必要な情報が見えてくるので、それをもって「何をどこまで可視化するのか」をきめてしまうのがポイントです。

可視化のために手間がめっちゃかかります、とかデータの保存に費用がめちゃくちゃかかるんですってなると、「あれ、なんのためにコスト最適化やってんだっけ」となる場合があるのでムダな情報を集めないためにも最初に定めた目的、つまり「どのような情報が得られたら、どのようなアクションを実施したいのか」という点を明確にしておく必要があります。

データを集める

それができたら、必要なデータを収集していきます。
最も簡単な方法としては、Money Forward AdminaといったSaaSの管理ができるサービスを利用したり、Freee APIから取得した取引一覧のデータをAmazon Quick Sight などのBIツールに流し込むなどの手法があります。この辺の詳しい話はまた別途ブログにしたいと思います。

整理する

必要なデータが集まったら、社内で使っているクラウドサービス全体の現状を整理をしていきます。TIMEフレームワークを使うと、既存のシステムが現状どのような状態にあるのかわかりやすく可視化できます。

Image description

TIMEというのは、「許容(Tolerate)」、「投資(Invest)」、「廃棄(Eliminate)」、「移行(Migrate)」の4つの頭文字をとったものです。

横軸のシステム価値と縦軸のテクノロジのリスクを 5点、-1点、-3点の3段階で評価してポイント付をしてマッピングすることで、システムがどの段階にあるのかを判定することができます。

TIMEフレームワークについてはこちらの記事で紹介されています。
https://www.sbbit.jp/article/cont1/38097?page=2

最適化する

可視化のフェーズで得られたデータに基づいて最適化を実施していきます。最初に決めた目的を達成するために何をすれば良いかを決めていきます。

最適化の手法には大きく2種類あり、「クイックウィン最適化」、そして「アーキテクチャ最適化」です。

Image description

まず最初に取り組むこととしてはクイックウィン最適化です。これは、「クイック」に実施可能であり、その効果も「クイック」に得られるアプローチのことを指します。
例えば、可視化された利用状況のデータを使ってアクティブユーザーと非アクティブユーザーを特定することだったり、異常にコストが増減しているところを特定して、急に増えるときに備えること、プランとかサービス自体を見直して、機能とコストがより組織に良いものに移行してしまうといったことなどが挙げられます。

その次に「アーキテクチャ全体」を最適化していきます。
クイックに実施可能なものっていうのは、単独のクラウドサービスにおける最適化の話になるのですが、最新のサービスに合わせて積極的に全体設計を見直すことで適正化を行うことも必要となります。

アーキテクチャの最適化においては、着手する最適化アクションは中長期的に見て、ざっくり3段階にわけて取り組んでいくと良いでしょう。

まず第1段階として、コストが高いけどパフォーマンスは出ていないものからとりかかります。従業員の業務品質に支障を来たさないように低コスト化を図ります。
第2段階では、身軽になった状態をベースにパフォーマンスの向上を目指していきます。
そして、第3段階では、コスト削減した状態を維持しながらパフォーマンスの向上を図るかという、ダイエットでいうところのリバウンド対策とをおこなっていく進め方をしていきます。

Image description

この図で言うところの、第3段階の「低コストで高パフォーマンス」を一気に目指したいところですが、既存のシステムが社内に浸透した過去の経緯だとか、慣習に気をつけないまま取り組むと、「コストはそのまま・パフォーマンスが低下」という結果を招くリスクがあります。
なので、コスト最適化に際してはユーザーからみたパフォーマンスの視点を大事にすることは重要ですね。

運用する

これまでの流れをおさらいすると、目的を明確にして現状を可視化する・目的に応じたアクションを決めて最適化する、という流れになるわけですが、可視化することや、最初に定めた目的とか目標に対しての評価、を行うといった一連のプロセスは、人間が介入しなくても実行するよう自動化をして、継続的に最適化していくのが運用のポイントになります。

具体的に、何を行なっていくのかというと、例えばリソースの使用パターンによっては大量購入で安くなるケースがあるのであれば、そのタイミングをポリシーで定めておいて通知を鳴らすといったアクションを構築してみたり、使われていないリソースがあれば一定の期間で削除するといったことが挙げられます。

最初の目的と、持っているクラウドサービスの特徴に合わせて、運用の自動化を構築して、最終的に、予算と目標が一致し続けるような仕組みができればokですね。

まとめ

ここまでの話をまとめると、クラウドサービスのコスト最適化にはFinOpsの実践が理想です。そのためには、財務や事業部、経営層といった広い人たちと手を取り合ってFinOpsチームを結成することから始まります。
そして、現状の把握のための可視化、そこから見えてきた課題に対する最適化のアクションを起こす。運用を自動化したらまた可視化したデータを元に最適化して…を繰り返し継続していく。

そうしてカルチャーとしてのFinOpsの成熟度を高めて、組織全体でコスト最適化に取り組む動きを作っていく。これがFinOpsの実践によるコスト最適化の流れになります。

こう見ると、FinOpsというものは手法やフレームワークといったものというより、組織のカルチャーづくりに似たようなものを感じます。組織文化を変革していくには、とにかく大きなことはせず、小さな成功を積み重ねていくのが成功のポイントになるといえますね。

泥臭く小さなことからコツコツとやっていきましょう。(自戒)

Top comments (0)