Azure の Pay‑As‑You‑Go(従量課金)で「少し試しただけなのに、なぜか高い請求が来てしまった…」。本記事では、短時間だけ仮想マシンを使ったのに 1 か月で約 ₹450 請求された事例を例に、Azure の課金の仕組みと、学習用途でお金を無駄にしないための具体的なチェックポイントを丁寧に解説します。
Azure 従量課金で「思ったより高い請求」が出る典型パターン
まずは、よくある相談内容を整理してみます。
- 課金プラン:Pay‑As‑You‑Go(従量課金)
- 用途:学習用に 仮想マシン(VM)とディスクを短時間だけ作成
- 結果:8 月分の請求が 約 ₹450(インド通貨の例)
- 疑問:
- Azure は 秒単位・分単位で課金されるのか?
- それとも 月額固定なのか?
- 「無料プラン」に切り替えた方がいいのか?
結論から言うと、このようなケースでは、短時間しか VM を動かしていなくても、
- マネージドディスク(容量課金)
- パブリック IP アドレス(割り当て中課金、とくに静的 IP)
を削除しないまま 1 か月放置してしまったことが主な原因であることが多いです。
実際、Azure のマネージドディスクは「使った時間」ではなく プロビジョニングした容量(確保したディスクサイズ)に対して月額課金されます。
一方で、VM のコンピュート料金は「起動していた時間」ベースで課金され、課金粒度はサービスやリージョンによって異なりますが、一般的に 秒〜分単位で計算され、最低課金時間が設けられている場合があります。
Azure の課金の基本構造:月額「固定」ではなく、存在時間 × リソース
「月額 ○○円」と表示されているために、サブスク型の固定料金と誤解されがちですが、Azure の従量課金は基本的に リソースが存在していた期間に応じて按分されます。
代表的なリソースと課金単位を表にまとめると、以下のようなイメージです。
| リソース種別 | 課金の基準 | 課金粒度 | 学習用途での注意ポイント |
|---|---|---|---|
| VM コンピュート(CPU・メモリ) | 起動していた時間 | 秒〜分単位(サービスにより最低課金時間あり) | 停止(割り当て解除)すれば課金停止。ただし OS 側だけの停止では止まらない場合あり。 |
| マネージドディスク | プロビジョニングしたディスク容量(GB / GiB 単位) | 時間単位で積算(請求は月額表示だが、存在期間で按分) | VM を削除してもディスクが残っていれば課金継続。ディスクの削除を忘れない。 |
| スナップショット | 保存されているデータ量 | 時間単位で積算 | バックアップ代わりに撮りっぱなしだと、ディスクとは別に料金が積み上がる。 |
| パブリック IP(静的 / Standard など) | 割り当てられている時間 | 時間単位(多くは時間あたり課金) | VM を消しても IP を残すと「IP だけ」課金され続けることがある。 |
| パブリック IP(動的 / Basic) | VM などのリソースに関連付けられていて実際に使用されている時間 | 時間単位 | VM の停止や削除で自動的に解放される構成もあるが、設定を確認しておく。 |
| ストレージアカウント(BLOB など) | 保存データ容量+トランザクション数 | GB/月 + 10,000 トランザクション単位など | ログやバックアップを溜めっぱなしにすると、じわじわ料金が増える。 |
ポイントは、「停止したから安心」ではなく、「そのリソースが Azure 上に存在し続けていないか?」を意識することです。
マネージドディスクが主犯になりやすい理由
今回のように「VM は少ししか動かしていないのに、請求額の大半をディスクが占めている」ケースは非常に多いです。Azure のマネージドディスクは次のように課金されます。
- 実際に使った容量ではなく、確保したディスクサイズ(例:64 GiB、128 GiB…)に対して課金。
- ディスクは VM を削除しても単体リソースとして残ることがある。
- OS ディスクとは別に、データディスクを追加している場合は、その分も別々に課金。
例えば「Standard HDD 64 GiB 相当」が月額で数百円〜数百ルピー程度と表示されているとします。ここで
- OS ディスク:64 GiB
- データディスク:64 GiB
- 合計:128 GiB
といった構成を作ると、VM を起動していなくても、ディスク容量ぶんの料金が毎日積み上がっていきます。
Azure では、ディスク料金は一般に 時間あたり(1 時間ごと)で内部的に計算され、請求書では「月額 ○○」として表示されます。
今回の例で「ディスク:約 ₹352」という内訳であれば、
- 標準 HDD 64 GiB〜128 GiB クラスのディスクが 1 か月近く存在していた
- あるいは、複数のディスク・スナップショットが残り続けていた
というイメージになります(正確な金額はリージョンやディスク種別によって異なります)。
ディスクが残りがちなパターン
ディスクが「こっそり」残る典型ケースは次の通りです。
- VM 削除時の画面で、ディスクやネットワークを削除するチェックを外してしまった
- ポータルでは VM だけを削除し、ディスクを別用途に使うつもりだったが、結局そのまま放置
- テンプレートやイメージを作る過程で、ディスクやスナップショットが複数生成され、その一部を消し忘れた
学習用であれば、使い終わったリソースグループを丸ごと削除するのが最も安全です(重要なものを入れない専用の「学習用 RG」を作っておくのがおすすめ)。
VM コンピュート料金:起動時間に応じた従量課金
次に、VM 本体のコンピュート料金について整理します。Azure の VM は、
- 起動している時間(Starting / Running 状態)のみ課金
- 停止していても「割り当て解除(deallocated)」されていないと、コンピュート料金が継続する場合がある
- 課金粒度はサービスによって異なり、おおむね秒〜分程度の単位で計算
という仕様です。
Azure ポータルの「停止」と「停止(割り当て解除)」の違い
ここも非常に誤解されやすいポイントです。
| 状態 | Azure ポータル表示 | コンピュート料金 | 説明 |
|---|---|---|---|
| OS 内からシャットダウン | 停止 | 継続する場合あり | VM は止まっているが、リソースとしては割り当て維持の状態になる構成もある。 |
| ポータル(または CLI)から停止 | 停止(割り当て解除) | 停止 | CPU/メモリの割り当てが解放され、コンピュート料金はかからない。ただしディスクや IP は別料金。 |
| 実行中 | 実行中 | 課金 | 利用時間に応じて従量課金。 |
学習用途では「VM を止めたからもう料金は出ないだろう」と安心してしまいがちですが、「停止(割り当て解除)」になっているかどうかを必ず確認しましょう。
短時間だけ動かした場合のイメージ
例えば、仮に 1 時間あたり ₹40 と仮定した VM を 2 時間だけ起動した場合、
- コンピュート料金:概ね ₹80 前後(最低課金時間や切り上げなどにより多少前後)
となります。この規模の VM 利用であれば、今回の請求例である ₹450 のうち、コンピュート部分が ₹83 程度であった、という感覚と近いでしょう(実際の単価は VM サイズ・リージョンで異なります)。
パブリック IP・ネットワーク料金:静的 IP の消し忘れに注意
次に、意外と見落とされるのが パブリック IP やネットワーク関連の料金です。
- 静的パブリック IP(Static):作成された時点から削除されるまで、時間単位で課金される。
- 動的パブリック IP(Dynamic):VM の起動中だけ課金される構成が多いが、SKU や構成によって挙動が異なる。
Standard SKU のパブリック IP や、静的 IP を「将来また使うかもしれないから」と残しておくと、それだけで 毎月数十〜数百円程度課金されることがあります。
今回の例で「ネットワーク/IP:約 ₹14」となっているのは、おそらく 静的 IP や Standard IP が 1 か月弱残り続けたことによるものと考えられます。
今回の ₹450 の内訳をイメージしてみる
ここまでを踏まえると、今回のような請求は次のような構成が想定されます。
| 項目 | 想定リソース | 金額の目安(例) | 補足 |
|---|---|---|---|
| ディスク料金 | Standard HDD 64〜128 GiB の OS ディスク(+α) | 約 ₹352 | ディスクが 1 か月近く残り続け、容量課金されたと想定。 |
| VM コンピュート | B 系などの小さな VM サイズを数時間〜十数時間利用 | 約 ₹83 | 実際に起動していた時間に応じた従量課金。 |
| ネットワーク / IP | 静的パブリック IP 1 個 | 約 ₹14 | IP が削除されずに残っていた時間ぶんの料金。 |
| 合計 | — | 約 ₹450 | 「短時間しか使っていないのに高い」と感じる典型的な構成。 |
あくまで一例ではありますが、VM 本体よりも「消し忘れたディスクと IP」が主犯になっていることが分かります。
今すぐやるべき対処:不要なリソースを削除する
すでに請求が発生してしまっている分は、基本的に 後から遡って止めることはできません。しかし、これ以上増やさないために、まずは「今残っているリソース」を確認して削除しましょう。
Azure ポータルで孤立リソースを探す手順
代表的な確認手順は次の通りです。
- Azure ポータルにサインインする。
- 左メニューから [リソース グループ] を開く。
- 学習用に使っていたリソースグループ(例:
rg-lab-xxx)を選択。 - 一覧に表示されるリソースのうち、次の種類を重点的にチェック。
- ディスク(Disks)
- スナップショット(Snapshots)
- イメージ(Images)
- パブリック IP アドレス(Public IP addresses)
- NIC(Network interfaces)
- ネットワーク セキュリティ グループ(NSG)
- 今後確実に不要なものは、個別に [削除] を実行。
学習用で「このリソースグループには重要なものは入っていない」と言い切れるのであれば、
- リソースグループを選択し、[リソース グループの削除] を実行するのが手っ取り早い
という選択肢もあります。
CLI でリソースグループごと削除する例
Azure CLI を使っている場合は、次のようにリソースグループごと削除できます。
az group delete -n rg-lab-sample
PowerShell なら次の通りです。
Remove-AzResourceGroup -Name "rg-lab-sample"
ただし、誤って重要なリソースを消してしまうリスクもあるため、「学習専用の RG 名」を決めて運用するのがおすすめです。
請求の内訳を確認して「何が高かったのか」を把握する
原因をはっきりさせるためには、Azure ポータルで どのサービス・どのリソースがいくらかかっているかを確認するのが一番確実です。Azure には Cost Management + Billing というコスト可視化の仕組みが用意されています。
Cost Analysis でリソース別コストを確認する手順
- Azure ポータルで、左メニューから [コストの管理 + 課金] を開く。
- [コスト分析] を選択。
- 対象サブスクリプションと期間(例:2025/08/01〜2025/08/31)を指定。
- ビューで [リソース別コスト] または [コスト(リソースごと)] を選択。
- 表形式表示に切り替えて、1 行ずつどのリソースにいくらかかっているか確認する。
ここで、ディスクやパブリック IP に高い金額が付いていないかをチェックすると、今回のようなケースの犯人がほぼ特定できます。
今後のための防御策 ①:予算(Budget)とコストアラートを設定
同じ失敗を繰り返さないために、まずは 「一定額を超えたらメールで教えてくれる仕組み」を作っておくのがおすすめです。Azure では 予算(Budgets) と コストアラート を設定できます。
簡単な予算アラートの作り方(イメージ)
- [コストの管理 + 課金] → [コスト管理] → [予算] を開く。
- [追加] ボタンから新しい予算を作成。
- 期間(毎月 / 四半期 / 年間)と 上限額(例:₹500)を設定。
- 50%、80%、100% に到達したらメール通知するようにアラート閾値を設定。
- 通知先メールアドレスを登録して完了。
学習用途であれば、
- 月間 ₹300〜₹500 程度の低めの予算を仮設定しておく
- 金額が近づいたらいったん全部削除して振り返る
といった運用にすることで、クレジットカードの請求書を見て初めて気づくという状況を避けられます。
今後のための防御策 ②:無料枠・低コスト枠を賢く使う
学習目的なら、いきなり大きな VM を従量課金で立てるのではなく、まずは 「無料枠」や「学習用に安く抑えられる枠」を活用しましょう。
Azure 無料アカウントの基本
Azure の「無料アカウント」は、一般的に次のような構成になっています。
- 最初の 30 日間に使えるクレジット(約 $200 / ₹16,500 相当)
- 12 か月間無料で使える主なサービス(VM の一部、ストレージ、DB など)
- 期間の制限なく「常に無料」のサービス(Functions、App Service の一部など)
例えば VM であれば、無料枠の対象として B1S / B2 系の小さな VM が 750 時間/月 程度無料といった条件が用意されている場合があります。
ただし、
- 無料になるのは 特定の VM サイズ・特定の台数まで
- 無料枠を超過した分や、無料対象外のサービスは通常の従量課金
である点に注意が必要です。
無料アカウントで請求が発生する代表的な理由
Microsoft 公式のドキュメントでも、無料アカウントで課金が発生する典型例として以下が挙げられています。
- 無料枠対象外の VM サイズを使った
- 無料枠を超える時間数だけ VM を動かした
- ディスクやパブリック IP、ログ、バックアップなどの周辺リソースを消し忘れた
- 無料期間(12 か月)を過ぎて、同じ構成をそのまま使い続けた
今回の ₹450 のケースも、まさに「ディスク・IP の消し忘れ」という典型パターンに当てはまります。
Microsoft Learn サンドボックスと最近の状況について
学習用の環境として、以前は Microsoft Learn のサンドボックスがよく紹介されていました。これは、Learn のハンズオンモジュールからボタンひとつで一時的な Azure サブスクリプション(4 時間前後)を借りる仕組みで、受講者は自分のサブスクリプションに影響を与えずに演習できるというものです。
しかし、Microsoft Q&A の最新情報によると、多くの Microsoft Learn サンドボックスは 2025 年時点で提供終了となり、今後の演習は自分の Azure サブスクリプションを使って行う形式に移行しつつあると案内されています。
そのため、これから学習を始める場合には、次のようなパターンが現実的です。
- Azure 無料アカウントを作成し、学習用サブスクリプションとして使う
- 演習ごとに 専用のリソースグループを作成し、終わったらグループごと削除する
- コスト管理 + 課金で 予算アラートを設定し、予算上限を超えそうになったら通知を受ける
「サンドボックスだから勝手に消えてくれる」と思い込むのではなく、自分のサブスクリプションを使う前提で、削除まで含めた手順を身につけることが、今後ますます重要になります。
今後のための防御策 ③:リソース構成と命名のベストプラクティス
学習用途でコストを抑えるには、単に「小さい VM を選ぶ」だけでなく、構成や運用ルールにも工夫を入れると効果的です。
リソースグループ・名前の付け方
- 学習用のリソースグループは
rg-lab-yyyymmのように 用途が一目で分かる名前にする。 - VM 名・ディスク名などにも、
labやtestといったプレフィックスを付ける。 - リソースに タグ(Owner, Purpose, ExpireDate など)を付けておく。
- 例:
Owner=yourname,Purpose=training,ExpireDate=2025-12-31
- 例:
タグは Cost Management でも集計に使えるため、「自分が作った学習用リソースだけのコスト」を簡単に確認できます。
ディスクとバックアップの扱い
- テスト用 VM では、可能な限り小さいディスクサイズから始める。
- 本当に必要な場合を除き、スナップショットやバックアップを多重に作らない。
- 検証が終わったら、VM を削除するだけでなく ディスク・スナップショットも削除する。
ネットワークの扱い
- 学習用途で固定 IP が不要なら、動的 IP + Bastion や VPN の利用も検討する。
- Standard パブリック IP や Application Gateway など、単価がやや高めなリソースは使い道を理解してから利用する。
よくある勘違いを整理しておく
最後に、今回のケースに直接関係する「よくある勘違い」をまとめておきます。
| 勘違い | 実際の動き | ポイント |
|---|---|---|
| 「VM を停止したから料金は止まる」 | VM コンピュートは止まるが、ディスクや静的 IP は残っている限り課金。 | 停止(割り当て解除)かどうか確認し、不要なディスクや IP は削除する。 |
| 「料金表が月額だから固定料金」 | 実際には時間あたりで計算され、請求書で月額換算で表示されているだけ。 | ただし、消し忘れると 1 か月分フルに請求されるので、結果的に「月額固定」っぽく見える。 |
| 「VM を削除したら全部消える」 | ディスクや IP、NIC などが孤立リソースとして残る場合がある。 | リソースグループ内のリソース一覧を最後に確認する習慣をつける。 |
| 「無料アカウントだから絶対に請求されない」 | 無料枠を超えた分や無料対象外サービスの利用は、通常の従量課金となる。 | 無料枠の条件を必ず確認し、予算アラートで「想定外の超過」を防ぐ。 |
| 「Microsoft Learn サンドボックスなら自動で全部消える」 | 多くのサンドボックスは提供終了方向で、自分のサブスクリプションで演習するケースが増えている。 | 今は 自分のサブスクリプションを前提に、削除まで含めた運用を覚える必要がある。 |
今日からできる「学習時のコスト事故」防止チェックリスト
最後に、学習で Azure を使うときに、個人的におすすめしたい簡易チェックリストをまとめます。
環境を作る前に
- Azure 無料アカウントの 無料枠条件を一度ざっと確認しておく。
- 学習用の 専用リソースグループ名(例:
rg-lab-202512)を決めておく。 - 予算(Budget)とコストアラートを設定し、月間の上限額を決めておく。
環境を作るときに
- VM は B 系などの小さな SKUから始める。
- ディスクサイズは最小限にし、不要なデータディスクを追加しない。
- パブリック IP は、本当に静的 IP が必要か検討し、不要なら動的 IP+Bastion などを検討。
- リソースには タグ(Owner / Purpose / ExpireDate)を必ず付ける。
学習が終わったら
- 使ったリソースグループを開き、
- VM
- ディスク
- スナップショット
- パブリック IP
- NIC
- 大丈夫であれば、リソースグループごと削除する。
- Cost Analysis で当月のコストをざっと眺め、
- ディスク
- ネットワーク
- 監視サービス(Log Analytics など)
まとめ:VM を止めるだけでなく、ディスクと IP を「消す」までがセット
今回の ₹450 という請求の主因は、
- ディスク(容量課金)を削除せずに残していたこと
- 静的パブリック IP(割り当て中課金)を消し忘れていたこと
にあると考えられます。VM のコンピュート料金自体は少額であっても、ディスクと IP が 1 か月近く残っていれば、それだけで数百ルピー(数百円〜)の請求になることは珍しくありません。
今後同じような事態を避けるためには、
- 「停止」ではなく「削除」までをセットで考える
- 学習用のリソースは 専用リソースグループにまとめておき、終わったら丸ごと削除する
- 無料枠・小さい SKU を活用しつつ、予算アラートで上限を決めておく
- Cost Management で 定期的にコストを振り返る習慣をつける
といった「クラウドならではのお作法」を身に付けることが重要です。
Azure の従量課金は、うまく使えば「使ったぶんだけ」という非常に柔軟で便利な仕組みです。今回のような「初学者あるある」のつまずきをきっかけに、ぜひ リソースの後片付けとコスト管理をセットで身につけて、安心して Azure 学習を進めていきましょう。

コメント