ソフトウェア開発者のための OSS、まとめてみました!

ソフトウェア開発を行なっている自分が、個人的に面白いと思ったプログラムの最新技術や、オープンソースソフトウェア(OSS)をまとめています!

MENU

Azure サブスクリプションのコストを取得するためのコマンドラインツール!「Azure Cost CLI」

概要

皆さまは普段クラウドサービスをご利用でしょうか?

クラウドサービスとは、コンピューティングリソースやアプリケーション、ソフトウェアをインターネットなどのネットワーク経由で利用するサービスの総称のことを指します。

従来、システム構築などの際には必要なハードウェア、ソフトウェア、データなどを利用者自身が保有し、管理・運用していましたが、このクラウドサービスのおかげでそれらを用意することなく、かつ初期投資や運用コストを気にすることなくサービスを利用することができます。

参考:クラウドサービスとは?種類や例をもとにメリットを解説 - アイティーエム

www.itmanage.co.jp

クラウドサービスは大きく分けてパブリッククラウドプライベートクラウドの 2 種類が存在しますが、ここ近年世界的に利用が加速しているプライベートクラウド、その中でも特に有名なのが AWSAmazon Web Service)や Azure(Microsoft Azure)かと思います。

aws.amazon.com

azure.microsoft.com

AWS や Azure では、ユーザー側にて独自のアプリケーションやシステムを構築し、自社利用や顧客へのサービス提供に利用されるケースが多く、それらをサポートするサービスも多数用意されています。

そんな便利に扱えるクラウドサービスですが、注意しないといけないのがやはり費用面ではないでしょうか?

便利なサービスであるがためにいろいろと使いすぎたり、月次換算で見ると意外と安く感じてしまい使いすぎてしまったりなどして、年額計算すると想定よりも高くなってしまうことなどもあるかと思います。

そこで今回は、Azure に関してコスト面を管理しやすくなる OSS を見つけましたので、皆さんにご紹介したいと思います。

今回ご紹介する OSS は、クラウドサービス Microsoft Azure のサブスクリプションコストを CLI から取得することができる「Azure Cost CLI」になります。

Azure Cost CLI」はその名の通り、Azure サブスクリプションのコストを取得することができるコマンドラインツールになります。

Azure を普段から利用されている方にとってはとても重宝する OSS かもしれませんね。

それでは早速詳細について見ていきましょう。

目次

特徴

Azure Cost CLI」ですが、以下の点が特徴として挙げられていました。

  • レポートの基準となる時間範囲を表示
  • GitHubOSS として公開され無料で利用可能
  • 予測コストを表示
  • NuGet にプッシュ済み

また以下の点が TODO として取り上げられており、近々機能実装されそうです。

  • 閾値を設定しエラーコードを返す機能
  • 設定機能、フィルタリング機能
  • エクスポート機能

まだまだ積極的に開発が進められているということなので、さらなる機能追加が楽しみです。

利用手順

利用方法については README に詳しく書いてありましたが、要点だけ記載します。

インストール

dotnet ツールコマンドを使用してグローバルインストール

dotnet tool install --global azure-cost-cli 

アップグレード

NuGet で利用可能な新しいバージョンがある場合、以下のコマンドを利用してアップグレード可能

dotnet tool update --global azure-cost-cli 

使用法

Azure Cost CLI」を実際に利用するには、コマンド経由で呼び出します。

ヘルプコマンドを入力すると使い方の説明が表示されます。

azure-cost --help
USAGE:
    azure-cost [OPTIONS]

EXAMPLES:
    azure-cost show -s 00000000-0000-0000-0000-000000000000
    azure-cost show -s 00000000-0000-0000-0000-000000000000 -o json

OPTIONS:
    -h, --help            Prints help information
        --debug           Increase logging verbosity to show all debug logs  
    -s, --subscription    The subscription id to use
    -o, --output          The output format to use. Defaults to Console (Console, Json, Text)
    -t, --timeframe       The timeframe to use for the costs. Defaults to BillingMonthToDate. When set to Custom, specify the from and to dates using the --from and --to options
        --from            The start date to use for the costs. Defaults to the first day of the previous month
        --to              The end date to use for the costs. Defaults to the current date

COMMANDS:
    show    Show the cost details for a subscription

ただ、「Azure Cost CLI」を利用するには事前に認証を済ませておく必要があるため、事前に az login を実行して認証しておく必要があります。

実際に「Azure Cost CLI」を利用すると、デフォルトではコンソール上に以下のような画面が表示され、サブスクリプションのコストを表示してくれます。

他にも JSON 形式でデータを表示してくれる機能もあるそうで、以下のコマンドを入力すると JSON 形式の結果が返ってきます。

azure-cost show -s 00000000-0000-0000-0000-000000000000 -o json > cost.json
{
  "totals": {
    "todaysCost": 0.521266170218092,
    "yesterdayCost": 2.367501588413211,
    "lastSevenDaysCost": 17.089367673307038,
    "lastThirtyDaysCost": 30.887236456720686
  },
  "cost": [
    {
      "Date": "2023-04-01",
      "Cost": 2.365348403419757,
      "Currency": "EUR"
    },
    // snip
  ],
  "forecastedCosts": [
    {
      "Date": "2023-04-13",
      "Cost": 0,
      "Currency": "EUR"
    },
    // snip
  ],
  "byServiceNames": [
    {
      "ServiceName": "API Management",
      "Cost": 19.524664,
      "Currency": "EUR"
    },
    // snip
  ],
  "ByLocation": [
    {
      "Location": "EU West",
      "Cost": 30.68711937543843,
      "Currency": "EUR"
    },
    // snip
  ]
}

他にもシンプルにテキスト形式で出力してくれるオプションもあるそうなので、いろいろな使い方を試してみると面白いかもしれません。

Azure Cost Overview for 574385a9-08e9-49fe-91a2-27660d92b8f5 from 01/04/2023 to 14/04/2023                                                                    

Totals:
  Today: 0,52 EUR
  Yesterday: 2,37 EUR
  Last 7 days: 17,09 EUR
  Last 30 days: 30,89 EUR

By Service Name:
  API Management: 19,52 EUR
  Azure App Service: 5,32 EUR
  Azure Monitor: 3,67 EUR
  Container Registry: 2,06 EUR
  Log Analytics: 0,17 EUR
  Storage: 0,13 EUR
  Key Vault: 0,00 EUR
  Bandwidth: 0,00 EUR

By Location:
  EU West: 30,69 EUR
  Unknown: 0,20 EUR
  US West: 0,00 EUR
  US West 2: 0,00 EUR

まとめ

今回は、クラウドサービス Microsoft Azure のサブスクリプションコストを CLI から取得することができる「Azure Cost CLI」についてご紹介しました。

普段 Azure を利用されている方でサブスクリプションのコストを気にしない方は少ないかと思います。

CLI を使用してコストを確認することができるので、バッチ処理などいろいろな使い方ができそうですね!

Azure を利用している方はぜひ一度、こちらの「Azure Cost CLI」について参照されてみてはいかがでしょうか。

ライセンス

Apache License 2.0

リンク

github.com