Azure VMとAzure Functionsの違いとは?初心者向けに特徴・使い分け・選び方をわかりやすく解説

Azure VMとAzure Functionsの違いとは?初心者向けに特徴・使い分け・選び方をわかりやすく解説

結論として、Azure VMは仮想サーバーを利用するサービス、Azure Functionsはイベントをきっかけにプログラムを実行するサーバーレスサービスです。

どちらもMicrosoft Azureでアプリケーションを実行できますが、管理方法や用途が大きく異なります。IT業務では「業務システムを動かしたい」「ファイルがアップロードされたら自動処理したい」といった場面で利用されるため、それぞれの特徴を理解しておくことが重要です。

Azure VMとAzure Functionsとは

Azure VMとは

Azure VM(Azure Virtual Machines)は、Microsoft Azure上でWindows ServerやLinuxの仮想サーバーを作成できるIaaS(Infrastructure as a Service)です。

オンプレミスの物理サーバーと同じようにOSへログインし、アプリケーションのインストールや設定変更、Windows Updateなどを自由に行えます。

サーバーの管理権限を持つため自由度は高い一方、OSの保守やセキュリティ対策も利用者が実施する必要があります。

Azure Functionsとは

Azure Functionsは、イベントをトリガーとしてプログラムを実行するFaaS(Function as a Service)です。

サーバーを構築・管理する必要がなく、コードだけをデプロイすれば実行できます。

例えば、次のようなイベントで利用されます。

  • HTTPリクエストを受信した
  • Blob Storageへファイルが保存された
  • Timer Triggerで定期実行する
  • Queue Storageへメッセージが追加された
  • Event Gridからイベントを受信した

Azure VMとAzure Functionsの違い

比較項目 Azure VM Azure Functions
サービス形態 仮想サーバー(IaaS) サーバーレス(FaaS)
OS管理 必要 不要
サーバー構築 必要 不要
利用単位 仮想マシン 関数(Function)
スケーリング 手動または設定が必要 自動
課金 VM稼働時間が中心 実行回数・実行時間が中心
自由度 非常に高い 高いが制約あり
初心者向け サーバー知識が必要 比較的始めやすい

どんな場面で使われるのか

Azure VMが向いているケース

  • 業務システムを稼働させる
  • Active Directoryを構築する
  • SQL Serverを運用する
  • 社内Webサーバーを構築する
  • 既存のWindows Serverをクラウドへ移行する

Azure Functionsが向いているケース

  • ファイルアップロード時の自動処理
  • 定期バックアップ処理
  • Webhookの受信
  • メール通知
  • APIの一部機能を実装する

なぜ違いを理解することが重要なのか

Azure VMはサーバーそのものを提供するサービスであり、Azure Functionsは処理だけを実行するサービスです。

例えば、24時間稼働する社内システムをAzure Functionsだけで構築することは適していません。一方、毎日数分だけ実行するバッチ処理をAzure VMで運用すると、不要なサーバーコストが発生する可能性があります。

用途に応じて適切なサービスを選択することで、運用負荷やコストを抑えられます。

初心者が混乱しやすいポイント

  • どちらもAzure上で動作する
  • どちらもプログラムを実行できる
  • どちらもWebサービスを提供できる

最も大きな違いは管理対象です。

  • Azure VMはサーバーを管理する
  • Azure Functionsはコードだけを管理する

実際のIT現場での利用例

業務 利用サービス
Active Directory Azure VM
SQL Server Azure VM
社内業務システム Azure VM
ファイル変換 Azure Functions
定期通知 Azure Functions
画像加工 Azure Functions

現場でよくあるトラブル

Azure VM

  • RDP接続できない
  • CPU・メモリ不足
  • Windows Update後に再起動が必要
  • NSG(Network Security Group)の設定ミス
  • ディスク容量不足

Azure Functions

  • トリガーが動作しない
  • タイムアウト
  • 権限不足
  • ストレージアカウントとの接続エラー
  • 実行回数の急増による想定外の課金

原因の切り分け

確認項目 確認内容
アプリケーション エラーが発生していないか
Azure Monitor アラートやメトリックを確認する
ログ Application Insightsやログを確認する
ネットワーク NSGやファイアウォールを確認する
権限 Managed IdentityやRBACを確認する

確認する順番

  1. Azure Monitorでアラートを確認する
  2. ログを確認する
  3. アプリケーションエラーを確認する
  4. ネットワーク設定を確認する
  5. 権限設定を確認する

ログの確認方法

Azure Portalから確認できます。

  1. Azure Portalへログインする
  2. 対象のAzure VMまたはAzure Functionsを開く
  3. Monitoringを選択する
  4. LogsまたはApplication Insightsを開く
  5. エラー内容を確認する

