御成門プログラマーの技術日記

Microsoft AzureやAngularなどの技術情報を発信します

Azure Cost Management のコスト割り当て(プレビュー)機能を試してみたら、Azureコストの案分がとても簡単に設定できるようになった。

最近 Azure Cost Management をいじることが多いのですが、ある日Azure Cost Management のコスト割り当て機能(プレビュー)を発見。

Azureコストの割り当てに関しては今まで公式の機能がなかったので自作でコストの案分プログラムを作ったりと結構大変だったのですが、これが使えるならば待望の機能だ!!ということで実際に使ってみました。

Azure Cost Management のコスト割り当て(プレビュー)機能を試してみた

Azure Cost Management のコスト割り当ては Azure Portal の Cost Management の画面から設定が可能です。 左のブレードの「設定」→「コスト割り当て(プレビュー)」→「追加」から設定が可能です。ちなみに設定が可能なユーザーは「EA契約のエンタープライズ管理者アカウント」もしくは「Microsoft 顧客契約の課金アカウントの所有者」です。

「コストの割り当てルールの作成」画面の手順1でコスト割り当ての設定を行います。コスト割り当ての名前を入力し、コストの割り当て元となる「ソース」とコストの割り当て先となる「ターゲット」を選択します。まずはソースを追加してみます。
↑のソースを追加ボタンをクリックすると、ソースを追加する画面に遷移します。ソースの種類は下記の3つから選べるようです。

  • サブスクリプション
  • リソースグループ
  • タグ

それらは選択するボックスは複数選択できるようになってます。

今回は「リソースグループ」を選択しました。今回「ソース」としてテストで使用しているリソースグループは「20211108○○」という名前で分かりづらいのですが、0.03円のコストがかかっています。この0.03円という数字を覚えておいてください。
続いて「ターゲット」を選択します。 出てくるコストの種類は「ソース」のときと同じで「サブスクリプション」、「リソースグループ」、「タグ」から選択します。

こちらに関しては今回コストが発生していなかったリソースグループ「20210805-○○」を選択しました。

リソースグループが選択されると選択した「ターゲット」が合計何円割り当てられるのかが表示されます。問題がなければ「次へ」をクリックします。

手順2のタブに移動します。こちらの画面では、画面の説明にも書かれていますが、コストをターゲット間で分割する方法を定義します。何%ずつ案分するのか手動で設定したり、自動で割り振るロジックが用意されているのでそちらから設定できます。

割合方法の設定は現在のところ下記6点です。

  • 均等に配分
  • 合計コストに比例
  • コンピューティングコストに比例
  • ストレージコストに比例
  • ネットワークコストに比例
  • カスタム(手動)

手動の場合は合計が100%になるよう自分で割合を決定します。

ここまで来て設定が完了したら「作成」のボタンを押下します。作成したデータがステータスが「処理中」で一覧に表示されます。

作成したデータの詳細を確認してみると、割合規則の処理には最大2時間ほどかかるそうです。気長に待ちます。

しばらくすると状態が変わっているので、「ターゲットのリソースグループ」を確認します。

先ほどまでコストがかかっていなかったリソースグループに0.03円のコストが割り当てられていました。「ソース」のコストが「ターゲット」に移動していることがわかりますね。
かなり簡単にコストの割り当てが設定できました。

ちなみに割り当てられたコストだけを確認したい場合はコスト分析の画面で「グループ化」を「Cost allocation」に設定すれば確認できるそうです。ここら辺の詳しい話はMSの公式ページに乗っていたので割愛します。

コスト割り当て機能の使用用途、利用シーンについて考える

今回コスト割り当て機能を使ってみて、どんな場面に使うと便利かなと利用シーンを考えてみました。まず第一に思い浮かぶのが部門間の共有リソースをコストで案分したいパターンでしょうか。App Service Plan やSQL Database Elastic Poolなど共有のアプリケーションで使用しているリソースなどのコストをどう割り振るかが今までは課題でしたが、コスト割り当て機能を使うことでサブスクリプションを跨いで、割り振ることがが可能なことがわかりました。これをシステムで実装するととても大変だったのでとても便利な機能ができたなという印象です。
他の利用シーンとしては、共有リソースを多く使ったところが、コストの配分を大きくする機能はかなり重宝すると思いました。正直かなり割り振りの方法は広いので実際に使ってみてどのようなパターンがあるか模索していきたいと思います。

EAポータル上での出方の変化、影響について

EAポータル上で反映されたら、追記予定です。

Azureコスト割り当てに関しての気づいたことやその他メモ書き

コストの割り当てはEA契約もしくはMicrosoft顧客契約の課金アカウントでのみ使用可能のようです。

スコープ内にあるリソースグループですが、ここの候補に出てこないリソースグループがある気がします。コストが発生していないリソースグループ?が出ていないのかな。CostManagementに認識されないと出てこないのかもしれない。割り当てターゲットとしては出てきてくれると嬉しいのですが。

意外と厳しいコスト割り当て名の命名規則。どこか別の出力などで出てくるから制限が強めなのだろうか。

参考ページ

docs.microsoft.com