仮想マシンは、1つのPC上で複数のシステムを同時に動かせる技術です。
この記事では、そんな仮想マシンの基本的な知識や利用するメリット、選ぶポイントまでを初心者にも分かりやすく解説します。
仮想マシンのおすすめプラットフォームも4つ紹介するので、ぜひ最後までお読みください。
仮想マシンの導入や運用でお困りの点があれば、株式会社Jiteraまでご相談ください。
多岐にわたる開発実績を持ち、独自のAI技術を活用した高品質な開発サービスを提供しています。
小中規模プロジェクトを中心にSEやコンサルとして活動。クラウド導入やスタートアップ、新規事業開拓の支援も経験しました。
仮想マシン(VM)とは?

仮想マシンとは、実際には存在しないコンピューターをソフトウェア上で擬似的に実現したものです。
例えば、1台のPC上でWindowsとLinuxの2つのOSを同時に動作させたい場合、通常は2台のコンピューターが必要になります。しかし仮想マシンを利用することで、1台のPC上にWindowsとLinuxのそれぞれの仮想マシンを作成し、仮想的に2台のコンピューターがあるかのように使うことができます。
仮想化の仕組み
仮想マシン上ではゲストOSと呼ばれるOSが動作し、ホストOSの上でアプリケーションのように扱うことができます。仮想マシンのソフトウェアがハードウェアを仮想化することで、ゲストOSは自分専用のハードウェアを持っているかのように動作します。
具体的には、CPU、メモリ、ストレージ、ネットワーク接続、ハードウェアなどの部分が、仮想的に割り当てられます。必要に応じて、仮想マシンの性能を変更することも可能です。
このように1台のマシン上で複数の仮想マシンを動作させることを、仮想化と呼びます。仮想化によってハードウェアのリソースを効率的に活用できるため、仮想マシンは非常に強力で便利なツールと言えます。
仮想マシンとコンテナの違い
仮想マシンとコンテナは、どちらも1つの物理マシン上で複数のアプリケーション実行環境を実現する技術ですが、以下のような違いがあります。
| 比較項目 | 仮想マシン | コンテナ |
| 実行環境 | ゲストOS上でアプリケーションが動作 | ホストOS上でアプリケーションが動作 |
| 性能 | あまり高速ではない | 高速 |
| 起動速度 | 遅い | 速い |
| イメージサイズ | 大きい | 小さい |
仮想マシンはゲストOS上でアプリケーションが動作するため、OSそのものの分のリソースが余計に必要になります。そのため起動も遅く、実行時のメモリやCPU使用量が多くなります。
一方、コンテナはホストOSを共有する構造のため、OSレイヤーが1つあればよく、起動や実行が高速です。
用途としては、仮想マシンはアプリケーションの完全な隔離が必要な場合に適しています。一方、コンテナは軽量かつ速い実行が必要なWebアプリケーションなどに向いています。
リソースに制約がある場合はコンテナ、セキュリティ要件が厳しい場合は仮想マシンを選択するのが良いでしょう。それぞれの特徴を理解して活用することが重要です。
仮想マシンのメリット

