Multipass:30秒でUbuntu仮想マシンを作成 — VirtualBoxに代わる「救世主」

Virtualization tutorial - IT technology blog
Virtualization tutorial - IT technology blog

午前2時、VirtualBoxという名の悪夢

よくある光景です。深夜、本番サーバーで不可解なエラーが発生しました。バグを再現するためにクリーンなUbuntu環境が至急必要ですが、手元のPCはWindows。VirtualBoxを起動しますか? ロードを待ち、ISOファイルを選択し、RAMやCPUを構成して、OSのインストールが終わるのをじっと待つ。少なくとも貴重な15分が失われます。一分一秒を争う状況では、あまりにも遅すぎます。

私が**Multipass**に完全に移行したのは、それが理由です。これはCanonical(Ubuntuの開発チーム)によって構築されたツールです。コマンドを1回打つだけで、すぐに仮想マシンが手に入ります。WindowsのHyper-V、macOS의 HyperKit、LinuxのKVMといったOS標準のハイパーバイザーを活用するため、非常に軽量です。重いハードウェアのエミュレーションではなく、ホストマシンのリソース上でほぼ直接動作します。

私は現在、Proxmoxで12台のVMを管理するホームラボを運用しています。しかし、スクリプトの断片やNginxの設定を素早くテストしたいときは、いつもノートPC上でMultipassを選びます。このツールを使いこなす方法を以下に紹介します。

クイックスタート:一瞬で仮想マシンを用意する

マウス操作のことは忘れましょう。Multipassでは、すべてがターミナル上で驚異的なスピードで進行します。

1. 簡単なインストール

  • macOS: brew install --cask multipass
  • Windows: choco install multipass を使用するか、公式サイトからインストーラーをダウンロードします。
  • Linux: sudo snap install multipass

2. 最初の仮想マシンを起動する

TerminalまたはPowerShellを開き、以下のコマンドを1つだけ入力します:

multipass launch --name dev-box

Multipassは最新のUbuntu LTSイメージを自動的にダウンロードし、リソースを構成します。安定したネットワーク環境であれば、このプロセスは60秒もかかりません。

3. シェルにアクセスする

multipass shell dev-box

これでUbuntu環境に入りました。自由に設定を試すことができます。もし誤って壊してしまっても、削除して再作成するのにかかる時間はわずか30秒です。

なぜMultipassはDevOpsエンジニアに好まれるのか?

ITを学び始めたばかりの人の多くは、グラフィカルなUI(GUI)があるという理由でVirtualBoxを選びがちです。しかし実際には、OSのGUIはRAMとCPUを無駄に消費するだけです。Multipassはそうした不要な要素を完全に排除しています。

  • 起動スピード: Multipassの仮想マシンは約15〜20秒で準備が整います。VirtualBoxでは通常2〜3分かかります。
  • リソースの節約: VMが動作していないとき、Multipassがバックグラウンドプロセスで消費する RAMはわずか20〜30MB程度です。
  • 自動化: Cloud-initをサポートしており、起動直後にDocker、Git、Node.jsなどをプリインストールした状態にできます。

実務に合わせたカスタマイズ

デフォルト構成は比較的控えめです。Kubernetesのミニクラスターのような重いアプリケーションを実行する場合は、リソースを明示的に指定する必要があります。

RAMとCPUの割り当て

例えば、2 CPU、4GB RAM、20GBのディスクを備えた強力な仮想マシンを作成する場合:

multipass launch --name k8s-node --cpus 2 --memory 4G --disk 20G

ホストマシンと仮想マシン間でのデータ共有

これこそが「神機能」です。ホストマシンのVS Codeでコードを書き、それを標準的なLinux環境で実行したい場合に役立ちます:

# プロジェクトディレクトリを仮想マシンにマウントする
multipass mount ./my-project dev-box:/home/ubuntu/project

Cloud-initを使用した自動セットアップ

手動で apt update を打つ手間を省きましょう。cloud-config.yaml ファイルを用意します:

#cloud-config
packages:
  - docker.io
  - curl
runcmd:
  - systemctl start docker

その後、設定ファイルを指定して起動します:

multipass launch --name auto-docker --cloud-init cloud-config.yaml

システムの管理とクリーンアップ

古い仮想マシンがノートPCのリソースを占有しないようにしましょう。以下のクリーンアップコマンドを覚えておいてください:

  • multipass list: 実行中の仮想マシン一覧を確認します。
  • multipass stop dev-box: バッテリー節約のために一時停止します。
  • multipass delete dev-box: 仮想マシンをごみ箱に移動します。
  • multipass purge: 永久に削除し、ディスク容量を完全に解放します。

実践的なTips

長期間、重いソリューションの代わりにMultipassを使ってきて分かった、いくつかの注意点を紹介します:

  1. IPアドレスの確認: ホストマシンを再起動するとVMのIPが変わることがあります。SSHを設定する前に multipass info dev-box で最新のIPを確認してください。
  2. エイリアスの活用: ホストのターミナルから直接VM内のコマンドを実行できます。例えば multipass alias dev-box:ls my-ls とすれば、後は multipass my-ls と打つだけです。
  3. 旧バージョンのテスト: Ubuntu 20.04でアプリをテストする必要がある場合は、multipass find でサポートされているイメージの一覧を確認してください。

Multipassは、Proxmoxのような専門的な仮想化システムを完全に置き換えるためのものではありません。しかし、開発や迅速なテストのためのサンドボックスとしては、まさに敵なしです。もし VirtualBoxの遅さに疲れているなら、今すぐMultipassを試してみてください。仮想マシンを作成するたびに15分節約できれば、バグ修正に最大限集中できるようになります。

Share: