【かそうましん】

仮想マシン(VM) とは?

💡 1台のPCの中に何台ものPCを作れる「入れ子のコンピューター」
📌 このページのポイント
ハードウェア(CPU / メモリ / ストレージ) ハイパーバイザー VM 1 アプリ A ゲスト OS 1 仮想HW VM 2 アプリ B ゲスト OS 2 仮想HW VM 3 アプリ C ゲスト OS 3 仮想HW
仮想マシンの構成
ひよこ ひよこ

仮想マシンって何がうれしいの?普通にPCを使えばよくない?

ペンギン先生 ペンギン先生

例えば会社に高性能なサーバーが1台あるとして、部署ごとに専用サーバーを買うのはもったいないよね。仮想マシンなら1台の物理サーバーの中に仮想のサーバーを何台も作って、それぞれ独立して使える。ハードウェアの利用効率がぐっと上がるんだよ。

ひよこ ひよこ

コンテナとは何が違うの?

ペンギン先生 ペンギン先生

仮想マシンはOS丸ごと仮想化するから、各VMにWindowsLinuxと異なるOSを入れることもできる。その代わり起動に数分かかるし、OSの分だけリソースも食う。コンテナはホストOSのカーネルを共有するから軽くて高速だけど、異なるOSは動かせない。用途によって使い分けるんだ。

ひよこ ひよこ

クラウドで使うEC2とかも仮想マシンなの?

ペンギン先生 ペンギン先生

そう。AWSのEC2、AzureのVirtual Machines、GCPのCompute Engineは全部仮想マシンだよ。クラウド事業者が巨大なデータセンターの物理サーバーハイパーバイザーで分割して、ユーザーに1台ずつ貸し出しているんだ。

ひよこ ひよこ

「VM同士は干渉しない」っていうけど、同じ物理マシン上にいるなら本当に安全なの?

ペンギン先生 ペンギン先生

実はそこは完全に安全とは言い切れない領域なんだ。2018年に発見されたSpectreやMeltdownという脆弱性は、CPUキャッシュを悪用して同じ物理マシン上の別VMのメモリを推測できてしまった。ハイパーバイザーがメモリ空間を分離していても、CPUの投機実行という最適化の仕組みを通じて情報が漏れ得るという話で、「ソフトウェアの分離」と「ハードウェアレベルの分離」は別物だということを突きつけた事件だったんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「仮想マシン」って出てきたら「物理マシンの中にソフトウェアで作った仮想のコンピューターのことだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Virtual Machine」 = 仮想の機械
💬 Virtual(仮想の)+ Machine(機械)。物理的に存在しないけど、本物のコンピューターと同じように動くよ
← 用語集にもどる