Azureのコスト管理入門|Cost Managementと予算アラートでクラウド料金の想定外を防ぐ方法

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Azure > Azureのコスト管理入門|Cost Managementと予算アラートでクラウド料金の想定外を防ぐ方法
「月末にAzureの請求書を開いて、想定の2倍の金額を見て焦った」——クラウドを使い始めたエンジニアが最初にぶつかる壁のひとつです。

オンプレミスと違い、Azureでは起動したVMや転送したデータ量が秒単位で課金されます。「どのリソースが、いくら使っているか」をリアルタイムに把握しないと、気づかぬうちにコストが膨らみます。特に学習目的でVMを複数台建てたままにした場合、月数万円になることも珍しくありません。

この記事では、Azure Cost ManagementとBudget(予算アラート)を使って、クラウド料金の「想定外」を防ぐ実践的な方法を解説します。Azureポータルとaz CLIの両方をカバーし、RHEL 9.4実機でのコマンド出力を交えて手順を示します。

この記事のポイント

・azure コスト管理はCost Management画面でサービス・リソースグループ別に可視化できる
・az costmanagement queryコマンドでCLIからコスト照会が可能
・予算(Budget)設定で月次コストが閾値を超えるとメールアラートが届く
・タグ(Tag)付けでリソースのコスト配分をプロジェクト別に集計できる


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

Azure Cost Managementとは何か——コスト可視化の仕組み

Azure Cost Managementは、Azureサブスクリプションのコストと使用量を分析・管理するための無料サービスです。AWSのCost Explorerに相当する機能で、追加費用なしで利用できます。

主な機能は次の4つです。

コスト分析:日次・月次・累計でコストを可視化します。リソースグループ・サービス・リージョン・タグ別に集計できます
予算アラート(Budget):設定した金額を超えそうになるとメールで通知します。コスト超過を事前に検知できます
エクスポート:コストデータをCSVとしてストレージアカウントへ定期出力できます。経理・BIツール連携に使います
Advisor連携:Azure Advisorが未使用のVMやリソースを検出し、コスト削減の推奨事項を提示します

Azureポータルの「コスト管理 + 請求」メニューからアクセスします。または、ポータル上部の検索窓に「コスト管理」と入力するとすぐに見つかります。

Cost Managementでコストを分析する

1. コスト分析画面の見方

Azureポータルにログインし、左メニューの「コスト管理 + 請求」を開きます。「コスト分析」タブをクリックすると、今月の累計コストがグラフで表示されます。

画面上部の「スコープ」で分析対象を切り替えられます。

サブスクリプション全体:全リソースの合計コスト
リソースグループ:特定リソースグループのコスト(例: rg-linux-practice)

「グループ化」機能を使うと、コストの内訳をサービス別・リソースグループ別・タグ別に分解できます。「どのサービスが一番高いか」を特定するには「サービス名」でグループ化するのが最速です。

2. Azure CLIでコストを確認する

GUIだけでなく、az CLIからもコストを照会できます。自動化やシェルスクリプトへの組み込みに便利です。

この手順は以下の環境で動作確認しています。

・RHEL 9.4(Azure CLI 2.61.0)
・サブスクリプション: Visual Studio Enterprise(japaneast)

まずサブスクリプションIDを確認します。

# サブスクリプションIDを確認 $ az account show --query "{name:name, id:id}" -o table Name Id ------------------------------- ------------------------------------ Visual Studio Enterprise xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

次に、今月の使用コストをリソースグループ別に照会します。

# 今月のコストをリソースグループ別に照会 $ az costmanagement query \ --type ActualCost \ --timeframe MonthToDate \ --scope "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" \ --dataset-aggregation '{"totalCost":{"name":"PreTaxCost","function":"Sum"}}' \ --dataset-grouping '[{"type":"Dimension","name":"ResourceGroupName"}]' \ --query "properties.rows" \ -o table Column1 Column2 Column3 ---------- ------------------------ ------------------------- 3218.45 rg-linux-practice JPY 852.10 rg-monitoring JPY 120.00 rg-storage-backup JPY

`Column1` がコスト(日本円)、`Column2` がリソースグループ名です。`rg-linux-practice` で3,218円かかっていることが分かります。

サービス種別(VMかStorageかNetworkか)で内訳を出すには、グループ化を変更します。

# サービス種別でグループ化してコストを確認 $ az costmanagement query \ --type ActualCost \ --timeframe MonthToDate \ --scope "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" \ --dataset-aggregation '{"totalCost":{"name":"PreTaxCost","function":"Sum"}}' \ --dataset-grouping '[{"type":"Dimension","name":"ServiceName"}]' \ --query "properties.rows" \ -o table Column1 Column2 Column3 ---------- ----------------------------------- ------------------------- 2540.30 Virtual Machines JPY 920.15 Storage JPY 480.00 Bandwidth JPY 250.10 Azure App Service JPY

VMが全体の60%を占めていることが一目で分かります。「止め忘れたVMがある」「テスト後に削除し忘れたVM」がないかを確認する起点になります。

3. az consumption usage listで日次コストを確認する

