仮想マシンとは|特徴や活用事例をわかりやすく解説

現在、当たり前のように利用されている技術に「仮想マシン」が挙げられます。物理的にコンピューターを保有するのではなく、仮想環境にコンピュータを用意して、それを利用する考え方です。コスト削減などの目的から、非常に多くの現場で利用されています。
必ず理解しておきたい技術ではありますが、古くから利用されていることもあり「今更仮想マシンについて尋ねるのは恥ずかしい」という人もいるでしょう。今回はそのような人に向けて、仮想マシンの基本的な部分から特徴、活用事例について分かりやすく解説します。
仮想マシンとはなにか
そもそも仮想マシンとは、物理的なコンピューターと同じ機能を専用のソフトウェアを利用して実現する技術です。実際に物理的なコンピューターを用意するのではなく、ソフトウェアの中で「コンピューターがあるかのような動作」を実現します。物理的なコンピューターではなく、仮想的な空間で生み出されたコンピューターである「仮想マシン」と呼ばれるのです。
仮想マシンを用意するためには、物理的なコンピューターが最低でも1台は必要です。こちらのコンピューターに、仮想化に向けたソフトウェアをインストールして、その中で仮想マシンを実現します。ソフトウェアをインストールするためには、物理的なコンピューターが必要となるため、これを避けることはできません。
ただ、物理的なコンピューターが用意できれば、その中に複数の仮想マシンを構築できます。例えば、1台の物理的なサーバーで、3台の仮想マシンを構築することができるのです。しかも、それぞれのマシンは独立したコンピューターとして扱われます。つまり、物理的には1台しかなくとも、仮想マシンを利用することによって、3台あるかのように利用できるのです。
仮想マシンの種類と特徴

仮想マシンは、どのようなタイプのソフトウェアを利用するかによって、3種類に分けられます。それぞれ、どのような仮想マシンであるのか解説すると以下のとおりです。
ホストOS型
物理的なコンピューターにインストールされた「ホストOS」を基盤として、この上に仮想化ソフトウェアをインストールするものです。上記で解説した仮想マシンは、ホストOS型に該当するものが多いと考えましょう。
ホストOS型は、ソフトウェアさえインストールすれば簡単に仮想マシンを実現できます。そのため、日頃から利用しているパソコンを基盤とすることも、専用のハイスペックサーバーを基盤とすることも可能です。手軽に仮想マシンを用意できる技術だと考えて良いでしょう。
ただ、ホストOS型で仮想マシンを実現する場合、物理的なコンピューターと仮想マシンの間にホストOSが介入してしまいます。物理的なリソースの操作などは、全てホストOSを介して行われるため「オーバーヘッド」と呼ばれる遅延や無駄なリソースの消費が生じてしまうのです。高速な処理には向いていない点には注意しなければなりません。
なお、ホストOS型は無料でインストールできるソフトウェアもあるため、以下のような製品を試すと良いでしょう。
- VMwarePlayer
- VMwareWorkstationPlayer
- OracleVMVirtualBox
ハイパーバイザー型
ハイパーバイザー型は、ホストOS型のように物理的なコンピューターにOSをインストールするのではなく、ハイパーバイザーと呼ばれる専用のソフトウェアをインストールします。一般的に、コンピューターはOSをインストールして操作しますが、ハイパーバイザーをインストールすることでも操作できるようになるのです。
なお、ハイパーバイザーは仮想マシンを実現するための専用ソフトウェア(OS)です。つまり、一般的に利用されているサーバーOSのWindowsやLinuxとは大きく異なっています。ハイパーバイザーだけで何かしらアプリケーションが動作するわけではありません。例えば、Windowsに搭載されている電卓やペイントなどの機能は、ハイパーバイザーにはないのです。
ただ、仮想マシンに特化していることから、高速に動作することが特徴です。物理的なコンピューターの操作を得意としていて、最小限のオーバーヘッドでリソースを操作できます。複数台の仮想マシンを動作させる場合でも、適切にリソースを割り当てて、高速な動作を担保できるのです。
もし、ハイパーバイザー型の仮想マシンを実現したいならば、例えば以下のソフトウェアをインストールする必要があります。また、WindowsやLinuxなどすでにOSがインストールされている場合は、それに置き換えなければなりません。
- VMwarevSphere
- Hyper-V
- XenServer
コンテナ型
コンテナは厳密に表現すると仮想マシンではありません。ただ、仮想マシンの一種として紹介されるケースが多いため、ここでは「仮想化」という観点からコンテナ型についても紹介します。
コンテナ型は「コンテナ」と呼ばれる、アプリケーションを実行するためのリソースなどがまとめられた仮想環境を活用する技術です。「コンテナエンジン」と呼ばれる仮想環境の管理アプリケーションを利用して、仮想マシンのようなものを実現します。割り当てられたリソースなどを利用して、その中でアプリケーションを実行したり必要な処理を進めたりするのです。
一見すると「ホストOS型に似ているのではないか」との感想を持つでしょう。ただ、コンテナ自体はOSを有しておらず、コンテナエンジンが動作しているOSを利用します。例えば、Windows10にコンテナエンジンがインストールされていると、その上に構築されるコンテナは全てWindows10になるのです。この点は、自由度が低く、仮想化のメリットが少々失われていると言わざるを得ません。
ただ、コンテナはリソースに余裕さえあれば、簡単に構築したり終了したりできることが特徴です。仮想マシンは、ビルド&スクラップにコストが生じてしまいますが、コンテナではそのようなことが起こりません。状況によっては、仮想マシンではなくコンテナの方が適しているでしょう。
仮想マシンのメリット

