GN⁺: Ubuntu Multipass로 개발 환경 강화하기
(letsdebug.it)- Ubuntu Multipass는 워크스테이션에서 Linux 가상 머신을 빠르게 실행하고 관리하는 도구임
- Linux, MacOS, Windows에서 사용 가능
- Docker나 VirtualBox의 대안으로, 더 쉽고 간단하게 사용할 수 있음
- 워크스테이션을 깨끗하게 유지하고 소프트웨어 테스트 및 배포에 유용함
Multipass는 어떻게 작동하는가?
- 새로운 가상 머신 생성 및 실행:
multipass launch --name backend
- 상태 확인:
multipass info backend
- 명령 실행:
multipass exec backend -- systemctl restart apache
- 인터랙티브 셸 세션 실행:
multipass shell backend
- 모든 인스턴스 목록:
multipass list
- 재부팅:
multipass restart backend
- 인스턴스 삭제:
multipass delete backend
- 디렉토리 마운트(
mount
) 및 파일 복사(transfer
) 등의 추가 명령도 있음 - 자세한 문서는 여기에서 확인 가능함
Multipass로 무엇을 할 수 있는가?
- 가상 머신과 컨테이너는 개발자의 도구 벨트에서 가장 유용한 도구임
- 서드파티 소프트웨어를 격리된 환경에 설치하여 워크스테이션을 깨끗하고 건강하게 유지할 수 있음
- 깨끗한 환경에서 테스트와 배포를 진행하여 "내 컴퓨터에서는 잘 되는데" 증후군을 줄일 수 있음
- Docker, VMWare, VirtualBox, 저렴한 VPS, 클라우드의 일회용 인스턴스 등 다양한 솔루션이 있음
- Multipass 가상 머신은 완전한 Ubuntu LTS 인스턴스임
- Ubuntu Linux 서버에서 할 수 있는 모든 작업을 Multipass 인스턴스에서 할 수 있음
- 워크스테이션과 격리된 상태에서 소프트웨어를 실행할 수 있음
- 여러 마이크로 인스턴스를 실행하여 자동화된 통합 테스트를 수행할 수 있음
- 배포 스크립트를 로컬에서 테스트할 수 있음
Multipass의 장점
Multipass 인스턴스는 완전한 Ubuntu LTS를 실행함
-
nano
와curl
등 모든 것이 기본적으로 준비되어 있음 - 친숙한 Linux 도구를 바로 사용할 수 있음
- 새로운 명령을 배울 필요가 없어 개발자의 뇌 용량을 절약할 수 있음
Multipass 인스턴스는 연결됨
- 인스턴스를 실행하자마자 LAN과 WAN에 접근 가능함
- 추가 설정 없이 연결이 열려 있음
- 가상 네트워크를 수동으로 구성하거나 포트를 매핑할 필요가 없음
Multipass 인스턴스는 지속적임
- Docker 컨테이너는 일회용으로 설계됨
- 데이터는 공유 볼륨에 저장해야 함
- Multipass는
mount
명령으로 호스트 폴더를 인스턴스에 마운트할 수 있음 - 기본 인스턴스는 기본적으로 홈 폴더를
~/Home
으로 마운트하여 파일에 즉시 접근 가능함
Multipass 인스턴스 관리는 쉬움
- 명령 구문과 옵션이 적고 외우기 쉬움
- 명령 실행과 파일 전송 기능으로 소프트웨어 설치, 통합 테스트, 배포 작업 등을 자동화하는 스크립트를 쉽게 작성할 수 있음
UI도 있음
- PopOS! Linux 박스에 Multipass를 설치하면 상단 바에 UI가 나타남
어디서 구할 수 있는가?
- Multipass는 Linux, MacOS, Windows에서 사용 가능함
- Linux에서는
snap
으로 설치하는 것이 가장 좋음 - Ubuntu 기반 배포판에서는
snap
이 이미 설치되어 있을 가능성이 높음 - 그렇지 않으면 패키지 관리자를 사용하여
snap
데몬을 먼저 설치해야 함 - 다른 플랫폼에서는 여기에서 적절한 설치 패키지를 다운로드할 수 있음
비고
- Oracle VirtualBox와 같은 다른 VM 소프트웨어가 실행 중이면 Multipass 인스턴스가 시작되지 않을 수 있음
- VirtualBox를 중지하고 다시 시도하면 됨
GN⁺의 정리
- Ubuntu Multipass는 개발자와 DevOps 엔지니어에게 유용한 가상 머신 관리 도구임
- Multipass는 개발 환경을 격리하고 깨끗하게 유지하는 데 매우 유용하며, 특히 다양한 Linux 도구를 쉽게 사용할 수 있어 개발자에게 친숙함.
- Docker나 VirtualBox보다 더 쉽고 간단하게 사용할 수 있음
- Docker와 비교했을 때, 지속적인 데이터 저장과 네트워크 설정의 간편함이 큰 장점임. 하지만 Docker의 경량성과 빠른 배포 속도도 무시할 수 없음.
- 완전한 Ubuntu LTS 인스턴스를 실행하여 친숙한 도구와 명령을 바로 사용할 수 있음
- 로컬에서 다양한 테스트와 배포 시나리오를 쉽게 시도할 수 있어, 실제 환경에서 발생할 수 있는 문제를 미리 발견하고 해결할 수 있음
- 다양한 플랫폼에서 사용할 수 있으며, 설치도 간단함
정말 snap을 깔아야 하네요? 이것 때문에 snap까지 깔아야 한다면 관리 포인트만 늘어나지 않을까 싶네요 https://multipass.run/install
가상화 게스트를 우분투로만 하는것보다는
내 호스트에서 rootless podman을 사용하는 방법이 우분투,알파인,rhel,rocky등 여러 리눅스os를 게스트로 쓸 수 있으므로 배포환경을 다양하게 대응할 수 있어서 더 유리함