Skip to content
Latchkey

仮想マシンとは?クラウド上のエミュレートされたコンピュータ

仮想マシン(VM)は、ソフトウェアでエミュレートされたコンピュータです。1 台の物理マシンを多数の隔離された VM で共有する hypervisor 上で、独自の完全なオペレーティングシステムを実行します。

VM により、1 台の物理サーバーが複数のサーバーであるかのように振る舞えます。hypervisor は各 VM に CPU、メモリ、ディスクを割り当て、各 VM はあたかもハードウェアを所有しているかのように完全な guest OS を実行します。VM はクラウド compute(EC2 インスタンス、Compute Engine の VM)や多くの CI runner の基盤です。

仮想化の仕組み

hypervisor はハードウェアと guest オペレーティングシステムの間に位置し、各 VM に仮想的な CPU、メモリ、ディスク、ネットワークのセットを与えます。guest OS は仮想化されていることに気づかず通常どおり動作し、hypervisor は同一 host 上の VM 間の隔離を強制します。

VM と container の比較

VM はハードウェアを仮想化し、独自のカーネルを持つ完全な OS を実行するため、より重く起動が遅くなりますが、強く隔離します。container は host のカーネルを共有するため、より軽く数ミリ秒で起動します。多くのシステムは、隔離と密度を両立させるために VM の中で container を実行します。

VM が適している用途

  • レガシーまたは OS 固有のソフトウェアの実行。
  • テナントや workload 間の強い隔離。
  • 既存サーバーのクラウドへの lift-and-shift。
  • オペレーティングシステムの完全な制御。

クラウドの VM

クラウドプロバイダーは VM を秒単位または時間単位で貸し出します。AWS の EC2、GCP の Compute Engine、Azure の Virtual Machines です。あなたはマシンタイプ(CPU、メモリ)とイメージを選び、プロバイダーが物理ハードウェアと hypervisor を扱います。

CI/CD における役割

CI runner は非常に多くの場合 VM です。各 job は新しい VM で実行され、その後破棄されるため、毎回クリーンで隔離された環境が得られます。Latchkey のようなマネージド runner プラットフォームは、VM ベースの runner をオンデマンドでプロビジョニングし、job がクリーンなマシンで開始し、完了時に VM を解放できるようにします。

重要なポイント

  • VM は、hypervisor を介して完全な OS を実行する、ソフトウェアでエミュレートされたコンピュータです。
  • VM は container より強く隔離しますが、より重く起動が遅くなります。
  • CI runner は多くの場合、クリーンで隔離された環境のための、job ごとの新しい VM です。

関連ガイド