仮想マシンを使うメリットは大きく分けて4つがあります。以下、詳しく解説していきます。
コストが抑えられる
仮想マシンを利用することでコスト削減が図れる主なポイントは以下の3つです。
ハードウェア購入コストの削減
1つ目はハードウェア購入コストの削減です。先ほどの例で言うと、10台必要な場合は通常10台のパソコンを揃える必要がありますが、仮想マシンなら5台で済むため、購入コストが5割削減できます。
保守・管理コストの削減
2つ目は保守・管理コストの削減です。仮想マシンの場合1台のサーバー上に集約できるので、ハードウェアの保守点検やバージョンアップも1台に集中させられます。その結果、保守・管理の工数やコストが大幅に減少します。
ライセンスコストの最適化
3つ目はライセンスコストの最適化です。例えばOSのライセンスは実際のコンピューター1台につき1ライセンス必要ですが、仮想マシンの場合は1つのコンピューター上で複数の仮想コンピューターを動かすので、OSのライセンスコストを抑えられます。
このように仮想マシンは、ハードウェア投資だけでなく、保守・管理やライセンス含めたトータルコストを大きく削減できるのが大きなメリットです。コスト面から見ても仮想マシンの導入は非常におすすめです。
セキュリティが高い
仮想マシンの大きなセキュリティ上のメリットは、マルウェアやデータの隔離がしやすい点です。
例えば、ある仮想マシン上でウイルスに感染してしまったとします。この場合、感染した仮想マシン自体を隔離して使用停止にできます。感染が他の仮想マシンやホストOSに広がることはないため、被害を局所的に収めることができます。
またデータ面でも、重要度の高いデータは安全な仮想マシン上でのみ取り扱う、不正アクセスの多いWebサーバーなどは個別の仮想マシン上で運用する、といったそれぞれ用途の分離が可能です。これによりデータ漏洩リスクも低減できます。
加えて、仮想マシンはスナップショットと呼ばれる状態保存機能を持っています。この機能を使えば、過去の正常時点の仮想マシン状態を簡単に復元することができます。
以上のように、仮想マシンを使うことで複数のシステムを隔離し、マルウェア対策やデータ管理のセキュリティレベルを大幅に向上させることが可能となります。
リソースの効率的利用
仮想マシンの大きなメリットの1つが、リソースの効率的な割り当てができる点です。仮想マシンではCPUやメモリ、ストレージ、ネットワーク帯域などのリソースを、仮想的に割り振ることができます。
例えば、普段はあまり負荷のかからない Webサーバーは最小限のリソースで稼働させておき、負荷が高まった時だけCPUやメモリを動的に強化するといった運用が可能です。
逆に通常時にはリソースを大量に割り当てておき、使われていない時期が来たら最小限のリソースで稼働させるといったこともできます。
このように仮想マシンを活用することで、サーバーやアプリケーションのロード状況に応じて、必要な分だけリソースを動的に振り分ける最適化が実現できます。
結果としてハードウェアリソースの有効活用が大幅に向上し、リソース不足によるシステムダウンの回避や、クラウド利用料金の最適化にもつながります。
運用・管理の容易なところ
仮想マシンの管理面でのメリットは、運用やバックアップがファイルベースで行えることです。仮想マシン自体がファイルとして扱えるため、別のサーバーやストレージにバックアップとして保存することができます。
また複製が簡単なので、環境移行や災害対策としての遠く離れた場所への送信などが比較的容易に実施できます。
設定変更もゲストOSではなくホストから行うので、仮想マシンの停止を伴わずに設定変更が可能です。
さらに、リソースが不足した場合も対処がしやすく、既存の仮想マシンに割り当てメモリーを増強するなどして、機器追加を伴わずに対応ができます。
このように仮想マシンは運用面でのメリットが大きく、バックアップや設定変更などの管理業務の負荷を大幅に下げることができます。ですからコスト面だけでなく運用面でのメリットも大きいと言えます。
仮想マシンのデメリット

