エンジニアはクラウドコスト削減を嫌っているわけではなく、手間をかける時間がないだけ。鍵は、より踏み込んだ自動化にあるかもしれません。
2021年版State of FinOps Reportによれば、FinOpsチームが直面する最大の課題は、エンジニアや開発者にクラウドコスト最適化をより深く取り入れてもらうことです。エンジニアはパフォーマンスや信頼性からセキュリティ、開発スピードに至るまで、さまざまな最適化課題に同時に向き合っています。そこにクラウドコストまでバランスを取れと言われれば、できれば避けたい負担です。
本記事では、クラウドエンジニアをクラウドコスト最適化に積極的に巻き込むという課題と、彼らがコストを管理しやすくするための具体策について解説します。
FinOpsチームはエンジニアの賛同を得られず苦戦している
IDCの予測によると、2022年には企業がパブリッククラウドのコスト管理に投資し、パブリッククラウド支出の少なくとも20%を占めるとされるクラウドの無駄を半減させることを目指すとされています。これはFinOpsチームにとって極めて高いハードルです。なぜなら、コストを発生させている当の業務に従事しているエンジニアにとって、クラウド支出以外にも考えるべき優先事項が山ほどあるからです。
エンジニアにとって、クラウドリソースのインスタンスを手軽に立ち上げられることは大きな魅力です。しかし、クラウドならではの開発スピードを活かそうとするあまり、稼働しっぱなしのリソースを忘れてしまうのも無理はありません。不要なインスタンスを大量に放置するといった些細なミスが、企業に数万ドル規模の損失をもたらすこともあります。そうした事故がなくとも、目を光らせていなければクラウドの請求額はあっという間に膨らみます。とはいえ、バックログや機能開発に追われるエンジニアにとって、コストへの配慮は最優先事項にはなりにくいのです。
クラウドコスト管理の鍵は、コストを発生させる関係者全員が、その支出が妥当かどうかを手軽に確認できる仕組みを整えることです。単にコストを切り詰めれば良いという話ではありません。支出削減ばかりに目を奪われると、クラウドがもたらす俊敏性とスピードというビジネス上のメリットを取りこぼしかねません。求められるのは、_無駄な_支出を減らし、最終的にはなくしていくというコミットメントです。
コスト最適化を促す方法
クラウド利用の月額コストが、本来支えるはずの売上成長を上回り始めたら、組織は赤信号です。クラウド支出をコントロールしたいなら、まず自社のチームがクラウドリソースをどう使っているか、そして計画中のアーキテクチャやインフラの変更が今後の支出にどう影響するかを深く理解する必要があります。こうした知見があってこそ、チームメンバーに当事者意識を根付かせやすくなります。
コスト要因を可視化する
ホスト型およびクラウドベースのサービスは2022年にIT予算全体の26%に達すると予測されていますが、IT責任者はクラウドインフラのコストを正確に計画するための透明性を十分に確保できていません。見えないものはコントロールできません。しかし、クラウドインフラが複雑化するほど、コストの実態を正確に把握することは難しくなります。クラウドの無駄削減にエンジニアの力を借りる第一歩は、データを分析し、コストを適切なチームに紐付けることです。
これはAirbnbが採用したアプローチです。同社は消費アトリビューションモデルを構築し、クラウドの過剰支出がどれほど深刻な問題になっているかを開発者に見えるようにしました。さらに、コストやその他のビジネス要因を踏まえて判断し、定められた上限内に支出を収めるために必要な情報も提供しました。
支出のドライバーが見えるようになったことで、エンジニアはコスト削減につながるアーキテクチャ設計の見直しを進め、コスト増の要因も浮き彫りになりました。中央のコスト効率化チームは、このコスト配分の仕組みを使ってAirbnbエコシステム全体を俯瞰し、意味のあるコスト削減機会を探ることができたのです。
方針をトップダウンで押し付けない
クラウド支出をトップダウンで統制しようとすると、製品を素早く効率的に構築・リリースできるというクラウド本来の価値を損ねてしまいます。リソース調達の方針を何層もの管理階層を通じて指示していると、市場投入までの時間が遅れ、リソースの過剰プロビジョニングも招きます。望ましいのは、共有された情報と関係者全員から集めたフィードバックをもとに意思決定し、クラウド予算について協働で決めていくアプローチです。
不合理な障壁なくエンジニアが必要なリソースを請求できるようになれば、組織はより速く、より良いビジネス成果と、エンゲージメントの高いエンジニア文化を生み出すことができます。コスト削減の提案は他のエンジニアがレビューします。対象のworkloadsを十分まかなえるかを判断できるのは彼ら自身であり、承認・却下を判断する最適な立場にあるからです。こうすることで、安定性・信頼性・収益創出といった重要施策にも注力しながら、最適なコスト最適化ポリシーを合意していくモデルが築かれていきます。
当事者意識の文化を育てる
FinOpsでは、クラウド支出の責任を、その支出を発生させているチームに持たせるべきです。そのためには、支出予測の作成、支出のモニタリング、コスト最適化機会の特定に必要なツールとリソースをチームに用意する必要があります。
製品やサービスのライフサイクル全体の責任をエンジニアリングチームに移すような運用モデルには、相応のトレーニングが欠かせません。こうした当事者意識には、デリバリーチームに対する明確な期待値の設定と、コスト超過時の影響をきちんと示すことも含まれます。
ITチャージバックとITショーバックは、ITハードウェアやソフトウェア、クラウドサービス、共有サービスのコストを、利用部門に結び付けるための2つの方式です。チャージバックでは利用したテクノロジーリソースの量に応じて部門に課金されますが、ショーバックでは課金は行わず、利用状況を部門に通知するにとどまります。
この責任分担の見直しに全員が諸手を挙げて賛成するわけではないでしょう。それでも、エンジニアが自分たちのクラウド利用をより俯瞰的に捉え、長期的に大きなコスト削減につなげるきっかけになり得ます。
ゲーミフィケーションも一案
一部の企業では、コストセンターが年度内に割当予算を使い切らないと翌年度の予算を減らす、という時代遅れの会計慣行が残っています。これは慎重な支出を促すどころか、年度末の駆け込み支出を招きやすい仕組みです。
もう一つのアプローチは、エンジニアのモチベーションの源泉を見極め、適切なインセンティブで報いることです。各エンジニアリングチームのクラウド支出をリーダーボードで掲示し、レビュー会議で結果を発表し、各チームの実績を社内に共有して健全な競争を促す——そんなゲーミフィケーションを取り入れている企業もあります。一定期間で最も大きな改善を遂げたチームには、ピザから休暇まで、さまざまな報酬が贈られます。
ただし、このやり方には落とし穴もあります。エンジニアがクラウドコスト削減にのめり込みすぎて、最終的には何も使わなくなってしまっては、最適化戦略として本末転倒です。クラウドコスト最適化を促す手段としてゲーミフィケーションを検討する企業は、クラウド支出の削減そのものではなく、クラウド利用による利益率の向上など、別の指標を対象にすべきです。
プロセスを自動化する
エンジニアは元来、無駄遣いをするタイプではありません。とはいえ、クラウドのスピードと柔軟性を活かしたビジネスソリューションの提供に集中しているため、支出を細かく管理するインセンティブもないのが実情です。
しかし、無駄の管理が手軽になれば、エンジニアは喜んでその機会を活かしてくれるはずです。自動化は、不要な支出を生んでいる問題を特定し、発生したそばから解消するうえで大きな役割を果たします。DoiTのFlexsaveのような製品は、クラウドコスト最適化を自動化し、組織が最大限の節約を実現できるよう後押しする、有用な解決策のひとつです。
成果を出すために
エンジニアをクラウドコスト最適化の取り組みに巻き込もうとするFinOpsチームは、序盤で諦めてはいけません。クラウドコスト管理に万能の近道はないからです。地道な改善を積み重ねるには、協働のアプローチを取り、自動化を取り入れ、走りながら改善を繰り返していく必要があります。経営層からの強力なサポートも欠かせません。
あらゆる組織のテクノロジー支出に占めるクラウドの比率は今後も拡大し、ここで紹介したFinOpsの実践は遠からず当たり前になるでしょう。最終的には、すべてのエンジニアがクラウド請求のマネジメント方法を心得ているのが当たり前の世界になっていくはずです。