멀티패스 VM 매니저 참고서: Ubuntu, Windows 및 macOS 가이드

다중 패스 설치, 설정 및 필수 명령어

Page content

Multipass은 Linux, Windows, macOS에서 Ubuntu 클라우드 인스턴스를 쉽게 생성하고 관리할 수 있는 가벼운 가상 머신 관리자입니다.

개발자가 고립된 환경을 필요로 하거나, DevOps 엔지니어가 구성 테스트를 수행하거나, Linux를 배우고 있는 사람이라면, Multipass는 Ubuntu 가상 머신을 빠르게 생성할 수 있는 간단한 명령줄 인터페이스를 제공합니다.

Multipass VM Manager Ubuntu

Multipass란 무엇인가요?

Multipass는 Canonical의 공식 도구로, Ubuntu 가상 머신을 생성하고 관리하는 데 사용됩니다. 간단하고 빠르며, 여러 플랫폼을 지원하는 특징으로, 다양한 운영체제에서 일관된 Ubuntu 환경이 필요한 개발자에게 이상적인 선택입니다.

주요 기능

  • 크로스 플랫폼: Linux, Windows, macOS에서 작동
  • 가볍고 효율적: 전통적인 가상 머신보다 자원 사용이 적음
  • cloud-init 지원: cloud-init 메타데이터로 VM 구성 가능
  • 스냅샷 지원: VM 스냅샷 생성 및 복구 가능
  • 네트워크 통합: 호스트와 VM 간의 네트워킹이 간단함
  • SSH 액세스: 내장 SSH 키 관리 기능

가장 유용한 명령어

# 빠른 참조
multipass launch --name dev --cpus 2 --memory 4G --disk 20G
multipass shell dev
multipass mount ./project dev:/home/ubuntu/project
multipass snapshot dev before-changes
multipass restore dev before-changes
multipass delete dev
multipass purge

설치 방법

Ubuntu/Linux

# snap을 통한 설치 (추천)
sudo snap install multipass

# apt을 통한 설치
sudo apt update
sudo apt install multipass

Windows

  1. multipass.run에서 Windows 설치 파일을 다운로드합니다.
  2. 관리자 권한으로 설치 프로그램을 실행합니다.
  3. Multipass는 기본적으로 Hyper-V를 사용합니다(Windows 10 Pro/Enterprise) 또는 VirtualBox로 대체됩니다.

macOS

# Homebrew을 통한 설치
brew install --cask multipass

# multipass.run에서 다운로드

기본 사용법

첫 번째 VM 생성

# 기본 설정으로 VM 생성
multipass launch

# 특정 이름으로 VM 생성
multipass launch --name my-vm

# 특정 Ubuntu 버전으로 VM 생성
multipass launch 22.04 --name ubuntu-22

# 커스텀 리소스로 VM 생성
multipass launch --name dev-vm --cpus 2 --memory 4G --disk 20G

VM 관리

# 모든 VM 목록 보기
multipass list

# VM 시작
multipass start my-vm

# VM 중지
multipass stop my-vm

# VM 삭제
multipass delete my-vm
multipass purge  # 모든 삭제된 VM 제거

VM 액세스

# VM 내에서 쉘 열기
multipass shell my-vm

# VM 내에서 명령 실행
multipass exec my-vm -- ls -la

# 파일을 VM으로/VM에서 복사
multipass transfer file.txt my-vm:/home/ubuntu/
multipass transfer my-vm:/home/ubuntu/file.txt ./

Multipass VM 내부에 들어가면 전체 Ubuntu 쉘 환경에 접근할 수 있습니다. 효율적인 명령줄 작업을 위해 필수 명령어와 단축키에 대한 정보는 Bash Cheat Sheet을 참조하세요.

Multipass Instances

Multipass 간편 가이드

VM 관리 명령어

# 생성 및 실행
multipass launch                    # 기본 VM 생성
multipass launch --name vm1        # 이름 지정 VM 생성
multipass launch 20.04 --name old  # 특정 Ubuntu 버전 사용

# 리소스 할당
multipass launch --cpus 2 --memory 4G --disk 20G --name dev

# VM 제어
multipass start vm1                # VM 시작
multipass stop vm1                 # VM 중지
multipass restart vm1               # VM 재시작
multipass suspend vm1              # VM 일시 중지

# 정보 확인
multipass list                     # 모든 VM 목록 보기
multipass info vm1                 # VM 세부 정보
multipass get local.privileged-mounts  # 마운트 설정 확인

파일 작업

# 파일 전송
multipass transfer file.txt vm1:/home/ubuntu/
multipass transfer vm1:/home/ubuntu/file.txt ./
multipass transfer --recursive ./folder vm1:/home/ubuntu/

# 호스트 디렉토리 마운트
multipass mount /host/path vm1:/vm/path
multipass umount vm1:/vm/path

네트워크 설정

# 네트워크 정보 확인
multipass info vm1 | grep IPv4

