クラウド活用の怖いところが、見えない部分でムダなコストが発生していることだ。利用しているリソースを適切に管理し、どこにどれくらいのコストがかかっているのかを可視化し、把握する必要がある。だが、複数のクラウドを利用していると、それもままならなくなる。
急速にクラウドシフトが進んだことで煩雑な運用とコストの増加が問題になっている。この課題の解決に必要なアプローチが「FinOps」(「Finance」と「DevOps」を掛け合わせた造語)だ。
パーソルクロステクノロジーの永井玖人氏は、FinOpsは単なるコスト削減手段ではなくクラウドの利用コストを最適化してビジネス価値を最大化する運用手法だと説明する。どれだけのリターンが発生しているのかを確認し、コストをかけるべき対象を明確にすることがFinOpsの本質だ。
FinOpsにはリソースの利用状況を可視化する「Inform」(現状把握)、仮想マシンの性能変更や稼働スケジュールを計画する「Optimize」(計画)、Operateで計画したプランを実行する「Operate」(実行)の3つのフェーズがある。このサイクルを繰り返すのがFinOpsの基本だ。特定の個人や専門チームではなく、「プラクティショナー」「エンジニアリング」「プロダクト」「リーダーシップ」「ファイナンス」「調達」の6つの役割があり、それぞれの担当者によってFinOpsは実現する。
ここからは日立製作所とパーソルクロステクノロジー、メルカリの3社の担当者の説明を基に、FinOpsのアプローチで実践する「Amazon Web Services」(AWS)、「Microsoft Azure」(Azure)、「Google Cloud Platform」の3大クラウドのコスト削減方法を解説する。特にAzureは、ムダなコストを生みやすいポイントがあるため注意が必要だ。
まずは、日立製作所の松沢敏志氏がAWSのコスト削減ポイントを解説した。
クラウドサービスの一般的なコスト削減ポイントは、コンピューティングリソースの最適化と未使用リソースの停止、料金レートの適正化、スケーリング調整、ストレージやネットワークの適正化、ライセンスの適正化などだ。
AWSではユーザーのコスト最適化を支援するためのツールを用意している。まずはツールを利用することを松沢氏は推奨する。例えば「AWS Trusted Advisor」を使って未使用リソースを停止し、「AWS Compute Optimizer」でインスタンスの最適化を図るといった具合だ。
松沢氏は、AWSにおけるFinOpsの注意点として、うっかりやりがちな失敗例を挙げた。
同氏によれば、オブジェクトストレージ「Amazon Simple Storage Service」(Amazon S3)ユーザーの多くは、アクセス頻度が減ったデータを自動的にS3にアーカイブするように設定しているという。その際、アーカイブ時にオブジェクトごとにメタデータ用のオブジェクトが追加され、その都度リクエスト費用が発生する。松沢氏によると、細かいデータを1つずつアーカイブする設定にしているとリクエスト費用が跳ね上がるため、オブジェクトを結合してからアーカイブすべきだという。
また、一定期間利用することで割引を受けられるコミットメント割引にも注意が必要だ。サービスによっては、3年間利用全額前払いオプションの割引率は、そうでない場合と比べて5%程度の差しかない。為替が少しでも変動すると割引の恩恵を受けられなくなる可能性がある。全額前払いが常に正解とは限らない。
また、利用していると気付かないうちにコストが積み上がるケースがある。利用ログを管理する「Amazon CloudWatch Logs」に全てのログを保管するのではなく、エラーログだけに絞り、解析に使わないログは圧縮してから低コストのAmazon S3に格納することでコスト削減になるという。
また、すぐに利用できるクラウドのメリットが裏目に出てコンテナのクラスタが乱立したり、外部との通信に使うNATゲートウェイを機能ごとに導入したりする場合もある。手間はかかるがそれらを整理、統合することで、大幅なコスト削減を期待できる。
松沢氏は、「これらの見直しは、既に稼働しているシステムの改修が伴うので、現場は嫌がります。そのため、上層部のリーダーを巻き込むことが重要です」とアドバイスした。
次に、パーソルクロステクノロジーの桂川 誠氏がAzureのクラウドコスト削減のコツを解説した。
Azureに限らず、クラウドはリソースを定期的に棚卸し、不要なリソースは削除することが基本だ。桂川氏によると、多くの場合、定期的に棚卸しするとコストを5〜10%コスト削減できる余地があるという。棚卸しでムダを落とした上で、仮想サーバを最適化する。クラウドコストに占める仮想サーバ関連の占有率は大きいため、性能の最適化は大きな効果が得られやすいという。
また、Azureならではの料金体系とムダになりやすいポイントがあるという。よくあるのがデータバックアップを取っていた仮想サーバを削除しても、そのサーバに対するバックアップ契約は削除されないという問題だ。サーバを削除した際、必ずバックアップも削除する必要がある。
この他、Azureの前払い契約はかなり複雑だという。
「Azureは仮想サーバ以外にも、データベースや『Azure OpenAI Service』など、前払いできるサービスが増えています。コスト管理画面に出てこないものもあるので、ユーザー自身で確認する必要があります」(桂川氏)
Azureの場合、途中で前払いをキャンセルすることが可能だ。その場合、過去365日の違約金の金額が5万ドル(1ドル150円換算で750万円)以内であれば違約金を払う必要がない。また、この違約金のルールは、CSP(販売代理店管理のAzure契約)では条件が異なることも注意したい。
桂川氏はAzure OpenAI Serviceのコストに関する注意点も説明した。Azure OpenAI Serviceは「性能モデル×入出力するテキストのトークン数」で利用料が決まるが、2024年9月にPTU(Provisioned throughput units)ベースという新しい料金プランが加わった。入出力量に関係なく確保したPTUの数で料金が固定されるものだ。単価は高いが前払いが可能なので高稼働な企業では検討の余地があるだろう。
また、Azureには「Security for Copilot」というセキュリティやコンプライアンスに特化したAIサービスがある。課金体系はAzure Open AI Serviceとは異なる。サービス専用のユニットを1個単位で契約することになるが、1ユニット当たり月額約40万円と高額だ。まずは1ユニットから利用を始めて、状況を見ながら慎重に契約を増やすべきだろう。
最後にメルカリのFinOps専任のエンジニアであるパク・ジンス氏が、「Google Cloud Platform」(GCP)の前払いサービス「確約利用割引」(CUD:Committed Use Discount)を利用したコスト削減方法について説明した。
GCPのCUDは、1年または3年の利用を約束することで利用料が最低17%から最大70%割引(通常50%程度の割引)になるプログラムだ。パク氏は「CUDは、GCPユーザーは知っていなければ損をするサービスです」と話す。
CUDはAzureの前払いとは異なり、購入後の契約変更はできない。
「リスクは高いが、それを管理するのがFinOpsエンジニアの役目です。また、CUDには支払金額ベース、リソースベースの種別があり、どのCUDを購入すべきかが重要です。リソースベースのCUDは社内で共有できるので、あるプロジェクトで不要になったCUDを別のプロジェクトに回すことができます。組織間の情報共有と調整はFinOpsエンジニアが担うべき部分です」
CUDの検討には、GCPの標準機能である「FinOps Hub」を利用するといい。リソースの利用状況とコスト削減の効果をグラフで確認できる。ここで大切なのは、利用料の平均だけで判断せず、必ず時間帯ごとの利用グラフも確認することだという。
次にエンジニアリング部門と連携し、1年あるいは3年後の必要リソースを予測する。もちろん、3年後のリソースがどうなるかを正確に予測することは難しい。ビジネストレンドや自社ビジネスの成長、アーキテクチャの変更計画などを考慮して判断する必要がある。
CUDを購入する際のテクニックとして、1年と3年のプランを併せて購入することだという。パク氏は「割引率が高い3年プランだけを契約すると、途中でリソースを変更したときに大きなムダが生じる恐れがあります。事業を続ける限り下がらないベースの部分を3年にして、変動要素は1年を乗せる買い方をお勧めします」とアドバイスする。
FinOpsという概念は日本ではまだそれほど注目されていないが、海外では既に専門のコンサルティング企業があるほど浸透している考え方だ。クラウドベンダー側のコスト管理サービスも充実している。クラウドコストの適正化を進めるために、コスト管理をIT部門任せにせず、全社的なFinOps態勢の構築を検討すべきだろう。
本稿はパーソルクロステクノロジー主催のイベント「日立製作所、メルカリ、パーソルクロステクノロジーとFinOpsを学ぶ! 『FinOps入門×三大クラウドコスト削減術』」の講演内容を基に編集部で再構成した。
Copyright © ITmedia, Inc. All Rights Reserved.
製品カタログや技術資料、導入事例など、IT導入の課題解決に役立つ資料を簡単に入手できます。