仮想マシン(VM)は「コンピュータの中のコンピュータ」です。物理的なPCと同様に動作するソフトウェアであり、独自の仮想CPU、メモリ、ストレージ、ネットワークを備えています。これにより、デスクトップ上のウィンドウやサーバー上で別のオペレーティングシステム(OS)を実行できます。メインシステムに影響を与えずに、アプリをインストールしたり、設定を試したり、古いソフトウェアを実行できる、安全で独立したサンドボックスと考えてください。
内部では、ハイパーバイザーと呼ばれるプログラムが仮想マシン(VM)を作成・管理します。このプログラムは実際のハードウェアを切り分け、各仮想マシンにその一部を割り当てます。VM内のゲストOSは、ホストシステムや他の仮想マシンとリソースを共有しているにもかかわらず、自分だけがPC全体を独占していると認識します。すごい仕組みですよね?
厳密に言えば、VMはハードウェアを仮想化し、コンテナはOSのユーザースペースを仮想化します。VMは完全なゲストOSを含み、より隔離されているため、強力な分離や異なるOSの実行に最適です。コンテナはホストOSのカーネルを共有するため軽量で起動が速く、アプリのパッケージングやデプロイに最適です。両者にはそれぞれの役割があります。VMは独立したアパート、コンテナは同じフロアにある効率的なワンルームマンションです。
必要な用途によります。ソフトウェアのテスト、信頼できないファイルの実行、仕事用と個人用の環境分離、特定のアプリに必要なOSの使用などには、仮想マシン(VM)が非常に有効です。日常的なウェブ閲覧やゲームプレイには、通常はホストOSを使用します。もちろんVM内でのゲームプレイも可能ですが、パフォーマンスやハードウェアパススルーの設定がすぐに複雑になるため、多くのユーザーにとって第一選択肢とはなりません。
エキゾチックではなく、単に現代的なだけです。過去10年間のほとんどのCPUは仮想化サポート(Intel VT-x/VT-dまたはAMD-Vを確認)を備えており、少なくとも8~16GBのRAMがあると作業が楽になります。ストレージ容量も重要です。VMディスクファイルはかなりの容量になることがあります。ノートPCでは、VMに負荷がかかるとファンの騒音とバッテリー消費が増加します。デスクトップやサーバーでは、RAMとストレージを十分に確保すれば、複数のVMを快適に実行できます。
仮想マシン(VM)は厳重に分離されているため、データセンターで広く採用されている理由の一つです。とはいえ、魔法のような解決策はありません。ホストOSとゲストOSを常に最新の状態に保ち、信頼できるハイパーバイザーを使用し、他の環境と同様のセキュリティ対策を実施してください。スナップショットは強力な味方です。大きな変更前には必ずスナップショットを取得し、失敗を涙を流さずに元に戻せるようにしましょう。
デスクトップ環境では、Hyper-V、VirtualBox、VMware Workstation、Parallelsなどのツールが利用可能です。サーバー環境では、KVM、VMware ESXi、Hyper-Vが一般的です。適切な選択は、OS、ハードウェア、およびPCIe/GPUパススルー、ライブマイグレーション、共有ストレージなどの機能が必要かどうかによって異なります。