この記事では、Azure(Microsoft Azure)の仮想マシン無料枠の具体的な上限と、何をすると課金が始まるのか(課金境界)を整理します。想定環境はAzure無料アカウントまたはAzure Pay-As-You-Goサブスクリプション(B1ls・B1sサイズのVM)を使用しているケースです。
さらに、Azure CLIの
az vm deallocate コマンドで課金を確実に止める方法と、az consumption budget で予算アラートを設定する手順を解説します。Azureの月額コストを自分でコントロールしたい方は、Azureの実践スキルを体系的に学べる講座も参考にしてください。この記事のポイント
・Azure無料枠のVMは月750時間が上限(同時起動台数に比例して消費)
・「停止」と「割り当て解除」は別物。az deallocateで完全に止める
・az consumption usage listで使用量をCLIから即時確認できる
・az consumption budget createで予算超過アラートを事前に仕込む
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
Azure仮想マシン無料枠の種類と上限を整理する
Azureには「無料VM」と呼べる枠が2種類あります。混同しやすいため最初に整理します。・Azure無料アカウント(12か月限定):新規アカウント開設から12か月間、B1sサイズ(vCPU 1個・メモリ1 GB)の仮想マシンを月750時間まで無料で利用できます。
・Always Free(恒久無料):B1lsサイズ(vCPU 1個・メモリ0.5 GB)のLinux VMを月750時間まで無料で利用できます(Windowsは対象外)。
どちらも「月750時間」という上限は同じです。1台を24時間動かし続けると1か月あたり約720時間になるため、1台だけならほぼ収まります。しかし2台を同時に起動すると使用量の消費ペースが2倍になるため、約15日で上限に達します。
また、無料枠が適用されるのはコンピューティング(CPU・メモリ)コストのみです。マネージドディスク(OSディスク)やパブリックIPアドレスは別途課金対象となります。ストレージは月32 GBまで無料枠がありますが、それを超えると費用が発生します。
「停止」と「割り当て解除」の課金の違い
Azureの課金トラブルで最も多いのが、VMを「停止」したつもりが「割り当て解除」になっておらず、コンピューティング費用が発生し続けるケースです。1. 停止(Stopped)とは
OSをシャットダウンした状態です。VMは「停止済み」と表示されますが、Azureの物理ホスト上で仮想マシンのリソース(vCPU・メモリ)は確保されたままです。このためコンピューティング費用は課金され続けます。この状態は
az vm stop コマンドを実行したときに起こります。OSはシャットダウンされますが、Azureのコンピューティングリソースは確保されたままになります。2. 割り当て解除(Deallocated)とは
VMが割り当て解除状態になると、Azureの物理ホスト上のリソース予約が完全に解放されます。この状態ではコンピューティング費用は発生しません。ただし、アタッチされたマネージドディスクと静的パブリックIPアドレスの費用は引き続き発生します。Azureポータルの「停止」ボタンは、近年のポータル更新により割り当て解除も同時に行うよう変更されました。しかし確実に割り当て解除されているかどうかはCLIで確認するのが安全です。
Azure CLIで使用量を確認する手順
1. az loginで認証する
まずAzure CLIをインストールし、アカウントにログインします。# Azure CLIのログイン(ブラウザが開きます) az login # サブスクリプション一覧を確認する az account list --output table # 使用するサブスクリプションを設定する az account set --subscription "サブスクリプションID"
2. az vm listでVMの電源状態を確認する
全VMの一覧と電源状態を確認します。ポイントはPowerState の列です。# リソースグループ内の全VMと電源状態を一覧表示する az vm list --resource-group myResourceGroup --show-details --output table
Name ResourceGroup PowerState ------- ---------------- ---------------- myVM1 myResourceGroup VM running myVM2 myResourceGroup VM stopped myVM3 myResourceGroup VM deallocated
VM stopped は停止しているが割り当てが残った状態(課金継続)、VM deallocated が完全停止(コンピューティング課金停止)です。3. az vm deallocateでVMを完全停止する
VMを割り当て解除して課金を止めます。# VMを割り当て解除する(コンピューティング課金が止まる) az vm deallocate --resource-group myResourceGroup --name myVM1 # 割り当て解除の完了を確認する az vm show --resource-group myResourceGroup --name myVM1 --query "provisioningState"
"Succeeded" と返ってくれば割り当て解除が完了しています。次に az vm list --show-details で PowerState が VM deallocated になっていることを確認してください。4. az consumption usage listで使用量を確認する
今月の使用量を請求期間ベースで確認します。# 今月の使用コストをサービス別に確認する az consumption usage list --start-date 2026-10-01 --end-date 2026-10-31 --output table # 仮想マシン関連の費用だけを絞り込む az consumption usage list --start-date 2026-10-01 --end-date 2026-10-31 --query "[?contains(consumedService, 'Microsoft.Compute')]" --output table
az consumption usage list コマンドには課金閲覧の権限(Billing Reader)が必要です。権限がない場合は AuthorizationFailed エラーが返ります。その場合はAzureポータルの「コストの管理と請求」画面でも同等の情報を確認できます。az consumption budgetで予算アラートを設定する手順
無料枠の上限に近づいたときにメール通知を受け取るには予算アラートを使います。1. アクショングループを作成する(通知先の設定)
# メール通知用のアクショングループを作成する az monitor action-group create --resource-group myResourceGroup --name "budget-alert-group" --short-name "bdgtgrp" --email-receivers name=adminMail emailAddress=your-email@example.com
2. 予算とアラートを作成する
# 月3USD(約450円)の予算を設定する # 無料枠オーバー初期検知用の低い閾値を設定する例 az consumption budget create --budget-name "monthly-free-tier-watch" --amount 3 --category Cost --time-grain Monthly --start-date 2026-10-01 --end-date 2027-09-30 # 作成した予算の一覧を確認する az consumption budget list --output table
budget create コマンドで作成した予算は、ポータル上で通知ルールを追加できます。無料枠超過に気づいたときのトラブルシュート
【確認ポイント1】VMが「VM stopped」になっていないか確認する
課金が止まっていると思っていても、az vm list --show-details の PowerState が VM stopped になっている場合はコンピューティング課金が継続しています。az vm deallocate を再実行して VM deallocated に変えてください。【確認ポイント2】残存パブリックIPアドレスを確認する
VMを削除してもパブリックIPアドレスリソースが残っている場合、Static(静的)設定のIPは課金が続きます。# 残っているパブリックIPアドレスを一覧で確認する az network public-ip list --output table # 不要なパブリックIPを削除する az network public-ip delete --resource-group myResourceGroup --name myPublicIP
【確認ポイント3】無料枠の適用期間(12か月)が切れていないか確認する
Azure無料アカウントの12か月限定特典は期間終了後、自動的にPay-As-You-Go料金に切り替わります。アカウント作成日をAzureポータルの「サブスクリプション」画面で確認し、期間内かどうかをチェックしてください。本記事のまとめ
| やりたいこと | コマンド |
|---|---|
| VMの電源状態を確認する | az vm list --show-details --output table |
| VMを完全停止(課金停止)する | az vm deallocate --resource-group <rg> --name <vm> |
| 今月の使用コストを確認する | az consumption usage list --start-date <date> --end-date <date> |
| 予算アラートを設定する | az consumption budget create --budget-name <name> --amount <n> |
| 余分なパブリックIPを削除する | az network public-ip delete --resource-group <rg> --name <ip> |
az vm deallocate コマンドで確実に割り当て解除し、az consumption budget create で予算アラートを設定しておくことで、想定外の請求を未然に防ぐことができます。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら
- 前のページへ:Azure仮想マシン作成をARMテンプレートで完全自動化|Bicepで再現性を高める実践手順
- この記事の属するカテゴリ:Azureへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。
登録無料・いつでも解除できます