仮想マシンは、1つのパソコン上で複数のシステムを同時に動かせる技術です。
この記事では、そんな仮想マシンの基本的な知識や利用するメリット、選ぶポイントまでを初心者にも分かりやすく解説します。
仮想マシンのおすすめプラットフォームも4つ紹介するので、ぜひ最後までお読みください。
仮想マシンの導入や運用でお困りの点があれば、株式会社Jiteraまでご相談ください。
多岐にわたる開発実績を持ち、独自のAI技術を活用した高品質な開発サービスを提供しています。
仮想マシンとは?
仮想マシンとは、実際には存在しないコンピューターをソフトウェア上で擬似的に実現したものです。
例えば、1台のパソコン上でWindowsとLinuxの2つのOSを同時に動作させたい場合、通常は2台のコンピューターが必要になります。しかし仮想マシンを利用することで、1台のパソコン上にWindowsとLinuxのそれぞれの仮想マシンを作成し、仮想的に2台のコンピューターがあるかのように使うことができます。
仮想マシン上ではゲストOSと呼ばれるOSが動作し、ホストOSの上でアプリケーションのように扱うことができます。仮想マシンのソフトウェアがハードウェアを仮想化することで、ゲストOSは自分専用のハードウェアを持っているかのように動作します。
具体的には、CPU、メモリ、ストレージ、ネットワーク接続、ハードウェアなどの部分が、仮想的に割り当てられます。必要に応じて、仮想マシンの性能を変更することも可能です。
このように1台のマシン上で複数の仮想マシンを動作させることを、仮想化と呼びます。仮想化によってハードウェアのリソースを効率的に活用できるため、仮想マシンは非常に強力で便利なツールと言えます。
仮想マシンのメリット
仮想マシンを使うメリットは大きく分けて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上で動作するアプリケーションの処理に加え、仮想化層の処理もかかるため、ファイルアクセスやメモリアクセスの速度が物理マシンより遅くなります。
2つ目は、仮想CPUの割り当て処理による負荷です。仮想マシンは物理CPUを完全に占有できず、他の仮想マシンとタイムシェアする形になるので、切り替えによる遅延が生じます。
3つ目は、メモリやストレージのリソース競合です。同じ物理マシン上で複数の仮想マシンが稼働する場合、リソースを奪い合うことで性能低下を招く場合があります。
特にリソースを集約しすぎると、この低下が顕著になります。用途に応じて適切に仮想マシンを配置することが重要です。
運用が複雑になることもある
仮想マシンの運用・管理が複雑になる主な理由は以下の3つです。
1つ目は、仮想化によるシステム全体の複雑化です。仮想マシン、ホストOS、仮想化ソフトといった要素が増え、システム全体のつながりを理解し、全体像を把握するスキルが必要になります。
2つ目は、設定変更やリソース調整の難易度が上がることです。設定は仮想マシン側だけでなくホストOS側も考慮する必要が生じます。また、複数の仮想マシンのリソースバランスの最適化も重要になります。
3つ目は、いろんな場所に存在する環境を統合的に見守り・操作することの難しさです。物理マシン上の複数の仮想マシンを一括で監視し、ログを収集をする必要があり、管理工数が増大します。
このため、仮想マシンを活用するには、ネットワーク、サーバー、ストレージなどの知識に加え、仮想化技術自体のスキルが欠かせません。運用体制の見直しも必要となる場合があります。
十分な教育と最適なツール導入を行うことである程度の複雑さの低減は可能ですが、システム全体を把握できる運用体制が不可欠です。
さまざまなライセンスコストの発生
仮想マシンのライセンスコストが高額になる主な要因は以下の3つです。
1つ目は、仮想化プラットフォーム自体のライセンス料金です。VMwareやHyper-Vなどのエンタープライズ製品は高コストとなることが多いです。
2つ目は、ゲストOSのライセンス料金です。マイクロソフトのOSでは仮想マシン上でのライセンスは別料金が必要です。Linuxでは無料のものもあります。
3つ目は、vCPU(仮想CPU)ライセンスのコストです。物理CPUコア1つにつき、仮想CPUコアをいくつ動作させるかで料金が異なります。
仮想マシン関連のライセンス・サポート費用がハードウェアコストの2-3倍に上るケースもあるとされています。
開発テスト環境への利用ならば無償版の選択も可能ですが、商用プロダクトへの全面導入の際はライセンスコストを十分に検討する必要があります。
セットアップの手間
仮想マシンのセットアップが手間になる主な理由は以下の3つです。
1つ目は、仮想化ソフト自体のインストールと設定です。仮想ソフトの設置から仮想ネットワークの設定まで、物理マシンとは異なる手順が必要です。
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の仮想マシンは、汎用的な用途での利用やテスト/開発環境としての利用、個人での学習用途など、移植性を重視するシーンに適しています。
用途に合わせて、性能重視か移植性重視かを考慮して、仮想マシンの種類を選択することが重要です。
OS別の仮想マシン紹介
OS別の仮想マシンの特徴について、Azure、Windows、Linuxに分けてわかりやすく説明していきます。
Azure上の仮想マシン
Microsoft Azureで提供される仮想マシンは、クラウド上で動作するため、スペック変更やサーバー追加が簡単な特徴があります。
Azureの仮想マシンは、ポータルやAPIからいつでもCPUやメモリ、ストレージの変更が可能です。サーバー台数の追加も簡単な操作で行えるため、リソース不足に応じてスケールを縮小できるのが大きなメリットです。
またAzureには、仮想マシンの管理機能も充実しています。仮想マシンの起動・停止、監視、バックアップなどをGUIベースで簡単に行えるため、運用負荷を大幅に減らすことができます。
迅速にサーバーのリソースを拡張でき、管理効率も高いAzure仮想マシンは、クラウド時代の仮想化に最適化されていると言えます。
スケールセット
Azureのスケールセットは、負荷に応じて仮想マシンの台数を自動で増減できる機能です。トラフィックが増えた時に自動的に新しい仮想マシンが起動し、トラフィックが減った時には未使用の仮想マシンが停止するので、リソースを最適化できます。
スケールセットを設定する際には、最小台数、最大台数、スケーリングの条件を指定します。これにより、負荷による変動に応じて最適な台数で仮想マシンが動作するようになります。
アプリケーションをスケールセット上で動作させることで、トラフィックが増える際に自動で対応できるようになるので、非常に便利な機能です。Azure上での仮想マシン運用において、大いに活用していただきたい機能の1つです。
Windows仮想マシン
Windows OSの仮想マシンは、Windowsサーバー版を利用することが一般的です。Windowsサーバーに慣れている場合は扱いやすく、アプリケーションとの相性も良い傾向があります。
Windows Serverは、Windowsコンピューター同士の連携機能が豊富です。複数のWindowsマシンを仮想化する場合、ユーザー管理を1か所で集中制御できるのが利点です。Windowsアプリケーションとの互換性も高いため、Windows環境を仮想化するのに向いています。
Windows Server
Windows Serverをベースとする仮想マシンの大きな特徴は、GUIベースの管理ツールが充実している点です。サーバーマネージャやHyper-Vマネージャーなどを利用することで、サーバーや仮想マシンの管理・運用がしやすくなります。
また、Active Directoryと組み合わせることで、ユーザーアカウントを1か所で集約して管理できます。グループポリシーを適用することで、セキュリティのルールやソフトウェアのインストールを一括で制御できるので、管理作業の効率化につながります。
Windows環境における仮想化は、Windows Serverの強みを活かせる選択肢と言えます。
Linux仮想マシン
Linux OSの仮想マシンでは、Ubuntuがよく利用されています。Ubuntuはデスクトップ用途にも対応しているため、操作性が高く使いやすいです。
Ubuntu
また、Ubuntuはディストリビューション(Linuxの区分)の中でもコミュニティの支援が活発で、豊富な情報がインターネット上に存在します。トラブルシューティングがしやすいのも大きなメリットです。Ubuntuはパッケージ管理システムのaptを利用するので、ソフトウェアのインストールとアップデートを簡単に行えます。操作性と情報量の両方が充実していて、仮想マシン上でLinuxを学ぶ入門編として適しているでしょう。
UbuntuはGNOMEをデフォルトのデスクトップ環境としていますが、KDEのKubuntuやXfceのXubuntuなどの公式派生ディストリビューションが存在します。目的に応じて使い分けることができます。
また、LAMP(Linux + Apache + MySQL + PHP)といったWebアプリケーションスタックを簡単に構築できるのも強みです。例えば、仮想マシン上でUbuntuサーバーを構築し、Apache+MySQL+PHPによるWebアプリケーション開発環境を手軽に試すこともできます。
カスタマイズ性と開発者向け機能が充実しているため、Ubuntuは仮想マシン上でのLinux利用に強くおすすめできます。
仮想マシンとコンテナの違い
仮想マシンとコンテナは、どちらも1つの物理マシン上で複数のアプリケーション実行環境を実現する技術ですが、以下のような違いがあります。
比較項目 | 仮想マシン | コンテナ |
実行環境 | ゲストOS上でアプリケーションが動作 | ホストOS上でアプリケーションが動作 |
性能 | あまり高速ではない | 高速 |
起動速度 | 遅い | 速い |
イメージサイズ | 大きい | 小さい |
仮想マシンはゲストOS上でアプリケーションが動作するため、OSそのものの分のリソースが余計に必要になります。そのため起動も遅く、実行時のメモリやCPU使用量が多くなります。
一方、コンテナはホストOSを共有する構造のため、OSレイヤーが1つあればよく、起動や実行が高速です。
用途としては、仮想マシンはアプリケーションの完全な隔離が必要な場合に適しています。一方、コンテナは軽量かつ速い実行が必要なWebアプリケーションなどに向いています。
リソースに制約がある場合はコンテナ、セキュリティ要件が厳しい場合は仮想マシンを選択するのが良いでしょう。それぞれの特徴を理解して活用することが重要です。
仮想マシンの選び方のポイント
仮想マシンの選び方のポイントについて、用途、コスト、性能、セキュリティの観点からわかりやすく解説していきます。
用途
用途によって必要な機能が異なるため、それに合った仮想マシンを選択することが重要です。
例えば学習・教育用途では、手軽に導入できて使い方も学びやすいものが良いでしょう。VirtualBoxやVMware Playerなどのフリー版がおすすめです。
開発/テスト用途では、アプリケーションとの互換性が高く、動作環境を柔軟に変更できるものが向いています。Oracle VM VirtualBoxやVMware Workstationなどが候補となります。
業務システム用途では、セキュリティ性が高く、より性能が高いものが重要視されます。VMware vSphereやMicrosoft Hyper-V、Citrix XenServerなどのエンタープライズ向け製品を選択するのがおすすめです。
このように、用途に応じた機能とライセンス形態を提供する製品を選ぶことがとても大切です。
コスト
仮想マシンのコストには、導入コストと運用コストの両方を考慮する必要があります。
導入コストは主にライセンス料です。用途や必要な機能に応じて、正規版やフリー版など料金形態を検討しましょう。
運用コストは保守料金です。24時間365日のサポートを含む料金プランもあるので、目的に合ったプランを選択します。
また、必要なライセンス数にも注意が必要です。CPUコア数やメモリ量によってライセンスが増え、コストも増大します。拡張可能な範囲も確認しましょう。コストパフォーマンスを重視する場合は、オープンソースのソリューションも検討する価値があります。
用途と規模に見合ったトータルコストを比較検討し、余裕を持った製品選定がコスト面で重要となります。
性能
仮想マシンの性能を判断する上で重要なのは、CPUコア数、メモリ容量、ストレージなどのスペックを確認することです。これらのスペックが、目的のシステムやアプリケーションの要件を満たしているかを判断する必要があります。
例えば、データベースサーバーを仮想マシンで運用する場合、最も重要なのはデータ処理能力です。データベースサーバーでは大量のデータを高速に処理する必要があるため、十分な数のCPUコアが搭載された仮想マシンを選択することが重要になります。データ処理能力が不十分だと、パフォーマンスの面で生産性が低下してしまう可能性が高いです。
一方でWebサーバーの場合はネットワークの速度が重要となり、1ギガビット/秒の高速な有線LANに対応していることを確認する必要があります。
このように、目的の処理内容と要件を確認した上で、それを満たすスペックが提供されている仮想マシンを選択することが大切です。十分な性能を得られるか検証することで、後々のトラブルを未然に防ぐことができます。
セキュリティ
仮想マシンのセキュリティ機能を評価する際のポイントは以下の通りです。
・仮想ネットワークの暗号化機能により通信を保護できるか
・ファイルやディスクの暗号化機能でデータを保護できるか
・トラフィック制御やリソース割り当て制限などにより、セキュリティのリスクを分散できるか
・ログやアクティビティの記録機能で可視化と解析がしやすいか
これらの機能面とともに、セキュリティの欠陥を修正するための更新プログラムの速やかな提供体制も確認すべき重要なポイントです。
業務内容に応じて必要なセキュリティのレベルを決めた上で、そのレベルを満たすセキュリティ機能を持つ仮想マシンのプラットフォームを選択することが大切です。十分なセキュリティ確保のためにも、仮想マシンのセキュリティ機能をしっかり確認しましょう。
仮想マシンのまとめ
この記事では、仮想マシンの概要やタイプ、メリット・デメリットなどをわかりやすく解説しました。実際に仮想マシンを業務や研究で活用したい場合は、まずは目的に合った製品を選ぶことがポイントになります。その際には、十分な検討と比較が必要不可欠です。
仮想マシンの導入や運用でお困りの点があれば、プロのシステムエンジニアが在籍している株式会社Jiteraご相談ください。丁寧なヒアリングを基に最適なソリューションをご提案致します。