仮想マシンにはメリットも多いのですが、一方でデメリットも多くあります。以下、詳しく解説していきます。
パフォーマンスの低下
仮想マシンのパフォーマンスが低下する主な要因は以下の3つです。
仮想マシンに処理負荷がかかっている
1つ目は、仮想マシンそのものの処理負荷です。ゲストOS上で動作するアプリケーションの処理に加え、仮想化層の処理もかかるため、ファイルアクセスやメモリアクセスの速度が物理マシンより遅くなります。
仮想CPUの割り当て処理による負荷が多い
2つ目は、仮想CPUの割り当て処理による負荷です。仮想マシンは物理CPUを完全に占有できず、他の仮想マシンとタイムシェアする形になるので、切り替えによる遅延が生じます。
メモリやストレージのリソースが競合している
3つ目は、メモリやストレージのリソース競合です。同じ物理マシン上で複数の仮想マシンが稼働する場合、リソースを奪い合うことで性能低下を招く場合があります。
特にリソースを集約しすぎると、この低下が顕著になります。用途に応じて適切に仮想マシンを配置することが重要です。
運用が複雑になることもある
仮想マシンの運用・管理が複雑になる主な理由は以下の3つです。
仮想化によるシステム全体の複雑化
1つ目は、仮想化によるシステム全体の複雑化です。仮想マシン、ホストOS、仮想化ソフトといった要素が増え、システム全体のつながりを理解し、全体像を把握するスキルが必要になります。
設定変更やリソース調整の難易度が上がる
2つ目は、設定変更やリソース調整の難易度が上がることです。設定は仮想マシン側だけでなくホストOS側も考慮する必要が生じます。また、複数の仮想マシンのリソースバランスの最適化も重要になります。
総合的な運用の難しさ
3つ目は、いろんな場所に存在する環境を統合的に見守り・操作することの難しさです。物理マシン上の複数の仮想マシンを一括で監視し、ログを収集をする必要があり、管理工数が増大します。
このため、仮想マシンを活用するには、ネットワーク、サーバー、ストレージなどの知識に加え、仮想化技術自体のスキルが欠かせません。運用体制の見直しも必要となる場合があります。
十分な教育と最適なツール導入を行うことである程度の複雑さの低減は可能ですが、システム全体を把握できる運用体制が不可欠です。
さまざまなライセンスコストの発生
仮想マシンのライセンスコストが高額になる主な要因は以下の3つです。
仮想化プラットフォーム自体のライセンス料金
1つ目は、仮想化プラットフォーム自体のライセンス料金です。VMwareやHyper-Vなどのエンタープライズ製品は高コストとなることが多いです。
ゲストOSのライセンス料金
2つ目は、ゲストOSのライセンス料金です。マイクロソフトのOSでは仮想マシン上でのライセンスは別料金が必要です。Linuxでは無料のものもあります。
vCPU(仮想CPU)ライセンス料金
3つ目は、vCPU(仮想CPU)ライセンスのコストです。物理CPUコア1つにつき、仮想CPUコアをいくつ動作させるかで料金が異なります。
仮想マシン関連のライセンス・サポート費用がハードウェアコストの2-3倍に上るケースもあるとされています。
開発テスト環境への利用ならば無償版の選択も可能ですが、商用プロダクトへの全面導入の際はライセンスコストを十分に検討する必要があります。
セットアップの手間
仮想マシンのセットアップが手間になる主な理由は以下の3つです。
仮想化ソフト自体のインストールと設定
1つ目は、仮想化ソフト自体のインストールと設定です。仮想ソフトの設置から仮想ネットワークの設定まで、物理マシンとは異なる手順が必要です。
ゲストOSのインストールプロセスの負荷
2つ目は、ゲストOSのインストールプロセスの負荷です。OSのインストール手順を1つひとつの仮想マシンで完了させる必要があり、その作業量は膨大になります。
アプリケーションとの互換性確認に手間がかかる
3つ目は、アプリケーションとの互換性の確認の手間です。物理マシンで動作していたソフトが、仮想マシン移行後も正常に動作するかどうか、状況に応じた確認が必須です。
これらの手間を軽減するために、規範となる基準のインストール済みテンプレートの活用が重要になります。これによりOSとアプリのセットアップを自動化できるようになります。
しかしながら、セットアップの自動化にも専門的知識が必要不可欠で、十分な学習が前提となります。初期コストを抑えることが難しい側面があると言えます。
仮想マシンのプラットフォーム

仮想マシンを動作させるための主なプラットフォームとして、以下の4つがよく利用されています。詳しく解説していきます。
VMware
VMwareは仮想化ソフトのパイオニア的存在で、事実上の業界標準となっているプラットフォームです。
特徴としては、高度な仮想ネットワーク構成が可能な点があげられます。VLANによるセグメント分割や、VPNによる拠点間接続など、大規模なネットワークを構築できます。
また、ストレージを仮想化するvSAN機能も強力です。複数のサーバーの内蔵ディスクをまとめて利用できるため、外付けのストレージを用意しなくても仮想マシンを継続して使える確率を高められます。
欠点はライセンスコストが高額なことです。ただし、大規模で停止できない重要なシステムを構築する場合にはvSphereシリーズが選択肢の一つとなります。
Hyper-V

Hyper-VはWindowsサーバーに標準実装されている仮想化プラットフォームです。
特徴としては、System Centerとの連携が深いことがあげられます。System Center Virtual Machine Managerを利用することで、Hyper-Vの複数のサーバーを一括して管理できます。
また、ストレージにMicrosoftのSMBファイルサーバを使うことで、Live Migration機能を利用できます。これにより、仮想マシンの動作中も別のサーバーに移動させることが可能となります。
Hyper-V単体では簡易的な機能に限られますが、System Centerなど関連製品と組み合わせることで、信頼性の高い仮想化環境を実現できるのが強みです。
Windowsサーバー間での仮想化を検討している場合は、Hyper-Vが有力な選択肢となります。
VirtualBox

