コストモニタリングのためにエンジニア部門とのスムーズな連携を実現する : FinOps実践日記 #1?
クラウドのコストは音もなく増える
そもそも、私たちが「FinOps」という言葉を知ったきっかけがあります。
弊社ではクラウドインフラとして主にAWSを利用しています。AWSにはパートナープログラムがあり、条件を満たすとクレジットが付与されます。弊社でもこのプログラムの申請が通り、直近数ヶ月間は実質的に0円でAWSを利用できていました。
そのため、月額のコストをあまり気にせずサービスを利用していました。しかし、ある月についにクレジット残高がなくなり、実費の請求が届きました。そこで初めて、クラウドコストが驚くほどの金額になっていることに気がつきました。
ここ数ヶ月の急激な円高や開発環境への投資など、様々な要因によりクレジットを利用する前の1.5倍ほどの金額にコストが膨れ上がっていたのです。
財務部門だけでは判断ができない…
クラウドコストの最適化を進めるにあたり、コストの妥当性を把握するという壁にぶつかりました。AWSのコスト体系は複雑で、財務部門だけではその内訳を推察することができなかったのです。
「内訳がよくわからない」というのは、他の分野のコスト管理とは勝手が違います。一般的な支出であれば、何にどのような金額を払っていて、それが何のためであるかはある程度理解できます。そのため、報告をするにも誰に宛てるべきか判断できます。
ところがクラウドコストの場合、よくわからないサービス名称が羅列されているだけで、一体何が何だかわからないのです。
つまり、コストの監視・最適化のミッションを負っているのは財務部門でありながら、その内訳を理解することも、実際に手を入れることもエンジニアに依頼しないと実現しません。
「これは大変なプロセスになるぞ」と悩んでいた時に、FinOpsという考え方を知りました。
FinOpsについては、こちらの記事を参照ください。 📎
エンジニアの重荷を降ろす
クラウドサービスの利用料が妥当かどうかの判断ができるのは、担当のエンジニアです。つまり、エンジニア部門と財務部門の連携が重要と言いつつも、コスト最適化が成功するかどうかはエンジニア側に大きく依存しているのです。
そこで、財務担当として考えたのは、なるべく重荷にならないようなプロセスを準備・提案するということです。
特にMorphチームの場合はまだまだチームサイズも小さいので、プロダクト開発を担当しているエンジニアにコスト精査の依頼をしないといけません。そのため、プロダクト開発の進捗に影響を与えないよう、なるべくわかりやすい情報を揃えることにしました。
実際にやったこと
ここからは、実際にMorphを使って、コストモニタリングのために構築したデータフローを紹介します。
データの取り込みと整形
AWSの各サービスのコストをCSVで出力し、Morphにインポートしました。
このデータは一つのサービスに対して、レコードが複数行存在しています。まずは、サービスごとの料金の合計を集計します。
これで、サービスごとの月額のコストが判明しましたが、次に可視化をする際に金額の少ないサービスまで全て可視化してしまうと、視認性が悪くなってしまいます。そこで、閾値を設け$100以上のレコードを対象に絞りました。
これで下拵えは完了しましたので、後はMorphAIでプロンプトベースで可視化・レポート作成を行ってもらいます。
AIを使ってレポートを生成
レポートの作成の際にはコストの変動が大きいものをピックアップしてもらうことで、全てのサービスを見直すのではなく、検討が必要なサービスだけを絞り込むことができます。
人手で行おうとすると、こういった一手間が継続的な運用の障壁となったりすることもあるので、常に自動化できる箇所がないかは見直していきたいところです。
実際にMorphAIで使用したプロンプトはこちらになります。
年月を参照して、時系列で取引内容ごとの支払額(円)を可視化してください。 コストの増減に関してのレポートを作成してください。
実際に出力されたレポートの一部を紹介します。
S3などは、コストの増加要因に関しての示唆まで記載してくれています。AWSのサービス内容も踏まえた上でのレポート作成が、生成AIならではだと思います。
メール送信を自動化
仕上げとして、作成したレポートをステークホルダーに対してメールで送信します。
Morphでは、作成したレポートやチャートを簡単にメールで送付をすることができます。
一連のワークフローの中にメール送信を組み込むことができるので、その都度処理を行う必要はありません。
まとめと次回予告
今回はFinOpsの第一歩として、コストの可視化・共有を実現しました。しかし、まだまだできることはたくさんあります。
次のステップとして、請求情報とのAPI連携を検討しています。
現状はcsvファイルをアップロードした後のフローは自動化できているのですが、csvファイルについては、webからダウンロードしてMorphにアップロードする必要があります。
これを自動化することで、毎月のコストレポートを完全に自動化することを目指します。
また、レポートの内容も現在は一種類しかありませんが、エンジニアの担当ごとに内容を変えることで、個別にカスタマイズした内容のレポートを作成しようと考えています。
今後の取り組みもこちらの記事で発信していくので、ぜひご覧いただければと思います。