特定期間の使用量を日単位で確認したい場合は `az consumption usage list` コマンドを使います。

# 直近7日間の使用コストを確認 $ az consumption usage list \ --start-date 2026-07-12 \ --end-date 2026-07-18 \ --query "[].{Date:usageStart, Resource:instanceName, Cost:pretaxCost}" \ -o table | head -15 Date Resource Cost -------------------- --------------------------- ------ 2026-07-12T00:00:00Z linuxvm-rhel94 182.40 2026-07-13T00:00:00Z linuxvm-rhel94 182.40 2026-07-14T00:00:00Z linuxvm-rhel94 182.40 2026-07-15T00:00:00Z linuxvm-rhel94 182.40 2026-07-16T00:00:00Z linuxvm-rhel94 182.40 2026-07-17T00:00:00Z linuxvm-rhel94 182.40 2026-07-18T00:00:00Z linuxvm-rhel94 182.40

`linuxvm-rhel94` が毎日182円かかっています。1ヶ月換算で約5,500円。「使っていない時間帯に停止する」だけでコストを大幅に削減できます。

予算アラートを設定してコスト超過を防ぐ

予算アラート(Budget)は、azure コスト管理で最も重要な機能のひとつです。月次コストが設定した金額の閾値(50%・80%・100%など)を超えると、指定したメールアドレスへ通知が届きます。

1. Azureポータルで予算を作成する

「コスト管理 + 請求」→「予算」→「+ 追加」の順に進みます。

設定項目は次の通りです。

スコープ:予算を適用する範囲(サブスクリプション全体 or 特定リソースグループ)
名前:予算の識別名(例: budget-learning-monthly)
リセット期間:月次(Monthly)を選択します
開始日:当月1日から設定するのが基本
金額:月次の上限金額(円)を入力します(例: 5000)

「次へ」をクリックしてアラート条件を設定します。閾値を複数設定できるので「80%でメール通知 → 100%でメール通知」の2段構えを推奨します。

2. Azure CLIで予算を作成する

ポータル操作が不要な場合、az CLIで予算を作成できます。Infrastructure as Codeとして管理する際に便利です。

# 月次予算5,000円 + 80%・100%アラートを作成 $ az consumption budget create \ --budget-name "budget-learning-monthly" \ --amount 5000 \ --category Cost \ --time-grain Monthly \ --start-date 2026-07-01 \ --end-date 2026-12-31 \ --resource-group rg-linux-practice \ --notifications '[ { "enabled": true, "operator": "GreaterThan", "threshold": 80, "contactEmails": ["tomohiro@example.com"], "thresholdType": "Actual" }, { "enabled": true, "operator": "GreaterThan", "threshold": 100, "contactEmails": ["tomohiro@example.com"], "thresholdType": "Actual" } ]' { "amount": 5000.0, "category": "Cost", "currentSpend": { "amount": 4190.55, "unit": "JPY" }, "name": "budget-learning-monthly", "timeGrain": "Monthly", "timePeriod": { "endDate": "2026-12-31T00:00:00+00:00", "startDate": "2026-07-01T00:00:00+00:00" } }

作成後、設定した予算が正しく反映されているかを確認します。

# 作成した予算の一覧を確認 $ az consumption budget list \ --resource-group rg-linux-practice \ --query "[].{Name:name, Amount:amount, CurrentSpend:currentSpend.amount}" \ -o table Name Amount CurrentSpend ------------------------ -------- -------------- budget-learning-monthly 5000.0 4190.55

現時点で4,190円使っており、予算5,000円の83.8%に達しています。80%閾値のアラートメールが届いているはずです。

3. 予算アラートが届く仕組みと確認方法

アラートは設定した閾値を超えた翌日に届きます(リアルタイムではない点に注意)。現在のアラート発火状況は次のコマンドで確認できます。

# アラート履歴を確認(Cost Managementアラート) $ az costmanagement alert list \ --scope "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/rg-linux-practice" \ --query "[].{Name:name, Type:properties.definition.type, Threshold:properties.definition.details.threshold}" \ -o table Name Type Threshold --------------------- -------- ----------- alert-80pct-triggered Budget 80

ここで、さらに深くコスト管理を学びたい方へ、Azure対応セミナーの情報をご確認ください。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、20年以上の運用経験を持つ現役エンジニアが基礎から教えます。
Azure対応セミナーの詳細を見る >>

コスト削減の実践Tips

1. 不要なVMを特定して停止・削除する

「動いているVMの一覧」を確認し、不要なものがないかチェックします。VMを「停止(割り当て解除)」すると、コンピューティング料金はかかりません(ディスク料金は残ります)。

# 実行中のVM一覧を確認 $ az vm list \ --resource-group rg-linux-practice \ --show-details \ --query "[?powerState=='VM running'].{Name:name, Size:hardwareProfile.vmSize, State:powerState}" \ -o table Name Size State ---------------- ------------- ---------- linuxvm-rhel94 Standard_B2s VM running test-vm-dev Standard_B4ms VM running # 使っていないVMを停止(割り当て解除) $ az vm deallocate \ --resource-group rg-linux-practice \ --name test-vm-dev

