サイトアイコン プログラマー(PG)・システムエンジニア(SE)になるための入門講座

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)です。

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

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

Azure VMとAzure Functionsの違い

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

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

Azure VMが向いているケース

Azure Functionsが向いているケース

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

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

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

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

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

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

実際のIT現場での利用例

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

現場でよくあるトラブル

Azure VM

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での確認方法

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 リソースグループ名

確認結果の見方

初心者がやりがちなミス

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

上司へ報告するポイント

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

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

  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用語

よくある質問(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でアプリケーションを実行するサービスですが、役割は大きく異なります。

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

モバイルバージョンを終了