クラウドだからこそ必要不可欠――技術とコストを最適化する「FinOps」とは?
従量課金制を大きな特徴とするクラウドサービス。その能力を最大限に引き出しつつ、コストを最小化する「FinOps」は、ITエンジニア部門と経営部門が連携して共通の理解基盤を築く重要な考え方になってきている。今回はこのFinOpsについて考察する。
DevOpsの発展形として登場した「FinOps」
クラウドシステムが主流の時代となり、ソフトウェアは継続的に改善を続けていくものとなりました。そこで登場したのが「DevOps」です。
DevOpsは開発担当者(Dev)と運用担当者(Ops)が互いに協力し、相互のフィードバックによって継続的にシステム改善を行っていく手法です。いわばDevOpsは、クラウド時代におけるソフトウェア開発方法論として広く知られ、実践されるようになりました。
このDevOpsを発展/応用する形で、さまざまな手法も登場しています。DevOpsにセキュリティー対策を積極的に組み入れた「DevSecOps」、データサイエンティストやビジネスアナリスト、データエンジニア、運用担当者などが連携してデータ分析ワークフローを自動化/効率化する「DataOps」、機械学習モデルの開発やトレーニング、デプロイ、運用、監視の一連のプロセスを自動化/効率化する「MLOps」などが挙げられます。
そして、ここ数年で注目が高まっているのが、DevOpsの考え方を財務会計(Financial)にまで拡大した「FinOps」です。
FinOpsではシステムの開発担当者と運用担当者だけでなく、財務会計の担当者も加わることで、開発と運用の費用面からのシステム最適化を支援します。無駄な費用が生じていたシステムを発見したり、システム改善の優先順位を決める際に費用の視点を加えたりすることが可能になります。
クラウドによる「運用コストの構造変化」
FinOpsはクラウド時代だからこそ登場した最適化手法と言えます。オンプレミスが主流だった時代は、システムの稼働開始時にハードウェアとソフトウェアを購入すれば、運用にかかるコストのほとんどは人件費用とシステム保守費用でした。
実際には電気代やシステム設置場所のフロア代なども存在していましたが、そのほとんどは無視されていたと言ってもよく、運用時のコスト削減手段としては運用業務の外注化などによる人件費の削減が代表的なものでした。
この運用時のコスト構造がクラウドの登場により一変したのです。クラウドの利用開始時にはハードウェアもソフトウェアも購入の必要がなく、非常に安価なコストで開始できます。そして運用にかかる手間の多くはクラウドに任せることができ、さらに自動化も容易なため、運用時の人件費は不要または極めて小さく抑えられます。
つまり、オンプレミス時代には運用時のコストの主要因であった人件費が、クラウド時代にはマネージドサービスなどの活用により容易に圧縮可能となったのです。
一方、クラウドは従量課金が基本であり、どれだけの性能のサーバー(インスタンス)をどれだけ立ち上げ、どれだけの量のデータをどれだけの性能のストレージに保存し、どれだけのデータをネットワークで通信し、どれだけのサービスを利用したかといった従量に比例して費用が発生します。
当然ながら、開発部門(Dev)と運用部門(Ops)はそれぞれの任務遂行に必要なものとして、クラウド上のさまざまなインスタンス、ストレージ、ネットワークをはじめとするサービスを組み合わせてシステムを開発・運用していきますが、DevOpsだけでは、それらにどれだけの費用が必要になるかという視点が欠落あるいは不十分の可能性がありました。
そこで、費用面からの視点をDevとOpsに組み込むのがFinOpsです。
技術面だけでなく費用面からの検討も
開発部門が開発環境をクラウド上に構築する場合、できるだけ快適な環境になるように高性能なインスタンスとストレージを用意し、さらに利便性のためにインスタンスを24時間起動したままということになるかもしれません。
しかし費用面から見れば、高価な費用がかかる高性能なインスタンスやストレージが本当に必要なのか、また就業時間以外はインスタンスを停止してもよいのではないかといった視点も欠かせません。
同じような例は他にもあります。システムの安定稼働性を求めてクラウド上に常に多めのインスタンスを起動しておく場合、どこまでの冗長性が正当なのかを費用面からも検証する必要があるでしょう。さらに、ストレージ上の不要になった膨大なデータを安全に削除するプログラムの実装よりも、新機能の開発を優先することが果たして費用面から見て本当に適切なのかといったケースもあります。
このようにクラウドシステムにおいては技術面だけでなく費用的な面での検討も行わなければ、その適切性の判断は難しいです。それを実現することがFinOpsの目的なのです。
技術と費用のバランスをFinOpsで最適化
FinOpsの実践には難しさも伴います。DevOpsが同じ技術的素養を持つ開発部門と運用部門のコミュニケーションであるのに対し、FinOpsでは一般的に技術的知識を持たないとされる財務会計部門との連携が必要になるからです。
技術的な専門用語やシステム構成を、費用対効果の観点から財務部門にわかりやすく説明したり、逆に財務的な制約や目標を開発部門と運用部門が理解したりするためには、共通の理解基盤を築くための「組織的な努力」が欠かせません。
これをどう克服するかは、それぞれの企業や組織が持つカルチャーによるところが大きいと言えるでしょう。いずれにせよ、ITエンジニアにおいては例えばクラウドの請求書と実際のシステムがどのように結びついているかを十分に理解し、非IT系のスタッフにわかりやすく説明できることが望ましいのは間違いありません。
一方、財務会計部門やその関連部門は、発生する費用が売上や利益、あるいは顧客や組織内の利便性にどのように結びついているかを理解することが望ましいでしょう。それぞれの役割を十分に果たしつつ、全体の相互理解に向けて努力すべきなのです。
なお、こうしたノウハウの共有を目的に、FinOpsを推進する独立団体「FinOps Foundation」が設立されています。ここではFinOps実践のためのフレームワークや関連資料などの参考になる情報が公開されています。
技術面で優れた組織であっても、そこに莫大な費用がかかるのであれば市場での競争力は乏しく、その逆もまた然りです。技術力と費用のバランスをいかに最適化していくかがITに関わる多くのビジネスにとって重要です。それゆえFinOpsは今後ますます、多くの組織にとって無視のできないキーワードとなることでしょう。
(出典:FinOps Foundation)
ピンチアウトで拡大
※このコラムは不定期連載です。
※会社名および商標名は、それぞれの会社の商標あるいは登録商標です。

-
新野淳一/Junichi Niino
ブログメディア「Publickey」( http://www.publickey1.jp/ )運営者。IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求。
