Virtual Box 에 Ubuntu 20.04 LTS 설치하기
무엇인가를 개발하려면 그에 앞서 개발환경 셋업이 먼저 이루어져야 합니다. 특히나 서버를 개발한다고 하면 주로 Linux 환경을 선택하게 됩니다. 이유로는 여러가지가 있지만 가장 큰 이유는 무료이기 때문입니다. 오픈소스로 코드가 공개되어 있고 다양한 배포판이 존재합니다. 각각의 배포판마다 지닌 장단점이 있지만 GUI 레벨에서의 사용자 친화적인 인터페이스를 차치한다면 아주 큰 차이가 있는 것은 아니기 때문에 본인의 입맛에 맞는 배포판으로 선택하면 됩니다. 저는 이번 오래 전부터 써왔던 Ubuntu 를 사용할 예정입니다. 버전은 이 글을 쓰는 현재 가장 최신버전인 20.04.1 LTS 를 사용하겠습니다.
개인용 PC의 OS 로 대부분의 사람들은 Windows 를 사용합니다. 저도 Windows 10 Professional 을 사용하고 있습니다. 저는 제 개인 서버를 운영하기 위해 별도의 장비를 구축한다던가, 아니면 제가 사용하고 있는 개인용 PC 의 OS 를 Linux 로 변경하고 싶지는 않습니다. 개인용 PC 에서의 Windows 가 제공하는 편리함 때문이죠. 이러한 경우에 사용하는 몇 가지 옵션 중 가장 선호되는 것은 가상머신을 사용하는 것입니다. VirtualBox, Vmware 등이 그 솔루션입니다. 저는 제 개인 프로젝트에서 사용할 솔루션으로 VirtualBox 를 사용하겠습니다. 즉, Windows 10 Professional 이 설치된 개인용 PC 에 VirtualBox 를 설치한 다음, 가상머신을 만들고, 그 가상머신에 Ubuntu 20.04 LTS 를 설치할 예정입니다. 그럼 시작해 보도록 하겠습니다.
- Virtual Box 다운로드 및 설치
먼저 https://www.virtualbox.org/wiki/Downloads 에 들어가서 windows 용 virtualbox 를 다운받습니다.(중간에 있는 Windows hosts 를 클릭합니다.) 언제나 느끼는 것이지만 Virtualbox 홈페이지는 다운로드 속도가 매우 빠르고 쾌적합니다. 그 후 next 만 따라가면 어느 덧 설치는 완료가 됩니다.
- VirtualBox Virtual Machine(VM) 생성
VirtualBox 를 실행하면 위와 같은 화면이 나오게 됩니다. Ubuntu 20.04 LTS 를 설치하기 위해 새로운 가상머신을 만들 것입니다. “새로만들기”를 클릭합니다.
가상머신의 이름으로 적당한 이름을 입력하고(저는 master 로 입력합니다.), 해당 가상머신 파일이 저장될 폴더경로를 지정합니다. 가상머신파일은 파일크기가 매우 커질 수 있으므로(수십~수백 GB) 충분한 용량이 남아있는 드라이브로 지정합니다. 가급적이면 SSD 에 저장하는 것이 속도 면에서 유리합니다. 종류는 Linux, 버전은 Ubuntu 64-bit 를 지정하고 “다음”을 클릭합니다.
가상머신에 할당을 메모리(RAM) 의 크기를 지정합니다. 전체 8GB의 메모리를 Host OS(여기서는 Windows 10 professional) 와 Guest OS(여기서는 Ubuntu 20.04 LTS) 가 공유하기 때문에 너무 많은 메모리를 Guest OS 에 할당하지 않도록 합니다. 일반적인 Linux OS 에는 2GB 면 테스트 용도로는 충분합니다.
가상머신을 위한 가상하드디스크 만들기를 선택하고 “만들기”를 클릭합니다.
가상하드디스크 파일형식은 VDI 로 지정하고 “다음”을 클릭합니다. 혹시 여기서 만든 가상하드디스크를 향후에 Vmware 에서 그대로 사용하고자 원하시는 분들은 VMDK 를 선택하시면 됩니다.
가상하드디스크의 크기를 고정 크기로 선택합니다. 고정 크기는 실제 물리적 하드디스크의 섹터에 연속된 공간을 할당하고 순차적으로 쓰기 때문에 동적 할당에 비해 속도가 빠릅니다. 예전 HDD 에 비해 SSD 를 주로 사용하는 요즈음에는 그 차이가 비교적 적게 체감되긴 하지만 빠른 것은 부인할 수 없는 사실입니다. 또한 고정 크기로 선택한다 할지라도, 향후에 다시 크기를 확장할 수 있는 방법도 존재합니다. 이번에는 고정 크기로 선택 후 “다음”을 클릭합니다.
크기는 적당한 용량을 할당합니다. 저는 30GB 정도로 할당을 하겠습니다. 해당 가상머신에서 큰 데이터볼륨을 다루게 된다면 크기를 확장하거나, 혹은 NFS 와 같은 외부 Storage 를 연동하는 것을 고려해보도록 하겠습니다. 크기를 입력한 후에 “만들기”를 클릭합니다.
입력한 크기의 용량을 확보하는데 시간이 조금 걸립니다. 입력한 크기가 클 수록 시간은 비례해서 소요됩니다.
자 이제 가상머신인 master 가 생성이 완료가 되었습니다. PC 로 따지자면 물리적인 PC 장치를 마련한 것과 마찬가지 입니다. 이 가상머신에는 아무것도 설치되어 있지 않습니다. 우선 이 가상머신의 Spec 을 설정하도록 합니다. “설정” 을 클릭합니다.
일반 -> 고급 탭으로 이동해서 클립보드 공유와 드래그 앤 드롭을 모두 양방향으로 설정 후 “확인”을 클릭합니다. 이는 Host OS 와 Guest OS 간의 데이터 공유를 좀 더 편리하게 하기 위한 설정입니다.
시스템 -> 프로세스 탭으로 이동해서 적절한 수의 CPU 개수를 설정합니다. 제 PC 는 물리적으로 6 core 의 CPU가 탑재되어 있고 하이퍼스레딩을 통해 논리적인 12 core 가 구동됩니다. 가상머신의 입장에서는 물리적이든 논리적이든 12 core 가 사용가능한 것으로 인식됩니다. 여기서는 2 core 를 입력합니다. 이 설정은 언제든지 변경가능합니다.
네트워크 -> 어댑터1로 이동하여 네트워크를 설정합니다. 가상머신을 설정할때 어찌보면 가장 중요한, 그리고 정확히 알아야 하는 부분입니다. 가상머신을 1개만 만들어 사용하는 경우에는 네트워크가 크게 중요한 요소가 아닐 수 있지만 복수개의 가상머신을 사용하여 클러스터링을 한다던가, 가상머신간의 통신, 더 나아가 Host 머신과의 통신까지 고려한다면 용도에 맞는 네트워크를 설정해야 합니다. 저의 경우 복수개의 가상머신을 운영할 예정이기 때문에 가상머신간 통신이 가능해야 하고, 외부 인터넷에서 각각의 가상머신에 접속가능해야 합니다. 저의 요구사항을 만족시켜 줄 수 있는 구성은 NAT 네트워크와 어댑터에 브리지인데, NAT 네트워크의 경우 노출대상 포트에 대해 모두 포트포워딩 설정을 해 주어야 합니다. 이 수고로움을 덜기 위해 어댑터에 브리지 모드를 선택하고 “확인”을 클릭합니다.
- Ubuntu 20.04 LTS 이미지 다운로드
각각의 가상머신은 물리적 자원(cpu, memory, storge, gpu 등)만 할당되어 있을 뿐 어떠한 s/w 도 설치되어 있지 않은 상태입니다. pc 로 치면 용산전자상가에서 조립된 pc 를 가져왔을 때의 그 상태인 것이죠. 이제 각각의 가상머신에 os 를 설치해 보겠습니다. 이 링크로 가서 Ubuntu 20.04 LTS 이미지를 다운로드 받습니다. GUI 도 함께 이용하기 위해 Desktop 버전을 선택합니다.
Virtualbox를 실행시킨 후 아까 만들어 놓은 가상머신 화면으로 돌아가 “설정”을 클릭합니다.
저장소로 이동하여 IDE 컨트롤러에 비어 있음을 클릭하고 오른쪽에 나오는 동그란 디스크 이미지를 클릭합니다.
디스크 파일 선택을 클릭합니다.
아까 다운로드 받은 Ubuntu 20.04 LTS 이미지가 있는 폴더로 이동하여 해당 파일을 선택 후 “열기” 를 클릭합니다.
그러고 나면, IDE 컨트롤러에 비어있음이 Ubuntu 20.04 LTS 이미지가 삽입되어 있는 것으로 표시됩니다. “확인”을 클릭합니다.
다시 master 가상머신 화면으로 돌아오게 됩니다. “시작”을 클릭하여 가상머신을 부팅시킵니다.
시동 디스크를 선택하라는 화면이 나오는데 아까 IDE 컨트롤러에 Ubuntu 20.04 LTS 이미지를 삽입해주었으므로 자동으로 로드됩니다. “시작” 을 클릭합니다.
이제 가상머신에 Ubuntu 20.04 LTS 가 설치되기 시작합니다.
English 모드로 “Install Ubuntu” 를 클릭하여 Ubuntu 설치를 진행합니다.
키보드 레이아웃은 English 를 선택해 줍니다.
불필요한 s/w 설치를 피하기 위해 최소설치 모드를 선택하고, 필요시 수동업데이트를 하기 위해 Download update 체크박스를 해제 후 “Continue” 를 클릭합니다.
디스크를 전체삭제 후 설치(Clean 설치)를 선택 후 “Install Now” 를 클릭합니다.
“Continue” 를 클릭합니다.
지도에서 서울지역을 선택 후 “Continue” 를 클릭합니다.
적절한 아이디과 비밀번호를 입력하고, 자동 로그인을 선택 후 “Continue” 를 클릭합니다.
인스톨 과정이 진행됩니다.
인스톨이 완료됬습니다. “Restart Now” 를 클릭합니다.
아까 삽입했던 Ubuntu 20.04 LTS 이미지를 제거하라는 문구입니다. “엔터”를 눌러줍니다.
Ubuntu 20.04 LTS 가 정상적으로 부팅이 되었습니다. Account 설정화면인데 “Skip” 을 클릭합니다.
라이브패치도 스킵하여 “Next” 를 클릭합니다.
제 PC 의 정보를 보내는 화면인데 No, 를 선택 후 “Next” 를 클릭합니다.
PC 의 위치정보를 Application 이 사용할 수 있도록 허가하는 화면인데 비활성화 시킨 후 “Next” 를 클릭합니다.
추가적인 s/w 를 설치하는 화면인데 “Done” 을 클릭합니다.
Ubuntu 20.04 의 추가 업데이트 버전을 설치하는 화면인데 “Remind Me Later” 를 선택합니다. “Install Now” 를 클릭하여 설치해도 무방합니다.
드디어 모든 설치가 완료된 화면입니다.
가상머신을 종료하기 위해 우측 상단 역삼각형 모양의 “드롭다운” 을 클릭 후 “Power Off/Log Out” 을 클릭 후 “Power Off” 를 클릭합니다.
“Power Off” 를 클릭하여 가상머신을 종료해줍니다.
- 마무리
위 과정을 통해 Virtualbox 를 통해 가상머신을 만들고, 그 위에 Ubuntu 20.04 LTS 를 설치하고 세팅하였습니다. 이로써 Linux 기반의 S/W 개발환경 구축은 완료가 된 셈입니다. 추가적인 장비를 구입하지 않고도 가상환경을 구축하여 Host OS 와 완전히 분리된 이기종 OS를 설치할 수 있어 비용도 절약할 수 있고, 스냅샷, 복원, 가상머신 복제 등 Virtualbox 에서 지원해주는 기능을 통해 간편하게 Guest OS 를 관리할 수 있습니다. 또한 Host PC의 성능이 좋다면 그에 비례해 가상머신의 성능도 좋아지게 됩니다.
다음으로 이렇게 만든 가상머신(VM)에 고정IP 를 할당하는 작업을 하도록 하겠습니다.