GUIでの確認方法

  • Azure Portal
  • Azure Monitor
  • Application Insights
  • Virtual Machines
  • Function App
  • Network Security Group

CUI(Azure CLI)での確認方法

Azure VM一覧

az vm list -o table

Azure Functions一覧

az functionapp list -o table

Azure VMの詳細

az vm show --name VM名 --resource-group リソースグループ名

Azure Functionsの詳細

az functionapp show --name FunctionApp名 --resource-group リソースグループ名

確認結果の見方

  • VMがRunning状態か
  • Function Appが正常に起動しているか
  • HTTPステータスコードが200番台か
  • エラーログが出力されていないか
  • CPU・メモリ使用率が高すぎないか

初心者がやりがちなミス

  • Azure VMなのにWindows Updateを実施しない
  • Azure VMのバックアップを設定していない
  • Azure Functionsを長時間実行する処理に利用する
  • ログを確認せず設定変更する
  • NSGやRBACを確認せず障害調査を進める

影響範囲を確認するポイント

  • 対象VMのみか複数VMか
  • 対象FunctionのみかFunction App全体か
  • 利用者全員へ影響しているか
  • Azureサービス全体の障害ではないか

上司へ報告するポイント

  • 障害発生時刻
  • 対象リソース名
  • Azure VMかAzure Functionsか
  • エラーメッセージ
  • 影響範囲
  • 確認した内容
  • 暫定対応の有無

エスカレーションするタイミング

  • 本番環境へ影響がある
  • OS障害やディスク障害が発生している
  • ネットワーク設定変更が必要
  • 権限変更が必要
  • 原因を特定できない

現場で評価される確認手順

  1. 影響範囲を把握する
  2. Azure Monitorで状態を確認する
  3. ログを確認する
  4. ネットワークと権限を確認する
  5. 必要に応じて上司へ報告・エスカレーションする

筆者の経験談

実際の業務では、定期実行するCSV集計処理をAzure VM上のタスクスケジューラで運用していましたが、OSのメンテナンスや更新管理に手間がかかっていました。後にAzure Functionsへ移行したところ、サーバー管理が不要になり、運用負荷とコストを削減できました。一方で、24時間稼働する業務システムはAzure VMのほうが柔軟に設定でき、既存システムの移行もスムーズでした。用途に応じて使い分けることが重要だと感じています。

応用知識

Azure VMはIaaS、Azure FunctionsはFaaSに分類されます。Azureにはこのほか、Webアプリケーション向けのAzure App Serviceや、コンテナ向けのAzure Container Apps、Azure Kubernetes Service(AKS)などもあり、システム要件に応じて最適なサービスを選択します。

関連するIT用語

  • Azure App Service
  • Azure Container Apps
  • Azure Kubernetes Service(AKS)
  • IaaS(Infrastructure as a Service)
  • FaaS(Function as a Service)
  • Application Insights
  • Azure Monitor
  • Network Security Group(NSG)
  • Managed Identity
  • RBAC(Role-Based Access Control)

よくある質問(FAQ)

Azure VMとAzure Functionsはどちらがおすすめですか?

既存のサーバーや業務システムを運用するならAzure VM、自動化処理やイベント駆動の処理を実装するならAzure Functionsがおすすめです。

Azure Functionsだけでシステムを構築できますか?

小規模なAPIやイベント処理であれば可能ですが、大規模な業務システムではAzure VMやAzure App Serviceなどと組み合わせるケースが一般的です。

Azure VMは停止すると料金は発生しませんか?

Azure Portalから「停止(割り当て解除)」した場合はコンピューティング料金を抑えられますが、OSディスクやデータディスクなどのストレージ料金は継続して発生します。

Azure Functionsは常時起動していますか?

従量課金プランでは必要なときだけ実行されます。そのためコストを抑えやすい一方、初回実行時にコールドスタートが発生する場合があります。

まとめ

Azure VMとAzure Functionsは、どちらもAzureでアプリケーションを実行するサービスですが、役割は大きく異なります。

  • Azure VMは仮想サーバーを提供するIaaS
  • Azure Functionsはイベント処理を実行するサーバーレスサービス
  • サーバー管理が必要ならAzure VM
  • 自動化や短時間の処理ならAzure Functions
  • 障害時はAzure Monitor、Application Insights、ネットワーク、権限の順に確認すると効率的

IT業務では「サーバーを管理したいのか」「コードだけを実行したいのか」を基準にサービスを選択することが重要です。まずはAzure VM=仮想サーバー、Azure Functions=サーバーレス関数という基本を押さえ、要件に応じて適切に使い分けられるようになりましょう。

コメント

タイトルとURLをコピーしました