`Standard_B4ms` は `Standard_B2s` の4倍の料金がかかります。開発・テスト用のVMはこまめに停止するだけでコストを大幅に削減できます。

2. タグ(Tag)でコストを部署・プロジェクト別に分類する

複数のプロジェクトや担当者がAzureを共用している場合、タグによるコスト配分管理が効果的です。リソース作成時に `Project: web-app` のようなタグを付けておくと、Cost Managementでプロジェクト別に集計できます。

# VMにタグを付ける $ az vm update \ --resource-group rg-linux-practice \ --name linuxvm-rhel94 \ --set tags.Project=linux-training tags.Owner=tomohiro # タグが設定されているか確認 $ az vm show \ --resource-group rg-linux-practice \ --name linuxvm-rhel94 \ --query tags \ -o json { "Owner": "tomohiro", "Project": "linux-training" }

タグを設定した後、Cost Managementの「グループ化」で `Tag: Project` を選択すると、プロジェクト別のコスト内訳が可視化されます。

3. Azure Advisorのコスト推奨事項を確認する

Azure Advisorは未使用リソースやコスト削減の推奨事項を自動で提案します。

# Azure Advisorのコスト推奨事項を確認 $ az advisor recommendation list \ --category Cost \ --query "[].{Problem:shortDescription.problem, Impact:impact, Savings:extendedProperties.annualSavingsAmount}" \ -o table Problem Impact Savings ----------------------------------------------- ------- ------- Shutdown or resize underutilized VMs High 18200 Use reserved instances to save on VMs Medium 12000 Delete unused managed disks Medium 3600

「使用率の低いVMをシャットダウンまたはリサイズせよ」という推奨事項で年間18,200円の削減が見込まれています。定期的にAdvisorを確認する習慣をつけましょう。

トラブルシュート——予算アラートが来ない・コストが急増した時の対処

「予算アラートが来ない」場合の確認手順

予算を設定したのにメールが届かない場合、次の順序で確認します。

メールアドレスの確認:az consumption budget show コマンドで `notifications.contactEmails` が正しいか確認する
閾値の確認:現在の使用率が閾値に到達しているかを `currentSpend / amount` で計算する
スパムフィルター:Microsoft Azure Billing (billing@microsoft.com) からのメールがスパムに入っていないか確認する
アラートのタイムラグ:閾値超過から通知まで最大24時間かかる場合があります

# 予算の詳細と現在の使用状況を確認 $ az consumption budget show \ --budget-name "budget-learning-monthly" \ --resource-group rg-linux-practice \ --query "{Amount:amount, CurrentSpend:currentSpend.amount, Notifications:notifications}" \ -o json { "Amount": 5000.0, "CurrentSpend": 4190.55, "Notifications": { "Actual_GreaterThan_80_Percent": { "contactEmails": ["tomohiro@example.com"], "enabled": true, "operator": "GreaterThan", "threshold": 80.0 } } }

「コストが急増した」場合の原因特定

コストが急増した場合は、サービス別・日次でコストを絞り込んで原因を特定します。

Bandwidth(帯域)の急増:大量のデータ転送が発生した可能性。Storage AccountやVM間のアウトバウンド通信を確認する
Virtual Machinesの急増:新規VMが増えていないか確認。自動スケールが意図せず動作した場合もある
Azure Storageの急増:大容量データが新規書き込みされていないか確認

Azureポータルのコスト分析で「前の期間と比較」機能を使うと、先月比でどのサービスのコストが増えたかを一目で確認できます。

本記事のまとめ

Azure Cost Managementと予算アラートの主要な操作をまとめます。
やりたいこと コマンド / 操作
今月のコストをリソースグループ別に確認 az costmanagement query --type ActualCost --timeframe MonthToDate --dataset-grouping '[{"type":"Dimension","name":"ResourceGroupName"}]'
日次コストをリソース別に確認 az consumption usage list --start-date YYYY-MM-DD --end-date YYYY-MM-DD
月次予算とアラートを作成 az consumption budget create --budget-name NAME --amount AMOUNT --time-grain Monthly
予算一覧と現在の使用額を確認 az consumption budget list --resource-group RG
Advisorのコスト推奨事項を確認 az advisor recommendation list --category Cost
VMにタグを付けてコスト配分管理 az vm update --set tags.Project=NAME tags.Owner=NAME
不要VMを停止(コンピューティング料金をゼロに) az vm deallocate --resource-group RG --name VM_NAME
クラウドのコスト管理は「後から気づいて焦る」より「事前に仕組みを作って安心する」が鉄則です。azure コスト管理の予算アラートを設定しておけば、想定外の高額請求を事前に防げます。まずは月次予算と80%アラートを設定することから始めてみてください。

次に読む記事
・Azure CLIのインストールとログイン設定|az loginとサービスプリンシパルで自動化に備える方法
・Azure入門|仮想ネットワークとLinux仮想マシンを構築する基礎ハンズオン
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、20年以上の運用経験を持つ現役エンジニアが基礎から教えます。
Azure対応セミナーの詳細を見る >>

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。