VirtualBoxは自宅や教育用途に適したオープンソースの仮想化プラットフォームです。
特徴としては、多様なゲストOSをインストールできる点があります。WindowsやLinuxはもちろん、FreeBSDやSolarisなど様々なOSを仮想マシンとして利用できます。
また、拡張機能をインストールすることで、USBデバイスを仮想マシン内で直接使えるようになったり、遠隔でデスクトップに接続できるようになるなどのメリットもあります。
デメリットは管理機能が貧弱なことです。大規模環境向けではなく、学習目的や小規模なテスト用途に適しているといえます。
自宅で仮想化を学ぶには手軽に始められるのが、VirtualBoxの大きなメリットの1つと言えます。
QEMU

QEMUはLinuxを中心としたオープンソースの仮想化プラットフォームです。
特徴としては、WindowsやmacOS、Linuxなど様々なプラットフォーム上でホストとして動作できる点があります。また、テスト用途で見ると、いろいろなプロセッサの種類に対応しています。
欠点は管理画面が十分に整備されていないことです。コマンドラインやスクリプトによる設定が主体となります。
開発・テスト目的で異なるアーキテクチャ間の相互運用性を確認したい場合に適したプラットフォームです。
仮想マシンの種類

仮想マシンには、主にType1とType2の2つの種類があります。以下、詳しく解説していきます。
| 種類 | 説明 | メリット | デメリット |
| Type1 | 実際のサーバーなどの物理マシン上で直接動作する仮想マシン | 性能が高い | 移植性が低い |
| Type2 | OS上で動作する仮想マシン | 移植性が高い | 性能が低い |
Type1
Type1の仮想マシンは、サーバーなどの物理マシン上で直接動作するため、ハードウェアのリソースに完全にアクセスできます。CPUやメモリ、ストレージ、ネットワークなどを仮想化ソフトを介さずに利用できるため、非常に高速な処理が可能です。
一方でハードウェアに強く依存する仕組みのため、別の物理マシンに移すことが困難です。同じCPUの種類や機器が必要になり、移植性が低いのが欠点です。
そのためType1の仮想マシンは、処理速度を重視し、かつ1台の高スペックサーバーで運用を継続できる用途に適しています。性能最大化と引き換えに、柔軟性は落ちることを考慮する必要があります。
Type2
Type2の仮想マシンは、WindowsやMacなどの既存OS上で動作します。そのためホストOS上のリソースを仮想化して利用する形になり、性能面ではType1に劣ります。
しかし、あらゆるx86互換のWindowsやMacで動作可能なため、環境を選ばずに利用できるのが大きなメリットです。また、仮想マシン自体をファイルとして移動/複製できるので、柔軟な運用が可能です。
そのためType2の仮想マシンは、汎用的な用途での利用やテスト/開発環境としての利用、個人での学習用途など、移植性を重視するシーンに適しています。
用途に合わせて、性能重視か移植性重視かを考慮して、仮想マシンの種類を選択することが重要です。
仮想化のやり方・仮想環境の作り方

