クラウドコンピューティングが当たり前となった現在、多くの企業が仮想マシン(Virtual Machines、VM)を利用して、柔軟で拡張性のあるITインフラを構築しています。
中でも、Microsoftの提供するAzure Virtual Machines(Azure VM)は、WindowsやLinuxなどのOS環境を自由に選択でき、開発・検証から本番運用まで幅広く対応できるサービスです。
本記事では、Azure VMの基本から使いこなしまで、エンジニア目線で分かりやすく解説していきます。
Azure Virtual Machinesとは?
Azure Virtual Machinesは、Microsoft Azureが提供するIaaS(Infrastructure as a Service)型のクラウドサービスです。物理サーバーを持たずとも、仮想的にサーバーを構築・運用でき、用途に応じて柔軟にスペックやOSを選べるのが特徴です。
オンプレミス(自社運用の物理サーバー)と比べて初期コストが不要で、インフラ構築のスピードと拡張性に優れています。
Azure Virtual Machinesでできること
VMは、物理サーバーと同等の機能をクラウド上で提供するため、幅広い用途に活用できます。以下に、主な活用シーンとその背景・利点を詳しく解説します。
■ Webサーバーやアプリケーションサーバーの構築
企業のWebサイトや業務アプリケーションのホスティングに最適です。IIS(Windows)やApache/Nginx(Linux)をインストールして、以下のような構成を簡単に構築できます。
- Webアプリ(ASP.NET, PHP, Node.jsなど)のホスティング
- 自社開発システムのフロントエンド/バックエンド構築
- SSL/TLS証明書の導入によるHTTPS通信の実現
トラフィックの増加に応じてスケーリングしたり、ロードバランサーやオートスケーリングを組み合わせることで高可用性構成にも対応できます。
■ データベースのホスト
SQL ServerやMySQL、PostgreSQL、Oracle Databaseなど、さまざまなRDBMSをインストールして、自社専用のDBサーバーを構築できます。
- オンプレからの移行先として、段階的なクラウド化が可能
- Azureの管理型DBサービス(Azure SQLなど)とのハイブリッド運用も可能
- 高速ストレージ(Premium SSD)や高IOPS構成により、DB性能を最大限に活用可能
可用性セットやバックアップ機能を組み合わせることで、BCP(事業継続計画)にも対応します。
■ 開発・テスト環境の構築
開発チームが複数のVMを使って、製品の開発・検証・CI/CDパイプラインを構築する場面で非常に有効です。
- 1人1台の開発用VMを素早く展開可能(カスタムイメージで標準化も可)
- 開発言語やSDK(.NET, Java, Pythonなど)を自由にインストール可能
- スナップショットや自動シャットダウンを利用してコスト最適化
VMをスクリプトで動的に立ち上げたり、停止したりすることで、効率的な開発体制を構築できます。
■ バッチ処理やビッグデータ処理
一時的な高負荷計算や、スケジュールされたバックグラウンド処理にVMを利用することも可能です。
- 複数VMをスケールアウトして分散処理
- GPU搭載のNシリーズVMで、AI・機械学習の学習ジョブにも対応
- Azure Blob StorageやData Lakeと連携して大規模データを処理
一時的にスピンアップしたVMでジョブを実行し、完了後に削除することでコスト効率の良い運用が可能です。
■ 仮想デスクトップ(VDI)環境の提供
テレワークやBYOD(Bring Your Own Device)環境のセキュアなデスクトップとして、WindowsベースのVDI環境をVMで提供できます。
- Azure Virtual Desktopと連携して多人数対応も可能
- 社内アプリやファイルサーバーに安全にアクセス
- ローカルPCにデータを残さず、セキュアな業務環境を実現
一元的な管理・監査も可能で、セキュリティ要件が高い業種にも対応できます。
このように、Azure Virtual Machinesは汎用性が非常に高く、インフラ構築の中心的な役割を果たします。クラウド環境でも「自由度」と「拡張性」を維持しつつ、従量課金で効率よく運用したい企業やエンジニアにとって、強力な武器となるでしょう。
Azure Virtual Machinesのシリーズ
Azure VMには用途別に最適化された「シリーズ」が用意されています。
シリーズ | 用途 |
---|---|
Bsシリーズ | 経済効率の高いバースト可能な VM |
Dシリーズ | あらゆる環境におけるアプリケーション実行に適したシリーズ(汎用シリーズ) |
Eシリーズ | メモリ最適化シリーズ |
Fシリーズ | コンピューティング最適化シリーズ |
Gシリーズ | 大規模なデータベースやアプリケーションに適したシリーズ |
Hシリーズ | ハイパフォーマンスコンピューティングアプリケーション向けに最適化されたシリーズ |
Lsシリーズ | ストレージ最適化シリーズ |
Mシリーズ | SAP HANA などの大規模なインメモリデータベースに最適なシリーズ |
Mv2シリーズ | Azure最大のメモリ容量を持つシリーズ |
Nシリーズ | GPU最適化シリーズ |
Azure Virtual Machinesのイメージとは?
「イメージ」とは、仮想マシンのOSや初期状態のソフトウェア構成を含むテンプレートのことです。Azureでは以下のようなOSイメージを選べます。
- Windows系:Windows Server 2022/2019、Windows 11など
- Linux系:Ubuntu、CentOS、Red Hat、Debian など
また、自作のカスタムイメージを使って社内標準の環境を再現することも可能です。
Azure Virtual Machinesのサイズの選び方
Azure VMは「サイズ」としてvCPU数、メモリ(RAM)容量、ストレージ性能などがパッケージ化されています。以下の項目を理解すると、最適なサイズ選定が可能になります。
vCPUとは?
仮想CPUのことで、実際の物理CPUコアのリソースを仮想的に割り当てたものです。処理能力に直接影響します。
RAMとは?
メモリ容量のことです。アプリケーションの同時実行やキャッシュ性能に関係します。
データ容量とは?
VMに接続されるディスクサイズのことです。OSディスクとデータディスクの両方があります。
最大IOPSとは?
1秒あたりに処理できるディスクI/O(読み書き)の回数です。データベースやファイル操作が多いシステムでは重要な指標です。
ローカルストレージとは?
VMの物理ホスト上に一時的に提供される高速ストレージです。VMの再起動でデータは消えるため、一時ファイルやキャッシュ用に適しています。
Premiumディスクとは?
高性能なSSDストレージで、通常のStandard HDD/SSDよりも高速です。高IOPSが必要なワークロード向けです。
OSディスクとは?
OSディスクとは、Azure Virtual Machineにインストールされるオペレーティングシステム(WindowsやLinux)を格納するディスクです。仮想マシンのブート(起動)時に読み込まれ、常に稼働中に読み書きが行われるため、性能と可用性が非常に重要です。
OSディスクの特徴
- 起動ディスクであり、VMが稼働するために必須
- VM停止中もデータは保持され、再起動で復元可能
- サイズや種類(HDD/SSD)を選択できる
- Azure Managed Diskとして自動的に管理される
- スナップショット作成やバックアップが可能
Azureでは、用途やコストに応じて複数のディスク種類が提供されています。次に、それぞれのディスクタイプの特徴や用途を比較してみましょう。
種類 | 特徴・用途 |
---|---|
Premium SSD | 高IOPS・低レイテンシのSSD。実稼働や性能要求の高いワークロード向け |
Premium SSD(ローカル冗長) | 同一リージョン内での冗長保存あり |
Standard SSD | コストバランスの良いSSD。中程度のパフォーマンス |
Standard HDD | 低コストだが低性能。アクセス頻度の少ない用途向け |
ゾーン冗長ストレージ(ZRS) | データが3つのゾーンに自動レプリケート。非常に高い可用性 |
選び方のポイント
それぞれのディスクには得意とするユースケースがあり、使用目的に応じて最適なタイプを選ぶことが重要です。以下に、選定の際の判断基準を紹介します。
開発・検証環境 → Standard SSD
や Standard HDD
本番環境(中負荷) → Premium SSD(ローカル冗長)
高可用性・高性能が求められるシステム → Premium SSD
+ ゾーン冗長
コスト最優先 & 非常用 → Standard HDD
このように、OSディスクの選定は仮想マシン全体の安定性・性能・コストに直結するため、ワークロードの特性をよく見極めたうえで決定することが重要です。
Azure Virtual Machinesをterraformでデプロイする
Azureインフラのコード管理を効率的に行いたい場合、Terraformは非常に強力な選択肢です。ここでは、Terraformを使ってAzure上にWindows仮想マシン(Azure Virtual Machine)をデプロイする手順を、実際のコード例とともに解説します。
前提として、以下のリソースはすでに作成済みとします。
- リソースグループ(Resource Group)
- 仮想ネットワーク(Virtual Network)
- サブネット(Subnet)
- ネットワークセキュリティグループ(NSG)
今回のステップでは、以下の3つのリソースをTerraformで新たに構築します。
Terraform構成ファイル(vm.tf)の作成
まず、仮想マシンやネットワーク関連のリソースを定義するファイル vm.tf
を作成し、VS Codeなどのエディタで開きます。
ファイルを開いたら下記のコードを記述(コピペ)します。
# 仮想マシン(Windows Server 2016 Datacenter)
resource "azurerm_windows_virtual_machine" "vm01" {
name = "ait-vm01"
location = data.azurerm_resource_group.existing.location
resource_group_name = data.azurerm_resource_group.existing.name
size = "Standard_B1s"
admin_username = "azureuser"
admin_password = "P@ssw0rd1234!" # セキュアな保管方法を推奨
network_interface_ids = [azurerm_network_interface.vm01_nic.id]
os_disk {
name = "ait-vm01-osdisk"
caching = "ReadWrite"
storage_account_type = "Standard_LRS"
}
source_image_reference {
publisher = "MicrosoftWindowsServer"
offer = "WindowsServer"
sku = "2016-Datacenter"
version = "latest"
}
provision_vm_agent = true
}
# パブリックIP
resource "azurerm_public_ip" "vm01_pip" {
name = "ait-vm01-pip"
location = data.azurerm_resource_group.existing.location
resource_group_name = data.azurerm_resource_group.existing.name
allocation_method = "Static"
sku = "Basic"
}
# NIC
resource "azurerm_network_interface" "vm01_nic" {
name = "ait-vm01-nic"
location = data.azurerm_resource_group.existing.location
resource_group_name = data.azurerm_resource_group.existing.name
ip_configuration {
name = "internal"
subnet_id = azurerm_subnet.snet01.id
private_ip_address_allocation = "Dynamic"
public_ip_address_id = azurerm_public_ip.vm01_pip.id
}
}
ポイント
size
で仮想マシンのスペック(今回はStandard_B1s
)を指定します。- source_image_reference にてWindows Serverの最新版を指定。
admin_password
は本番環境では変数化またはAzure Key Vaultの活用を推奨。
Terraform Planの実行
構成ファイルを保存したら、Terraformで構成の差分を確認します。
terraform plan
リソースが正しく3つ追加されることが確認できればOKです。
Plan: 3 to add, 0 to change, 0 to destroy.
Azure上にデプロイ
問題がなければ、実際にAzure上にリソースを作成します。
terraform apply
下記プロンプトが表示されたら、yes
と入力して実行を承認します。
Plan: 3 to add, 0 to change, 0 to destroy.
Do you want to perform these actions?
Terraform will perform the actions described above.
Only ‘yes’ will be accepted to approve.Enter a value:
以下のメッセージが表示されれば、リソースの作成に成功しています。
Apply complete! Resources: 3 added, 0 changed, 0 destroyed.
VMが作成されていることを確認
AzureポータルまたはCLIで、仮想マシンが作成されていることを確認しましょう。

まとめ
本記事では、Terraformを使ってAzure Virtual Machinesをデプロイする一連の手順を実践的に解説しました。構成ファイルの作成から仮想マシン、ネットワークインターフェース、パブリックIPの構築、そしてデプロイの確認まで、一通りの流れを経験することで、Infrastructure as Code(IaC)によるAzure環境構築の基本を学ぶことができたはずです。
Terraformを活用することで、インフラの再現性・保守性・自動化が飛躍的に向上します。ずは小さな構成から着実に慣れ、プロジェクトに応じたスケーラブルなIaCを目指していきましょう。
コメント