# 포트 전달 (Windows/macOS)
multipass set local.port-forwarding=true
multipass restart vm1

스냅샷 및 백업

# 스냅샷 생성
multipass snapshot vm1 snapshot1

# 스냅샷 복구
multipass restore vm1 snapshot1

# 스냅샷 목록 보기
multipass list --all

고급 설정

cloud-init 통합 cloud-config.yaml 파일을 생성합니다:

#cloud-config
package_update: true
package_upgrade: true
packages:
  - docker.io
  - git
  - curl

users:
  - name: developer
    sudo: ALL=(ALL) NOPASSWD:ALL
    shell: /bin/bash
    ssh_authorized_keys:
      - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC...

runcmd:
  - systemctl enable docker
  - systemctl start docker

cloud-init과 함께 VM 생성:

multipass launch --cloud-init cloud-config.yaml --name configured-vm

커스텀 이미지

# 사용 가능한 이미지 목록 보기
multipass find

# 특정 이미지 사용
multipass launch daily:22.04 --name daily-vm

개발 도구와의 통합

Docker 통합 Multipass는 Docker와 잘 호환되어 컨테이너 기반 개발에 사용할 수 있습니다. Docker를 Multipass VM 내부에서 실행하거나, Docker 개발을 위한 고립된 환경을 생성하는 데 사용할 수 있습니다.

개발 환경 Python 개발을 위해 Python 가상 환경과 유사한 고립된 환경을 설정할 수 있습니다. VS Code 사용자는 Multipass VM을 원격 개발 환경으로 사용할 수 있으며, VS Code Dev Containers와 함께 전체 OS 고립이 필요한 시나리오에 사용할 수 있습니다.

자체 호스팅 애플리케이션 Multipass는 GiteaOllama와 같은 자체 호스팅 애플리케이션을 고립된 환경에서 테스트하는 데 이상적입니다. 컨테이너 오케스트레이션을 위해 Multipass VM 내부에 Kubernetes 클러스터를 실행할 수 있으며, Kubernetes Cheat Sheet을 사용하여 컨테이너 워크로드를 관리할 수 있습니다.

문제 해결

일반적인 문제

# Multipass 상태 확인
multipass get local.driver

# Multipass 재설정
multipass purge
sudo snap restart multipass

# VM 로그 확인
multipass logs vm1

성능 최적화

# 더 나은 성능을 위해 특권 마운트 활성화
multipass set local.privileged-mounts=true

# 메모리 제한 설정
multipass set local.memory=8G

대안과의 비교

Multipass vs Docker

  • Multipass: 전체 VM, OS 수준 테스트에 더 적합, 자원 사용량이 더 많음
  • Docker: 컨테이너, 더 효율적, 애플리케이션 배포에 더 적합

Multipass vs VirtualBox/VMware

  • Multipass: 명령줄 중심, cloud-init 지원, 자동화가 더 쉬움
  • VirtualBox/VMware: GUI 기반, 더 많은 설정 옵션, 데스크탑 사용에 더 적합

Multipass vs Proxmox

  • Multipass: 가볍고, 단일 VM에 초점, 개발 환경에 적합
  • Proxmox: 전체 가상화 스택, 생산 환경에 더 적합, 클러스터링 및 고가용성과 같은 고급 기능 제공

Multipass vs Vagrant

  • Multipass: Ubuntu 중심, 간단한 설정, 단일 VM 시나리오에 더 적합
  • Vagrant: 다중 제공자 지원, 복잡한 프로비저닝, 다중 VM 설정에 더 적합

최선의 실천 방법

  1. 리소스 관리: 작업 부하에 따라 적절한 CPU 및 메모리 할당
  2. 스냅샷 전략: 주요 변경 전 스냅샷 생성
  3. 네트워크 보안: 노출된 서비스에 적절한 방화벽 규칙 사용
  4. 백업 전략: 중요한 VM 데이터를 정기적으로 백업
  5. 정리: 사용하지 않는 VM 제거하여 디스크 공간 확보

Multipass 사용 시기

Multipass를 선택할 때:

  • 개발에 전체 Ubuntu VM이 필요할 때
  • 간단한 명령줄 VM 관리가 필요할 때
  • 다양한 운영체제에서 작업할 때
  • cloud-init 구성 지원이 필요할 때
  • 고립된 환경에서 자체 호스팅 애플리케이션 테스트가 필요할 때

대안을 고려할 때:

  • 최대 성능이 필요할 때 (Docker 컨테이너 사용)
  • 복잡한 다중 VM 설정이 필요할 때 (Vagrant 사용)
  • GUI 기반 관리가 필요할 때 (VirtualBox/VMware 사용)

Multipass는 플랫폼을 관계없이 간단하고 일관된 Ubuntu 개발 환경을 제공하여, 전통적인 가상화 도구의 복잡성을 피하면서도 신뢰할 수 있는 VM 관리가 필요한 개발자에게 이상적인 선택입니다.

유용한 링크