それでは、どのように仮想マシンを作成するのでしょうか。仮想化のやり方や仮想環境の作り方、手順を解説します。
1. 仮想化ソフトウェアを選択
最初の手順は、仮想化ソフトウェアを選択することです。先ほど紹介したようなソフトウェアから最適なものを選択しましょう。
無料で利用できるVirtualBoxや、有料でも機能が豊富なVMware Workstationなどから、用途に合わせて選んでください。
「コストが気になる」「試しにやってみたい」という場合は、無料のソフトウェアをおすすめします。
2. 必要なハードウェアを準備
次に、仮想マシンを動作させるためのハードウェア要件を確認しましょう。一般的に、CPU、メモリ、ストレージの性能が高いほど、スムーズに動作します。
最低でも、デュアルコアCPU、4GBメモリ、20GB以上の空きストレージが必要です。リソースに余裕があれば、より高性能な環境を構築できます。
3. 仮想化ソフトウェアをインストール・作成
選んだ仮想化ソフトウェアをPCにインストールし、新しい仮想マシンを作成します。作成時には、仮想マシンに割り当てるPCのリソース(CPU、メモリ、ストレージなど)を設定します。
CPU
仮想マシンに割り当てるCPUコア数を指定します。最低でも1コアは必要ですが、リソースに余裕があれば2コア以上を割り当てるとより快適に動作します。
メモリ
仮想マシンに割り当てるメモリ容量を設定します。一般的に、1GB以上が推奨されます。ゲストOSやソフトウェアの要件に合わせて、メモリを増やすことができます。
ストレージ
仮想マシンのストレージとして、物理ディスクの空き容量から割り当てます。ストレージの種類(HDD/SSD)や割り当て容量は、ゲストOSやソフトウェアの要件を考慮して決める必要があります。
ビデオメモリ
ビデオメモリの割り当ても設定できます。ゲーム用やグラフィックス処理の多い用途では、ビデオメモリを増やすと円滑に動作します。
ネットワーク
ホストOSとの間の通信方式や、インターネット接続の有無なども設定できます。用途に合わせてブリッジ、NATなどを選択しましょう。
仮想マシンの作成時にリソース設定をカスタマイズすることで、使用用途に合わせた最適な環境を構築できます。十分なリソースを割り当てることが、スムーズな動作には重要です。
4. ゲストOSをインストール
最後に、作成した仮想マシンにゲストOSをインストールします。
ISOイメージからインストーラを起動し、通常のPCにするようにOSインストール手順に従えば、簡単に仮想環境を構築できます。
OS別の仮想マシン紹介

仮想マシンを活用する際、使用目的に合わせてゲストOSを選択することが重要です。
異なるOSプラットフォームごとに適した用途やメリットがあるため、特徴を理解しておく必要があります。ここでは、代表的なOS別の仮想マシンについて紹介します。
Azure上の仮想マシン
Microsoft Azureは、マイクロソフトが提供するクラウドサービスです。このAzureでは、Windows ServerやLinux、SQL Serverなど、さまざまなオペレーティングシステム(OS)の仮想マシンを簡単に作成できます。
Azureの仮想マシンはクラウド上で動作するので、通常のコンピューターに比べて、様々なメリットがあります。
Azureの仮想マシンは、必要に応じてリソース(CPU、メモリ、ストレージ)を簡単に増減できます。サーバーの台数も増やすことができるので、トラフィックの増加に合わせて柔軟に対応が可能です。
また、Azureにはポータルという管理画面があり、仮想マシンの起動・停止、監視、バックアップなどの操作を分かりやすいインターフェースで行えます。こうした機能により、運用の手間を大幅に軽減できます。
Azureの仮想マシンはリソースの最適化が簡単で、管理も効率的にできるため、開発・テスト環境の構築や、継続的なソフトウェアのインテグレーション・デプロイ、コンテナ化された環境の実行など、さまざまな用途に適しています。
Windows仮想マシン
Windows OSの仮想マシンは、Windows Serverをベースとするのが一般的です。Windows Serverには、Windows環境を効率よく管理できる様々な機能が用意されているからです。
まずActive Directoryにより、複数のWindows PCのユーザーアカウントを一元管理できます。サーバーマネージャーやHyper-Vマネージャーといった直感的なGUIツールも便利です。
さらにグループポリシーを使えば、セキュリティ設定やソフトウェアインストールのルールを統一して適用できるので、管理作業が格段に簡略化されます。
加えて、Windows Serverは Microsoft製品との親和性が高く、Office製品やVisual Studioなど、様々なWindowsアプリケーションと良好に連携します。
そのため、Windows OSの仮想マシンは.NET開発環境や、Windows向けビジネスアプリの検証など、さまざまな用途で活躍しています。Windows製品に精通している場合は特に扱いやすく、Windows環境の仮想化に最適な選択肢と言えます。
Linux仮想マシン
LinuxのOSはオープンソースで、サーバー向けの用途が多いです。
Webサーバー(Apache)、データベース(MySQL、PostgreSQL)、開発環境(Python、Ruby、Node.js)など、さまざまなソフトウェアを柔軟に組み合わせられます。クラウドネイティブなアプリケーションの開発・実行にも適しています。
LinuxOSの仮想マシンでは、Ubuntuが広く利用されています。Ubuntuは操作性が高く使いやすいデスクトップ環境を備えており、Linux初心者にも適しています。
操作性に優れ、情報量も豊富なUbuntuは、Linux仮想マシンとして入門者におすすめです。LinuxOSで仮想化をしてみたい方は、Ubuntuの仮想マシンから始めてみるのが良いでしょう。
仮想マシンの選び方のポイント

