【費用最適化】Google Cloud で FinOps を考える(最後に筋トレのFinOpsも解説)

今回は、FinOpsを進める上で組織的に必要なアプローチの手法を解説します。
2024.03.08

概要

クラウドを使用する上で最も検討しなければならない要素の一つに費用の最適化があります。

オンプレミスはCAPEX(資本的支出)によって成り立っています。
これは簡単に言うと、企業が長期的な資産を購入することで初期費用を大きく支払い、その後の運営を行っていくというものです。

逆に、クラウドはOPEXという運用的支出というモデルのもと成り立っています。
一方、クラウドはOPEX(運用的支出)モデルに基づいています。こちらは、初期投資を抑え、使用した分だけ定期的に支払うという方式です。

ざっくりと述べましたが、初期投資が大きいのがCAPEX、運用コストを最適化して定期的に支払うのがOPEXというイメージを持っていただければと思います。

【OPEXとCAPEX】

FinOps

FinOpsとは、組織の規模、クラウド成熟度に関係なく、人、プロセス、テクノロジーを組み合わせて、組織の財務説明責任を促し、費用最適化の取り組みを推進する実践です。

つまり、FinOpsとは、単純に費用を節約するだけではなく、組織全体でクラウド費用を最適化し、各部門に合わせた最適な運用を促進するための仕組みです。

よって、これには財務部門やエンジニア、マネージャー層など、組織全体の協力が必要です。特に、現場のエンジニアは、検証環境やPoC(Proof of Concept)などの多くの作業環境を管理しています。

【組織で仕組み化】

これらの作業環境の中には、放置されているリソースや環境があり、結果として無駄な費用が発生している場合が多いです。
財務部門やリーダー層がこれらの事実を把握していれば、費用管理のためのガードレールを設定し、アラートを立てるなどの対策を組織的に考えることができます。

このアプローチは、DevOpsSRE(Site Reliability Engineering)の原則に基づいており、個人の責任ではなく、組織的な改革のもとで対策を進めるという認識を持っていただけると幸いです。

Google CloudでのOPEXを考える

FinOps の導入と実装を参考に、下記の情報をまとめています。

中核チームの存在

FinOpsは組織全体で検討することと言いましたが、現場のチームは経営層や他部門等の指摘をそのまま受け入れることができないかもしれません。

その場合に必要となるのが、中核チーム(FinOpsチーム,CCoE)の存在となります。
中核チームとは、組織内でクラウド戦略と運用の最適化を推進する専門家グループです。

このチームは、クラウド技術の導入と利用に関するベストプラクティスを確立し、組織全体にその知識と専門知識を提供する役割を担います。

よって、次からは組織や個人においてFinOpsを実践するために重要な項目についてまとめます。

個人の説明責任を促進

組織的なFinOpsの実装を成功させるには、 まずは個人の意識レベルを上げることが重要です。
現場レベルでFinOps を意識しないで、運営を行うとまず成功しません。

よって、クラウドを使用する誰もが「費用は誰か他の人の責任」であるという見方から「自分自身の責任」であるという意識を持つことが大切です。

推奨のアプローチ方法を下記にまとめます。

  • 費用最適化の手法を組織(現場レベルの担当者まで)に教育する
  • 費用を最適化した従業員に何らかのインセンティブを与える
  • 組織全体で費用を可視化する仕組みを作る

費用の可視化を実践

FinOpsの推進といっても、まずは現場の費用の可視化が必要です。
それもリアルタイムで、どれだけの費用がかかっているかを確認することで、常に費用最適化を意識した運営が可能となります。

月末にまとめて、今月の費用を可視化することも重要かと思いますが、クラウドは従量課金制であるのでその日その時の費用の可視化が可能です。

【リアルタイムで監視】

この特性も、クラウド特有のメリットだということができます。さらにGCPでは、費用アラート機能など簡単に実装できるので、すぐに現場レベルで確認することも可能です。

また、組織レベルで費用データの共有を促進しないと現場レベルで浸透するのに時間がかかります。このことからも、組織全体で組まないくてはいけないのがFinOpsと言えます。

推奨のアプローチ方法を下記にまとめます。

  • クラウドの費用を計算するため、明確に定義された1つの方法を使用する。
    • 従業員がクラウド費用をリアルタイムで確認できるように、ダッシュボードを設定する。
    • チームの枠を超えて、クラウド支出を幅広く可視化するように仕組み化する。

上記の方法を行えば、購入時の割引共有費用(共有データベースの費用など)を基に調整した総クラウド費用を考慮できます。

