
藤原です。
みなさん、システムコストの管理、どうしていますか? システムコストがどの程度発生しているのか、どんな機能から発生しているのか、特定の機能が利用された際にどの程度のコストがかかっているかを気にしたことはありませんか。
本エントリでは、Datadog Cloud Cost Managementを使ったマルチクラウド環境におけるコスト管理ダッシュボードの作成事例および、コスト計算を実現する方法について事例ベースで解説します。
複数クラウドのコスト管理
コスト管理を複数のクラウドサービスにまたがって行うには、多くの課題が生じがちです。 おそらくは以下のいずれかで管理している方が多いかと思います。
- 毎月の初めに個別クラウドの請求書をダウンロードしてスプレッドシートに転記の上、報告資料を準備
- (1.よりももう少しスマートな形で)毎月の初めに個別クラウドのAPIを叩いてスプレッドシートに転記して報告資料を準備
もちろん、これを特定のワークフローの中で定義していたり、AIの支援のもと効率的に実行できるようにしている方はいると思います。
今回はDatadogのCloud Cost Managementを中心に、Datadogの機能を活用してコストのo11yを高めることを事例として提示します。
複数クラウドを横断したコスト管理の課題
結局のところ、複数クラウドを利用する場合の課題とはなんでしょうか。 おおよそ以下のようなところに集約されると思います。
- 異常なコスト発生の検知やコストコントロールのための打ち手を考えたいが、情報源が散逸しているので情報集約の手間が辛すぎる
- 情報源が散逸しているので、コストの相関関係をみていくための分析も大変
個別のクラウドサービスにはコスト管理のためのマネージドサービスが存在1するので、 単一のクラウドのみにオールインする形でプロダクトを提供している場合はこのような悩みは生じません。
弊社はAWS, Google Cloud, Azureいずれも使う形をとっています。したがって、特定のクラウドプロバイダのコスト管理サービスでOKとはなりません。
Datadog Cloud Cost Management
Datadog Cloud Cost ManagementはA unified cost observability platform for Engineering and FinOpsという謳い文句のとおり、エンジニアリングとFinOpsを結びつけるためのプラットフォームサービスです。
AWSやGoogle Cloud、Microsoft Azureなどいわゆるメガクラウドと呼ばれるクラウドサービスプロバイダはもちろん、GitHubやAnthropic、OpenAIなどのサービスにも対応しています。
個別クラウドサービスプロバイダのコスト管理サービスとDatadog Cloud Cost Managementの比較
先ほども述べたとおり、クラウドサービスプロバイダ固有のコスト管理サービスは存在しています。 それらと比較した場合のDatadog Cloud Cost Managementのメリット・デメリットを見てみましょう。 その上で利用事例を見た上で判断すると良いでしょう。
- クラウドサービスプロバイダ固有のコスト管理サービス
- メリット
- zero configurationで単一クラウド内の情報を取得できる
- デメリット
- 複数クラウドに横断する形のコスト管理には対応していない
- 個別クラウドごとのサービス利用方法を理解する必要がある
- メリット
- Datadog Cloud Cost Management
- メリット
- 複数クラウドプロバイダー横断での各種メトリクスの集計とダッシュボード化
- すべての分析、設定操作をDatadogの中で実施する形となるので設定方法の習得コストは低くなる
- デメリット
- 有償2
- 個別クラウドのメトリクスを取得するための設定が必要
- メリット
クラウド固有のコスト管理サービスの強みは、原則としてZero configuraionな点です。 ひとまず何かしらの分析をしようと思えば特に設定することなく、メトリクスがそこに存在しダッシュボード化できるという点が魅力です。 ただし、特定クラウドの中のサービスなので、カスタムメトリクスで数値情報を何かしかの情報で取り込むなどしない限りはクラウドサービス横断で情報を集計するといったことは困難でしょう。
翻って、Datadog Cloud Cost Managementについては、メリットとしては複数のクラウドプロバイダーのメトリクスを集約してダッシュボード化できるという点が挙げられます。 また、複数のクラウドプロバイダのコスト情報を同じ操作感で調査、ダッシュボード作成ができます。 一方で有償サービスであること、個別のクラウドプロバイダとの繋ぎ込みの設定が必要なことデメリットと言えるでしょう3。
活用事例
ここからは活用事例です。 具体何を見ているかと言われると、現状は以下を実現しています。
- 全体としてのコスト概要
- クラウドプロバイダ別のコスト詳細
- 個別テナント・機能別のコスト統計
全体としてのコスト概要
確定分のコストとして、ひと月前とふた月前のシステムコスト統計を比較できるようにしています(図1)。