仮想マシンの選び方のポイントについて、用途、コスト、性能、セキュリティの観点からわかりやすく解説していきます。
用途
用途によって必要な機能が異なるため、それに合った仮想マシンを選択することが重要です。
例えば学習・教育用途では、手軽に導入できて使い方も学びやすいものが良いでしょう。VirtualBoxやVMware Playerなどのフリー版がおすすめです。
開発/テスト用途では、アプリケーションとの互換性が高く、動作環境を柔軟に変更できるものが向いています。Oracle VM VirtualBoxやVMware Workstationなどが候補となります。
業務システム用途では、セキュリティ性が高く、より性能が高いものが重要視されます。VMware vSphereやMicrosoft Hyper-V、Citrix XenServerなどのエンタープライズ向け製品を選択するのがおすすめです。
このように、用途に応じた機能とライセンス形態を提供する製品を選ぶことがとても大切です。
コスト
仮想マシンのコストには、導入コストと運用コストの両方を考慮する必要があります。
導入コストは主にライセンス料です。用途や必要な機能に応じて、正規版やフリー版など料金形態を検討しましょう。
運用コストは保守料金です。24時間365日のサポートを含む料金プランもあるので、目的に合ったプランを選択します。
また、必要なライセンス数にも注意が必要です。CPUコア数やメモリ量によってライセンスが増え、コストも増大します。拡張可能な範囲も確認しましょう。コストパフォーマンスを重視する場合は、オープンソースのソリューションも検討する価値があります。
用途と規模に見合ったトータルコストを比較検討し、余裕を持った製品選定がコスト面で重要となります。
性能
仮想マシンの性能を判断する上で重要なのは、CPUコア数、メモリ容量、ストレージなどのスペックを確認することです。これらのスペックが、目的のシステムやアプリケーションの要件を満たしているかを判断する必要があります。
例えば、データベースサーバーを仮想マシンで運用する場合、最も重要なのはデータ処理能力です。データベースサーバーでは大量のデータを高速に処理する必要があるため、十分な数のCPUコアが搭載された仮想マシンを選択することが重要になります。データ処理能力が不十分だと、パフォーマンスの面で生産性が低下してしまう可能性が高いです。
一方でWebサーバーの場合はネットワークの速度が重要となり、1ギガビット/秒の高速な有線LANに対応していることを確認する必要があります。
このように、目的の処理内容と要件を確認した上で、それを満たすスペックが提供されている仮想マシンを選択することが大切です。十分な性能を得られるか検証することで、後々のトラブルを未然に防ぐことができます。
セキュリティ
仮想マシンのセキュリティ機能を評価する際のポイントは以下の通りです。
- 仮想ネットワークの暗号化機能により通信を保護できるか
- ファイルやディスクの暗号化機能でデータを保護できるか
- トラフィック制御やリソース割り当て制限などにより、セキュリティのリスクを分散できるか
- ログやアクティビティの記録機能で可視化と解析がしやすいか
これらの機能面とともに、セキュリティの欠陥を修正するための更新プログラムの速やかな提供体制も確認すべき重要なポイントです。
業務内容に応じて必要なセキュリティのレベルを決めた上で、そのレベルを満たすセキュリティ機能を持つ仮想マシンのプラットフォームを選択することが大切です。十分なセキュリティ確保のためにも、仮想マシンのセキュリティ機能をしっかり確認しましょう。
まとめ:仮想マシンは目的に合わせて選択しましょう

この記事では、仮想マシンの概要やタイプ、メリット・デメリットなどをわかりやすく解説しました。
実際に仮想マシンを業務や研究で活用したい場合は、まずは目的に合った製品を選ぶことがポイントになります。その際には、十分な検討と比較が必要不可欠です。
仮想マシンの導入や運用でお困りの点があれば、プロのシステムエンジニアが在籍している株式会社Jiteraご相談ください。丁寧なヒアリングを基に最適なソリューションをご提案致します。