過失を責めない文化を確立する

冒頭にもお話ししたようにDevOpsSREの原則に即した文化が大切になってきます。
ここでは、どのロールにおいても、高額なクラウドの費用を間違って使用してしまう事はあるという前提のもと考えます。

高額な費用を誤って使用してしまった人を責めるという文化ではなく、その「原因を特定して、今後の改善に努める」そういった文化を推奨することで、真のFinOpsを実現することが可能です。

【責めない/事後分析】

ただし、「過失を責めないという文化」と「個人の説明責任を行う文化」を混同して考えてはいけなく、あくまで関係者単位では、個人の説明責任を果たし、チームには匿名で、今後のナレッジとして共有するという方法が推奨されます。

推奨のアプローチ方法を下記にまとめます。

  • 人を責めないように事後分析を行い、関係者よりも問題の根本原因を検討する
  • チーム内でナレッジを共有する文化を促進し、行動した従業員を称賛する文化を推進する

ビジネス価値を重視する

FinOps は単に費用を削減するためだけの目的ではありません。
クラウド費用の総コストを削減するために、あらゆる検討策を講じて対応していきます。

たとえば、費用削減のためにCloud SQL(マネージドサービス)ではなく、仮想マシン(非マネージド)を使用して、SQLサーバーを立てたとします。

すると、利用料金は仮想マシン(GCE)の方が安く見えますが、Cloud SQLに比べてメンテナンスコストが増加し、実際のビジネス的価値はCloud SQLの方が高くなる可能性があります。

【マネージドサービスの選定】

目の前の費用最適化を考えつつもその先にある最終的なメリットを考えてリソースを構築するという思想は、クラウド以外の現場でも必要な思考だと思います。

推奨のアプローチ方法を下記にまとめます。

  • マネージドサービスやサーバレスを使用して、リソースの総所有コストを削減する。
    • クラウドの使用状況を費用対効果、DevOps、ビジネス価値の指標に関連付け決定していく。

まとめ

FinOpsは、クラウドコストを最適化し、組織内での財務的な透明性を高めるための実践的なアプローチです。

これには、財務部門やエンジニア、マネージャー層など組織全体の協力が不可欠であり、放置されたリソースの削減や費用管理のガードレールの設定などを通じて、無駄な支出を抑える取り組みが求められます。

Google Cloudで提供されている例からすると、FinOpsの実践には中核チームの設置や個人の説明責任の促進、費用のリアルタイム可視化、過失を責めない文化の確立、そしてビジネス価値の重視が重要です。

これらのアプローチを通じて、組織はクラウドリソースの管理を改善し、全体的な費用効率を向上させることができます。

このブログでは、FinOpsの基本的な考え方から、Google Cloudでの具体的な運用方法までを解説しました。

クラウド費用の最適化を目指す企業は、この記事のポイントを参考に効率的なクラウド管理戦略を構築することができるでしょう。

筋トレのFinOps (MuscleOps)

私はこの記事を書いていて、筋トレにもFinOpsは必要だと思いました。
筋トレ、ダイエット=ジムに通わなければいけない」このような考えが根強いと感じています。

しかし、私がいつも初心者(筋トレ1,2年未満)の方お勧めするのは、まずは自宅でできるトレーニングや公園でできるトレーニングでを行い、スモールスタートで始めることです。

筋トレを運用しながら、自分の筋肉の成長技術の成長に合わせた投資(ジムに通うなど)を行い最適化していく。

ITの運用でも、一昔前はオンプレミスでサーバーを買わなければいけないと言う時代からクラウドが主流の現在になっています。

筋トレやダイエットでも、まず自分にどういった目標があり、そのためにはどのようなアプローチが必要か。
そこを考えることで、無駄な費用を抑え、自身の理想的な体を目指すことができます。

まずは自宅で1ヵ月間真剣に筋肉を追い込む筋トレを行いましょう。
それが継続できたら、1ヵ月前の自分との体の比較をしてみましょう。

少ししか成長していない場合は、+2ヶ月間自宅でのトレーニングを続けましょう。
再度体を確認し、成長している場合は、エニタイムやコナミ、スポーツなどの自身で器具を使うトレーニングジムを検討しましょう。

そこでうまくいかない場合には、パーソナルトレーニングも検討しましょう。

私がお勧めする筋肉におけるFinOpsはこんな感じです。 これこそまさに、筋肉におけるFinOpsの実践と言えるのではないでしょうか。

さらに筋肉におけるFinOpsについて知りたい方は、コメントでもお答えいたします。