基本的には、クラウドプロバイダ単位で意図しない大きなコスト変動が発生していないか?や、コスト削減のためのアクションを実施したけれどもどれくらいの効果が全体で見た時に出ているか?などをウォッチする目的です。 詳細は別のダッシュボード(タブ)に任せています。
クラウドプロバイダ別のコスト詳細
クラウドプロバイダ別に環境やサービス、とくにコスト総額が大きかったり変動比率が大きいサービスについてトレンドや、直近2ヶ月のコストを比較できるようにしています。

とくにコスト観点で注目したいサービスについてはサービスごとにふた月前まで含めたコスト比較をできるようにしています。

利用金額がそもそも大きいサービスや、新規に利用を開始したばかりのサービスなどについてはトレンドだけでなく、詳細をウォッチするようにしたほうが良いでしょう。
個別テナントごとのシステムコスト
個別テナント毎の平均システムコスト(≒ システム原価)を見えるようにもしています。 システムコスト総額をテナント数で除算した結果がシステムコストのテナントあたりの平均システムコストになります(図4)。

図4のようにテナント数の変動を見つつ、システム原価をさまざまな試算パターン別に見れるようにしています。
従量によるコスト発生度合いの大きい機能についてのモニタリング
さらに追加で、変動要素の多いものとしてAI系の機能についてのコストも算出できるようにしています。 具体的には以下のようなものをみています。
- 個別機能毎のコスト総額
- テナント別の機能利用に伴うコスト統計
弊社では、AIに関連した機能提供に際しては、Vertex AIを利用しています。 Vertex AIのクライアントでリクエスト時に追加のラベル(どの機能からの呼び出しなのか、どのテナントからの呼び出しなのか)を設定することで、どの機能、どのテナントがどれくらいのコストを発生させているのか?を確認できるようになっています4。

どのテナントが、積極的に利用しているのか?なども見ることができます。

とくにたくさん利用されているテナントについては、ヘビーユーザーだと思うので、ヒアリングしてみるといったアクションも取れるかもしれないですね。
機能別の処理単価
最後は機能別に処理を1回実行するとどの程度のコストが発生しますか?も概算を見れるようにしています。 この辺りが見えるようになると、さらに精緻にコスト戦略を練れるようになるでしょう。 あまりにもコスト的に上振れしていればなんらかのコストコントロール施策のための作業が必要になるでしょうし、あまりに低ければもっと豪勢なモデルを使ってもいいんでないか?といった議論ができるかもしれません。
基本的には以下の情報が必要になるでしょう。
- 機能別のコスト総額
- 機能別の呼び出し回数
1については、すでに図5で取得できることがわかっています。 2についてはどうでしょうか、特定機能の呼び出し回数を計測することは案外大変です。パッとは取れません。
そこで、ALBのアクセスログからDatadogのカスタムメトリクスを作成し、エンドポイントごとの呼び出し回数を測定できるようにしました。 エンドポイントとAI機能の対応関係が取れるため、それをベースに個別機能の呼び出し回数を取れるようにしました(図7)。
1の数値はGoogle Cloudからの取得、2の数値はAWSからの取得という形で複数クラウドを横断する形でコスト分析をできるようになっており、その好例と言えるかもしれません。 最終的に、機能別のコスト総額を機能別の呼び出し回数で除算することで機能別の呼び出し単価を計算できるようになりました。

これで対象機能のプロンプトを変更したり、モデルを変更した際のコスト推移を見ることができるようになりました。
まとめ
ここまで、複数クラウド環境でのコストのo11yを改善するための手段としてDatadog Cloud Cost Monitoringについての事例を解説しました。 もちろんメリット・デメリットありますが、毎月のコストモニタリングの手間やクラウド横断でのコスト分析に苦労している人にはおすすめできる機能だと思うのでぜひ利用を検討してみると良いのではないでしょうか。
- AWSであれば、Billing and Cost Management、Google CloudであればCloud Billing、Microsoft AzureであればCost ManagementとBillingといったクラウドプロバイダ固有のサービスが存在します。↩
- 具体的な料金設定は公式ページを参照してください。なお、クラウドサービスプロバイダによってはAWSのCloudWatchのようにダッシュボード作成が有償といった場合もあるのでご注意ください。↩
- ただし公式のインテグレーション機能が用意しているため設定自体は難しくはありません。↩
- なお、この仕組みは個別プロダクトの開発メンバーの協力のもと、プロダクトコードにてラベル埋め込みを進めました。↩