概要
皆さまは普段クラウドサービスをご利用でしょうか?
クラウドサービスとは、コンピューティングリソースやアプリケーション、ソフトウェアをインターネットなどのネットワーク経由で利用するサービスの総称のことを指します。
従来、システム構築などの際には必要なハードウェア、ソフトウェア、データなどを利用者自身が保有し、管理・運用していましたが、このクラウドサービスのおかげでそれらを用意することなく、かつ初期投資や運用コストを気にすることなくサービスを利用することができます。
クラウドサービスは大きく分けてパブリッククラウドとプライベートクラウドの 2 種類が存在しますが、ここ近年世界的に利用が加速しているプライベートクラウド、その中でも特に有名なのが AWS(Amazon Web Service)や Azure(Microsoft Azure)かと思います。
AWS や Azure では、ユーザー側にて独自のアプリケーションやシステムを構築し、自社利用や顧客へのサービス提供に利用されるケースが多く、それらをサポートするサービスも多数用意されています。
そんな便利に扱えるクラウドサービスですが、注意しないといけないのがやはり費用面ではないでしょうか?
便利なサービスであるがためにいろいろと使いすぎたり、月次換算で見ると意外と安く感じてしまい使いすぎてしまったりなどして、年額計算すると想定よりも高くなってしまうことなどもあるかと思います。
そこで今回は、Azure に関してコスト面を管理しやすくなる OSS を見つけましたので、皆さんにご紹介したいと思います。
今回ご紹介する OSS は、クラウドサービス Microsoft Azure のサブスクリプションコストを CLI から取得することができる「Azure Cost CLI」になります。
「Azure Cost CLI」はその名の通り、Azure サブスクリプションのコストを取得することができるコマンドラインツールになります。
Azure を普段から利用されている方にとってはとても重宝する OSS かもしれませんね。
それでは早速詳細について見ていきましょう。
目次
特徴
「Azure Cost CLI」ですが、以下の点が特徴として挙げられていました。
また以下の点が 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」について参照されてみてはいかがでしょうか。