仮想マシンの種類と特徴を解説したため、続いては仮想マシン全体に共通するメリットを紹介します。
コストの低減
仮想マシンを導入することで、物理的なコンピューターの台数を減らせます。購入したり運用したりするコンピューターの数が減ることから、コストの削減につながることがメリットです。特に企業で利用するようなハイスペックなサーバーは高価であり、この台数を減らせることは大きなメリットになるでしょう。
また、サーバーや部品の購入費用だけではなく、これらを管理する担当者の人件費という点でもコストの削減ができます。管理するサーバーの台数が増えると、担当者の数を増やさざるを得ません。しかし、仮想マシンにして物理的なコンピューターの数を減少させれば、管理する人員も少なくできます。ハードウェア的にも人件費的にも、仮想マシンによってコストの削減が実現できるのです。
可用性の向上
仮想マシンを活用することで、可用性を高められるメリットがあります。障害が発生した時などでも、最小限の時間で復旧させることが可能です。日本は天災が多いため、それらに備えるという観点からも魅力的な技術といえます。
例えば、仮想マシンを利用していると、簡単に全体のバックアップを取得することが可能です。オンプレミスのサーバーは、このようなバックアップを取得しにくいですが、仮想マシンはそうではありません。こまめにバックアップを取得することで、障害の発生に備え、可用性を高められます。
また、バックアップしていれば、異なるコンピューターで動作させることが可能です。例えば、東京のデータセンターにトラブルが起きても、大阪のデータセンターで起動できます。これもオンプレミスには難しい技術であり、仮想マシンの大きなメリットです。
複数OSの効率的な活用
一般的に、仮想マシン上では複数のOSを起動できます。例えば、WindowsとLinuxのサーバーを、同時に起動することが可能です。物理的なコンピューターが1台でも、複数のOSを同時に起動して利用できます。
近年は、複数のOSを組み合わせてシステム構築することが当たり前です。ただ、それぞれに物理的なコンピューターを用意していると、コスト面など様々な問題が生じてしまいます。しかし、これらを仮想マシンで実装することによって、効率よく活用できるようになるのです。
仮想マシンのデメリット
仮想マシンにはメリットがありますが、同時にデメリットもあります。
性能の低下
物理的なコンピューターと比較すると、どうしても性能が低下しがちです。例えば、上記で解説したオーバーヘッドが生じることによって、処理に時間を要してしまいます。また、複数の仮想マシンを同時に起動することで、リソース不足に陥ることもあるでしょう。
基本的に、仮想マシンで安定した挙動を期待するならば、リソースに余裕を持たせることが重要です。限界までリソースを使用すると、突発的な負荷によって不足しかねません。総じて、物理的なコンピューターよりも、多めのリソースを用意しないと性能が低下する点がデメリットです。
専門性の高さ
仮想マシンを運用するためには、専門的なスキルが必要です。スキルの難易度が高いため、ここがデメリットになってしまいます。人材確保が難しいことがあり、この部分もデメリットになってしまうでしょう。
近年は仮想化の分野が進化していて、新しい技術が次々と生み出されています。難易度の高い技術によって、仮想マシンは支えられている部分があり、新しい技術はどれも容易ではないのです。「技術の進化によって簡単に扱えるようになった」という状況ではありません。
そのため、仮想マシンを使いこなすためには、専門的なスキルを持つエンジニアの確保が必要です。インフラに詳しく、なおかつ仮想化にも知見のある人材がいなければ、専門性の高さに対応できません。
セキュリティ対策の負担
仮想化に関連するセキュリティ対策が必要となり、考慮しなければならない範囲が増えることがデメリットです。例えば、仮想マシンのセキュリティ対策だけではなく、仮想マシンを動作させるためのソフトウェアやハイパーバイザーのセキュリティ対策も必要とされます。
とはいえ、基本的にやるべきことは大きく変化しません。最新のセキュリティパッチを適用したり、ベストプラクティスに沿った設定をしたりするだけです。ただ、管理対象が増えることで作業が煩雑になり、コストが高まったり抜け漏れが発生するリスクが増えたりします。セキュリティという重要な部分で負荷が高まってしまうことは大きなデメリットです。
仮想マシンの活用事例
仮想マシンの活用事例は数多くあるため、今回はイメージしやすいものを2つ紹介します。
自治体の基幹システム
日本の自治体はデジタル化が遅れていると言われていますが、仮想マシンを利用して基幹システムを刷新している事例が増えています。今まで、市民情報のような重要な情報はオンプレミスで運用される傾向がありましたが、現在では仮想マシンに切り替わっているのです。
システムを仮想マシンに切り替えることで、処理の高速化や可用性の向上が実現されています。例えば、窓口での待ち時間が短くなったり、システムが停止して手続きできないような事態を回避できたりします。アプリケーションそのものに大きな違いがなくとも、実行する環境が変化することで、市民の利便性が高まりました。
病院のシステム基盤再構築
病院のシステム基盤を仮想化することで、高い可用性を実現した事例があります。上記で触れたとおり、仮想マシンはバックアップが簡単であるため、頻繁にデータをバックアップしておくことでトラブルに備えるのです。
想像の通り、病院のシステムにトラブルがあると、診察などに影響が出ることは言うまでもありません。病院としてはそのような事態をどうにかして避けたいでしょう。ゼロにすることは非常に難しいですが、可能な限りリスクを回避するために、仮想マシンを活用して高い可用性を実現しました。
まとめ
仮想化技術を活用した仮想マシンについて解説しました。物理的なコンピューター1台で複数のマシンを動作させる仕組みであり、大きく分けて3種類あります。どれを利用するかによって、仮想マシンの特徴が変化するため、利用前に吟味しなければなりません。
仮想マシンはコストが削減できるなどのメリットがありますが、運用には専門的なスキルが求められます。対応できる人材の確保が難しいことが考えられ、その点には注意して導入を決定しましょう。なお、必要に応じて運用をアウトソーシングするなどの選択肢もあります。