Contents
全体像と基本方針
| フェーズ | 主な活動 | 期待効果 |
|---|---|---|
| 可視化 | Cost Management のダッシュボード構築、タグ付与・ポリシーでデータ整備 | リソース単位の費用がリアルタイムに把握できる |
| 自動削減 | RI/Savings Plans の最適化、Automation による未使用リソース停止、Spot VM へのジョブ移行 | 10 %〜20 % の直接コスト削減 |
| 継続的改善 | Azure Policy・Role‑Based Access Control (RBAC) によるガバナンス、Power BI レポートで KPI 可視化 | 効果の定量評価と組織全体への浸透 |
※ 本稿は 2026 年 4 月時点の Azure ポータル画面・機能を前提にしています。Microsoft が提供する公式ドキュメント(Azure Cost Management)を参照し、随時最新情報へアップデートしてください。
Step 1: 現状分析 ― Cost Management と Advisor の設定
目的
- サブスクリプション全体の支出構造とトレンドを把握
- 未使用・過剰リソースに関する Advisor 推奨事項を取得
手順詳細
| # | 操作内容 | 設定ポイント / ベストプラクティス |
|---|---|---|
| 1 | Cost Management → コスト分析 を開く | デフォルトは過去 30 日間。 期間は「過去 12 か月」→「サービス別」「タグ別」に切り替えてトレンドを把握 |
| 2 | 予算(Budget) を作成 例: 月額 ¥500,000、通知先は Teams の専用チャンネル |
「閾値 90 %」と「閾値 110 %」でアラート設定。 予算超過時に自動でメール+Teams 通知が届く |
| 3 | Advisor → コスト最適化 タブを有効化 ※「推奨事項の自動取得」をオンにする |
推奨は 24 時間ごとに更新。未使用 VM、サイズ過大 VM、非推奨 SKU が一覧化 |
| 4 | リソースタグ を標準化CostCenter=Sales、Env=Prod など |
Azure Policy → 「必須タグ」ポリシーで新規作成時に自動付与。タグがないリソースは Non‑Tagged としてレポートにハイライト |
| 5 | ダッシュボード に「部門別コスト」「未使用リソース」ウィジェットをピン留め | ダッシュボードは経営層・技術部門それぞれ用意し、閲覧権限 (RBAC) を分離 |
参考リンク(公式)
まとめ(Step 1)
数クリックで「費用の見える化」基盤が完成します。タグ付与とポリシー が鍵となり、以降の自動削減施策が正確に機能する土台を構築できます。
Step 2: 削減施策 ― RI・Savings Plans、未使用リソース自動削除、Spot VM の活用
1. リザーブド インスタンス (RI) と Savings Plans の最適選定
| 判定基準 | 推奨プラン |
|---|---|
| 同一サイズ・リージョンの VM が 3 台以上、かつ CPU 使用率が 70 % 以上(過去 12 か月) | 1 年 RI(標準割引 35 %) |
| ワークロードが季節変動し、利用パターンが不安定 | Savings Plans(最大 30 % 割引) |
実装手順
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# PowerShell: 使用率上位 VM を抽出し RI 推奨リストを CSV 出力 $report = Get-AzConsumptionUsageDetail -StartDate (Get-Date).AddMonths(-12) -EndDate (Get-Date) $vmIds = $report | Where-Object {$_.MeterCategory -eq "Virtual Machines"} | Group-Object ResourceId | ForEach-Object { $usage = $_.Group | Measure-Object Quantity -Sum [PSCustomObject]@{ VMId = $_.Name AvgCPU = ($usage.Sum / 720) # 仮に月 30 日 * 24h として平均算出 TotalCost = $usage.Sum } } | Where-Object {$_.AvgCPU -ge 0.7} $vmIds | Export-Csv -Path "./RI_Recommendation.csv" -NoTypeInformation |
ポイント:
Get-AzConsumptionUsageDetailは Azure Cost Management API の PowerShell ラッパーです。スクリプトは Azure Automation に登録し、月次で実行すると最新の推奨が自動更新されます。
2. 未使用リソースの自動検出・停止
| リソース | 判定条件例 | 自動処理 |
|---|---|---|
| VM | 過去 30 日間 CPU 平均 = 0 % | 停止 → 通知 (Teams) |
| ディスク | アタッチされていない(Unattached) | 削除前にスナップショット取得、30 日保管後自動削除 |
| Public IP | 未使用かつ SKU が Basic | 解放 |
PowerShell スクリプト例(Automation Runbook)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# 1. CPU が 0% の VM を停止 $idleVms = Get-AzMetric -ResourceId $_.Id -MetricName "Percentage CPU" ` -StartTime (Get-Date).AddDays(-30) -EndTime (Get-Date) | Where-Object {$_.Data.Average -eq 0} foreach ($vm in $idleVms) { Stop-AzVM -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name -Force } # 2. Unattached ディスクを削除(スナップ取得後) $disks = Get-AzDisk | Where-Object {$_.ManagedBy -eq $null} foreach ($d in $disks) { $snap = New-AzSnapshotConfig -SourceUri $d.Id -Location $d.Location New-AzSnapshot -ResourceGroupName $d.ResourceGroupName -SnapshotName "$($d.Name)-snap" -Snapshot $snap Remove-AzDisk -ResourceGroupName $d.ResourceGroupName -DiskName $d.Name -Force } |
ベストプラクティス:Automation Runbook は 週次 実行し、結果は Log Analytics に送信。Log Analytics のクエリで「停止した VM 数」や「削除ディスク容量」を可視化できます。
3. Spot VM とスケールセットの活用
| シナリオ | 推奨構成 |
|---|---|
| バッチ処理・開発/テスト環境 | Spot VM プール(割引率 70 %〜90 %) |
| 負荷変動が大きい Web アプリ | Virtual Machine Scale Set (VMSS) に自動スケーリングルールを設定 |
スケーリング ポリシー例
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
{ "name": "cpuScaleOut", "properties": { "metricTrigger": { "metricName": "Percentage CPU", "metricResourceUri": "/subscriptions/<subId>/resourceGroups/<rg>/providers/Microsoft.Compute/virtualMachineScaleSets/<vmss>", "timeGrain": "PT1M", "statistic": "Average", "threshold": 80, "direction": "Increase", "evaluationFrequency": "PT5M", "cooldown": "PT10M" }, "scaleAction": { "direction": "Increase", "type": "ChangeCount", "value": "2", "cooldown": "PT10M" } } } |
注意:Spot VM は「中断可能」なワークロードに限定し、必ず代替手段(再キューイングやチェックポイント)を実装してください。
4. Azure Hybrid Benefit の活用
| 対象 | 割引率 (参考) |
|---|---|
| Windows Server VM | 最大 20 % 割引 |
| SQL Server (ライセンス持ち込み) | 最大 40 % 割引 |
設定手順
1. ポータル → 「ライセンス」 → 「ハイブリッドベネフィット」へ移動
2. 対象 VM の「ハイブリッドベネフィットを有効にする」にチェック
まとめ(Step 2)
RI/Savings Plans の計画的導入、未使用リソースの自動停止、Spot VM の割安利用で 年間 10〜20 % の削減が実現できます。スクリプトは Azure Automation に保存し、運用負荷を最小化しましょう。
Step 3: 継続的改善 ― ガバナンスとデータドリブンレビュー
1. ポリシーと RBAC による統制基盤
| 項目 | 実装例 |
|---|---|
| タグ必須ポリシー | DeployIfNotExists → タグが無いリソース作成時に自動付与 |
| サイズ上限制御 | AllowedValues で VM の SKU を「Standard_B2s」以下に限定 |
| 予算超過ロック | カスタム Azure Policy:予算アラート > 110 % 時、対象リソースのスケールアウトを自動的に停止 |
ポリシー作成例(JSON)
|
1 2 3 4 5 6 7 8 9 10 |
{ "if": { "field": "Microsoft.Compute/virtualMachines/sku.name", "notIn": ["Standard_B2s","Standard_B1ms"] }, "then": { "effect": "deny" } } |
2. データドリブンレビューのフレームワーク
| フェーズ | 主なアウトプット |
|---|---|
| 月次 | Power BI ダッシュボード:総コスト、部門別支出、未使用リソース数 |
| 四半期 | コスト削減 KPI レポート: ・総削減率 ・自動化実装率(スクリプト・Policy) |
| 年次 | 次年度予算策定資料:過去実績とシナリオ別シミュレーション |
Power BI テンプレート活用手順
- Azure Cost Management の Export to Power BI 機能でデータセットを取得
- Microsoft が提供する公式テンプレート(Cost Management template)をインポート
- カスタムビジュアル 「タグ別コスト」 と 「未使用リソース」 を追加し、部門ごとの KPI を可視化
3. アラートと自動修復フロー
| トリガー | 実行アクション |
|---|---|
| 予算利用率 90 % 超過 | Teams に通知 → 担当者が Azure Policy の例外申請を開始 |
| 予算利用率 110 % 超過 | 自動で Scale‑In (VMSS) または Stop‑Deallocate (単体 VM) を実行し、コスト抑制 |
Logic Apps での自動フロー例
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
{ "definition": { "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#", "actions": { "Stop_VM": { "type": "ApiConnection", "inputs": { "method": "post", "host": { "connectionName": "azureautomation", "operationId": "runbook" }, "path": "/runbooks/StopIdleVMs/start" } } }, "triggers": { "When_budget_exceeds_110_percent": { "type": "Recurrence", "recurrence": { "frequency": "Day", "interval": 1 } } } } } |
まとめ(Step 3)
AI 機能に依存せず、ポリシー・RBAC・Power BI を組み合わせたガバナンス体制を構築すれば、削減施策の抜け漏れが防げます。自動アラートと修復フローで「予算超過 → 手動対応」の遅延リスクも低減できます。
中小企業特有の課題と運用ポイント
| 課題 | 解決策(実装例) | 効果 |
|---|---|---|
| 人手不足で日次モニタリングが困る | Azure Automation + Logic Apps で 週次レポート自動生成 → Teams に配信 | 担当者はレポートを閲覧するだけで済む |
| 予算超過リスクが高い | 予算アラート(90 %/110 %)+ Azure Policy の「自動スケールイン」 | 超過時に即座にリソース削減、財務部門へのエスカレーションも自動化 |
| 外部ベンダーとのコスト透明性が低い | Power BI で 共有ダッシュボード を作成し、閲覧権限だけ付与 | データ改ざん防止とリアルタイム可視化 |
| スキルギャップ(PowerShell・IaC) | 社内ハンドブック(本稿)+ Microsoft Learn のラーニングパスを推奨 | スタッフの自走力向上 |
ポイント:すべての設定は「最小権限」(Principle of Least Privilege) を前提に、役割ベースアクセス制御 (RBAC) で担当者ごとに適切なスコープを付与してください。
実装チェックリストと効果測定指標
A. チェックリスト(完了判定基準)
| # | 実装項目 | 完了条件 |
|---|---|---|
| 1 | Cost Management の予算・アラート設定 | Teams にテスト通知が届くこと |
| 2 | Advisor のコスト最適化推奨表示有効化 | 「未使用 VM」等の項目が一覧に出る |
| 3 | タグ付与ポリシー(CostCenter、Env)作成 | 新規リソースで自動タグ付与確認 |
| 4 | Automation Runbook:未使用 VM 停止スクリプト登録 | 週次実行後に停止ログが出力 |
| 5 | RI/Savings Plans 推奨レポート生成パイプライン構築 | CSV が自動で Azure Storage に保存 |
| 6 | Spot VM プール とジョブキューの設定 | バッチ処理が Spot VM で実行され、コスト削減率が記録 |
| 7 | Azure Hybrid Benefit の有効化 | 対象 VM の「ハイブリッドベネフィット」フラグがオン |
| 8 | Power BI ダッシュボード(部門別コスト・未使用リソース)公開 | 関係者が閲覧でき、最新データが自動更新 |
| 9 | 予算超過時の自動スケールイン Policy 設定 | テストで 110 % 超過シナリオを再現し、VM が停止 |
B. 効果測定指標(導入後 3 カ月)
| メトリクス | 計算式・取得元 | 目標値例 |
|---|---|---|
| 総コスト削減率 | (導入前月平均 - 導入後月平均) / 導入前月平均 × 100(Cost Management) |
≥ 10 % |
| 未使用リソース削除数 | Automation Runbook 実行ログの「停止/削除」件数 | ≥ 5 台/月 |
| RI/Savings Plans カバレッジ率 | 対象リソース金額 ÷ 全 VM 金額 × 100(Cost Management) |
≥ 70 % |
| Spot VM 利用比率 | Spot 使用時間 ÷ 総 VM 時間(Power BI) |
≥ 30 % |
| 予算超過アラート対応速度 | アラート発生 → 対応完了までの平均時間(Log Analytics) | ≤ 4 時間 |
| 自動化実装率 | 「Automation / Policy」項目数 ÷ 全削減施策数 × 100 | ≥ 80 % |
測定サイクル:月次で KPI を更新し、四半期ごとに経営層へレポート。目標未達の場合は原因分析(例: ポリシー未適用)を実施し、改善タスクを追加。
最終まとめと次のアクション
- 可視化基盤 – Cost Management と Advisor の設定だけで、全リソースの支出構造が把握できる。タグ・ポリシーは必ず導入。
- 自動削減 – RI/Savings Plans の計画的購入、Automation による未使用リソース停止、Spot VM へのジョブ移行で 10〜20 % のコストダウンが期待できる。
- 継続的改善 – ポリシー・RBAC・Power BI を組み合わせたガバナンス体制を構築し、予算超過時の自動スケールインやアラート対応でリスクを最小化する。
- 中小企業向け運用 – 週次レポートと共有ダッシュボードで人手不足をカバーし、外部ベンダーとの KPI も透明化できる。
今すぐ取るべき 3 つのアクション
| # | アクション | 実施期限 |
|---|---|---|
| 1 | Cost Management の予算とアラート を作成し、Teams 通知をテストする | 本日〜7 日以内 |
| 2 | Automation Runbook(未使用 VM 停止)を作成し、週次スケジュールで有効化 | 今月末まで |
| 3 | Power BI ダッシュボード をインポートし、部門別コストビューを経営層に共有 | 次回経営会議前 |
これらのステップを順番に実施すれば、**「見える化」→「自動削減」→「継続的改善」のサイクルが即座に機能し始めます。
本ハンドブックは 6 ヶ月ごとに内容をレビューし、Azure の新機能や価格改定に合わせて更新してください。