[java] 윈도우에 VirtualBox/우분투/톰켓 설치

개요

윈도우 환경에서 VirtualBox를 설치하고 가상서버로 우분투를 설치하는 방법을 소개합니다. 더불어 톰켓을 설치해 Java 서블릿 컨테이너 환경을 구축하는 기초도 자세하게 소개하겠습니다.

참고글

내용 대부분은 아래 사이트의 내용을 참고했습니다. 다만, 목적이 가상 OS 설치 뿐 아니라 개발 환경을 만드는 것이기에 여기에 없는 내용도 소개합니다. 자세한 VirtualBox 설정법과 용어는 아래 사이트에서 더 자세히 공부할 수 있으므로 둘러보시는 것을 권장합니다.

준비

Secure Virtual Machine Mode 활성화

먼저 컴퓨터 부팅 후 DEL키를 눌러 BIOS 모드로 들어가 Secure Virtual Machine Mode를 Enable 처리해야 합니다.

메인보드마다 차이가 있으므로 이 화면은 다를 수 있습니다.

이 처리를 하지 않고 가상 머신을 만들어 OS를 설치하려고 하면 위와 같은 화면을 만나게 될 수 있습니다.

Hyper-V 비활성화

VirtualBox를 사용하려면 Hyper-V를 비활성화 해야합니다. 왜냐하면, 만약 Windows에 Hyper-V가 설치 및 활성화되어 있다면 가상머신(VM)으로 이미 Hyper-V를 쓰게되므로 다른 VM인 VirtualBox를 설치해도 동작시킬 수 없기 때문입니다.

Hyper-V를 비활성화 하기 위해서 제어판 > 프로그램 제거 또는 변경으로 들어가 주세요.

그리고 좌측에 Windows 기능/사용 안함 메뉴로 들어가세요.

Hyper-V가 체크되어 있다면 체크해제 하시고 재부팅하시기 바랍니다.

다운로드

우리는 3가지를 다운로드할 것입니다.

  1. VirtualBox 최신판
  2. VirtualBox 확장팩
  3. 최신판 Ubuntu 리눅스

VirtualBox를 다운로드 하겠습니다. 아래 사이트로 가세요.

https://www.virtualbox.org/wiki/Downloads

그럼, 아래와 같은 화면이 보일겁니다.

윈도우에 설치하기 위해 Windows hosts를 다운로드 받습니다.

그리고 같은 화면에서 위 빨간 표시된 VirtualBox 확장 팩도 다운로드 받으세요.

마지막으로 아래 사이트에서 우분투 데스크탑 버전을 다운로드 받습니다.

https://www.ubuntu.com/download/desktop

우분투의 현재 최신버전은 18.04.1 입니다. 추천 시스템 사양도 확인하세요. 메모리는 2GB, 하드 드라이브는 25GB가 추천사양입니다.

VirtualBox 설치 및 기본 설정

이제 VirtualBox를 설치합니다. 별 설정하지 않고 Next만 하면 됩니다.

VirtualBox 현재(2018.9.26)의 최신 버전은 5.2.18입니다. Next 버튼을 누르세요.

커스텀 셋업 화면입니다. 별다른 설정할 것 없습니다. 필요하다면 설치 경로만 새로 잡으세요. Next 버튼을 누릅니다.

몇가지 옵션을 선택합니다. 그냥 Next 버튼으로 넘어가세요.

네트워크 연결이 일시적으로 중단될 수 있는 경고화면입니다. 별 문제없다면 Next하시면 됩니다.

이제 Install 버튼을 눌러 설치를 시작하세요.

설치 상황을 보여줍니다. 얼마뒤에 설치가 완료될 것입니다.

설치중 위와 화면과 같은 설치 요구창이 뜨면 신뢰부분을 체크하시고 설치하세요.

VirtualBox를 성공적으로 설치했습니다.

VirtualBox 확장팩 설치

다운로드 받았던 확장팩(Oracle_VM_VirtualBox_Extension_Pack-5.2.18.vbox-extpack)을 설치하기 위해 파일을 두번 클릭해서 실행하세요.

위 화면처럼 설치 여부를 물어보면 “설치”버튼을 누르시면 됩니다.

설치하기 전에 먼저 라이센스 확인창 뜰 겁니다. 스크롤을 쭉 내리면 “동의합니다(A)” 버튼이 활성화 됩니다. 동의하시면 설치가 시작됩니다.

VirtualBox 확장 패키지 설치가 완료되었습니다.

VirtualBox 호스트 키 조합 바꾸기

가상머신을 만들기 전에 하나 더 설정하겠습니다. VirtualBox에서 호스트와 게스트라는 용어가 나옵니다. 호스트는 부모 OS, 지금은 여러분이 사용하는 윈도우겠지요? 게스트는 이제 설치할 가상머신의 OS(여기선, 우분투)를 의미합니다. 게스트 OS에서 호스트 OS로 마우스 커서를 전환시키는데 쓰이는 키보드 단축키가 Right Shift로 되어 있습니다. 하지만 잘 동작하지 않습니다. 그래서 바꿔야 합니다.

VirtualBox에서 파일 > 환경 설정으로 가서 입력 메뉴로 가시면 가상 머신 탭에서 위 그림처럼 호스트키 조합을 볼 수 있을 겁니다.

단축키를 클릭해서 선택하시고 Shift + Ctrl 키를 동시에 눌러보세요. 그럼 위 화면처럼 단축키를 확인할 수 있습니다.

이제 게스트 OS에서 호스트 OS로 마우스 커서를 전환하고 싶을 때 Shift + Ctrl을 누르시면 됩니다.

VirtualBox 가상 머신 생성

지금부터 우분투 가상 머신을 생성해 봅니다.

위 화면에서 가상 머신을 생성하기 위해 새로 만들기 버튼을 누르세요.

위와 같은 창이 뜨면 이름과 사용할 운영체제의 종류와 버전을 선택하세요. 우리는 우분투를 설치할 것이므로 Linux와 Ubuntu (64-bit)를 선택했습니다. (사진에는 32 bit인데 64 bit를 선택하세요.)

가상 메모리 설정을 합니다. 우분투 현재 버전은 메모리 2GB를 권장하므로 2048MB로 설정하겠습니다.

가상 하드 디스크를 만듭니다. 하드 디스크 파일 종류는 VDI (VirtualBox 디스크 이미지)를 선택하세요. 참고로 VHD는 MS 가상 하드 디스크 파일 종류이고 VMDK는 VMware 가상 하드 디스크 파일 종류입니다.

물리적 하드 드라이브에 저장에서 동적 할당, 고정 크기를 결정해야 합니다. 내부 개발용이라서 유연성을 발휘하기 위해서 동적 할당으로 선택하겠습니다.

디스크의 크기를 설정하겠습니다. 우분투 추천 디스크 용량은 25GB이므로 30GB 정도로 잡습니다.

그리고 위 화면처럼 새 가상 하드 디스크의 파일 이름과 경로를 정하시길 바랍니다. 그 다음 “만들기”를 하세요. 물리적 하드 드라이브를 동적 할당으로 해서 가상머신이 금방 만들어 질겁니다.

이제 가상머신 하나가 만들어졌습니다.

오른쪽에 가상 머신 정보를 보는 도구를 선택하기 위해 자세한 정보(D)를 클릭하세요.

그럼 이렇게 가상 머신 정보를 상세하게 볼 수 있습니다.

VirtualBox 가상 머신 설정

생성한 가성 머신에 우분투를 설치하기 전에 기본적인 환경설정을 하는게 좋을 것 같습니다.

먼저 가상머신을 선택한 뒤 전원 꺼짐상태에서 설정(s) 버튼을 누르세요.

위와 같은 설정창에서 일반 > 고급으로 선택해서 클립보드 공유와 드래그 앤 드롭을 모두 양방향으로 선택하세요.

시스템 > 마더보드로 가서 부팅순서로 플로피 디스크는 제외하면 될 것 같습니다. 나머지는 기본을 쓰시고 기본 메모리를 여기서 조절할 수 있음을 함께 확인하세요.

디스플레이 > 화면에서 가속, 3차원 가속 사용하기를 체크하세요.

저장소 > 저장 장치에서 컨트롤러: IDE를 선택하고 위 이미치 빨간 박스 부분을 클릭합니다. 그럼 아래와 같은 팝업이 뜰 것입니다.

디스크 선택하기를 선택하고, 다운로드 받은 우분투 설치 ISO 이미지를 선택하세요.

우분투 설치 ISO 이미지를 선택하면 컨트롤러 IDE에 위 화면처럼 표시됩니다.

네트워크 > 어댑터 1로 다음에 연결됨을 어댑터에 브리지를 선택합니다. 이렇게 하면 가상 머신이 LAN이 직접 연결되고 공유기에서 동적 IP를 따로 할당받을 수 있게 됩니다. 우리는 Tomcat을 외부망과 연결할 것이라 공유기에서 포트포워딩 설정을 직접 해야합니다. 이 방법은 뒤에서 설명합니다.

이 정도로 설정을 마치고 확인버튼을 누르세요. 가상 머신 설정을 완료했습니다.

VirtualBox 가상 머신에 우분투 설치

가상 머신에 우분투를 설치해 봅시다.

해당 가상 머신을 두 번 클릭하거나 시작 버튼을 눌러 실행합니다. 실행하면 새 창이 뜨면서 가상 머신이 실행됩니다.

만약 설치 진행중에 위 화면과 같은 메세지가 뜨면 이 글의 초반에서 “Secure Virtual Machine Mode 활성화” 부분을 다시 확인해 주세요. 컴퓨터를 재부팅해서 CMOS에서 이 설정을 한 다음, 다시 VirtualBox를 실행해 다음 단계를 진행하세요.

위 화면이 나온다면 우분투 설치 준비가 완료된 것입니다. 언어는 영어가 설정되어 있습니다.

한국어로 바꾸시고 Ubuntu 설치를 클릭하세요.

키보드는 위 처럼 선택하고 계속하기 버튼을 누르세요.

앱은 최소설치로 해주세요. 우리는 개발 환경만 구축할 것이므로 기타 설정은 “Ubuntu 설치 중 업데이트 다운로드”만 선택해도 될 것 같습니다.

디스크를 지우고 Ubuntu 설치로 완전 새롭게 설치합니다.

파티션 포멧 확인창이 뜹니다. 계속하기 버튼을 눌러 계속 진행하세요.

거주지를 선택합니다. 이 선택에 따라서 OS의 기본 시간대가 달라짐을 명심하세요.

그리고 기본 계정정보와 컴퓨터 정보를 추가합니다. 입력하신 암호를 잊지않도록 주의하세요.

이제 설치가 시작됩니다. 컴퓨터 사양에 따라서 설치 시간이 다소 걸릴 수 있습니다.

설치가 완료되었습니다. “지금 다시 시작”버튼을 눌러 재시작하면 되겠습니다.

부팅해서 우분투가 실행되면 입력한 사용자 이름이 잠시뒤에 나올겁니다. 이름을 클릭하시고 입력했던 암호를 입력하면 아래와 같은 화면을 보실 수 있습니다.

우분투 패키지 최신 버전 업데이트

우분투에서 터미널을 이용해 최신버전을 업데이트 해보겠습니다.

좌측에 메뉴를 눌러 위 화면이 나오면 터미널 선택해 클릭해서 실행합니다.

위와 같은 터미널 창이 뜨면 리눅스 명령을 실행할 수 있습니다.

위 화면처럼 subo apt-get update 명령으로 최신 버전으로 업데이트 하세요.

그리고 subo apt-get upgrade 명령으로기존 설치된 패키지를 업그레이드 합니다.

위 화면처럼 업그레이드할 패키지 목록이 나오면 업그레이드 할 것인지 위처럼 물어봅니다. Y를 입력하세요. 조금 기다리시면 모든 패키지가 업그레이드 될 것입니다.

VirtualBox 게스트 확장 설치

VirtualBox에서는 가상머신의 성능을 높이고 다양한 기능을 제공하기 위해서 게스트 확장(Guest Additions) 설치라는 것을 제공합니다. 이는 일종의 추가적인 드라이브로서, VirtualBox에서 운영체제별로 제공하는데, 설치하면 해상도를 자유롭게 조절하거나 공유 폴더를 설정하는 등 게스트 OS를 좀 더 편리하게 사용할 수 있습니다. 또한 마우스 커서를 게스트와 호스트 OS간에 전환하기 위해 호스트 키 조합을 사용할 필요도 없어집니다. 3D 가속도 지원하고요. 호스트 OS와 게스트 OS 간에 클립보드 공유 및 드래그 앤 드롭으로 파일 공유가 가능해집니다. 안 쓸 이유가 없지요. ^^

VirtualBox 게스트 확장 패키지를 설치하기 위해서 필요한 컴파일러 관련 패키지와 리눅스 헤더파일 패키지를 설치합니다.

위 화면처럼 sudo apt-get install build-essential linux-headers-$(uname -r) 명령을 실행하세요. 그리고 Y를 눌러 계속 진행해 주세요.

완료가 되면 Ubuntu를 위한 가상 머신 창의 메뉴에서 장치 > 게스트 확장 CD 이미지 삽입을 선택합니다.

암호를 입력하시면 새 터미널이 뜨면서 설치를 시도합니다.

잠시 뒤 설치가 완료될 것입니다.

바탕화면에 게스트 확장 CD 이미지가 있습니다. 설치완료 후 해당 이미지 아이콘에 오른쪽 마우스를 눌러 꺼내기 하세요.

터미널에서 sudo reboot 명령으로 재실행합니다.

재부팅후 위 화면을 보면 가상 머신 게이트 운영 체제에서 마우스 통합을 지원한다고 합니다. 실제로 호스트 운영체제와 게스트간에 커서 이동이 자유롭습니다.

네트워크 고정 IP로 설정

사내에서 외부고정 IP를 사용하고, 이 고정 IP는 사내 라우터(iptime등)에 연결되어 있습니다. 라우터는 다시 호스트 OS(여기선 윈도우)와 게스트 OS(여기선 우분투)에 라우팅할 것입니다. 사내에서는 호스트 서버는 이미 라우터를 기준으로 고정 IP를 할당하여 라우팅하고 있습니다. 현재 게스트 OS는 OS 설치시 별다른 설정을 하지 않았으므로 DHCP(동적 호스트 구성 프로토콜Dynamic Host Configuration Protocol)로 자동 IP가 할당되어 있습니다.

우리는 게스트 OS도 호스트 OS와 비슷한 방식으로 고정 IP를 할당할 것입니다. 이게 가능했던 이유는 위 화면처럼 앞서 가상 서버 설정시 네트워크 어댑터를 어댑터에 브리지로 선택해 놯기 때문에 가상 머신이 LAN이 직접 연결되고 공유기에서 동적 IP를 따로 할당받을 수 있게 되었기 때문입니다. 가상 서버지만 마치 공유기 입장에서는 물리적인 서버가 따로 연결되어 있는 느낌으로 받아들이면 됩니다.

그럼 먼저 게스트 현재 DHCP에 의해 자동 할당된 IP가 무엇인지 확인해봅시다.

터미널에서 ifconifg를 실행해 보겠습니다.

그런데, 위 화면처럼 뜨면 net-tools를 설치해야 합니다.
net-tools를 설치합시다. 명령으로 sudo apt install net-tools를 하시면 됩니다.

다시 터미널에서 ifconifg를 실행해 보겠습니다.

위 화면을 보면 이 가상머신에 할당된 IP는 192.168.0.5입니다. 이것은 DHCP로 자동으로 할당된 것입니다. 고정 IP로 바꿔보겠습니다.

위 화면처럼 우분투 메뉴에서 설정을 실행해 주세요.

설정 창이 뜨면 좌측 메뉴에서 네트워크를 선택합니다. 그리고 오른쪽 유선에서 톱니바퀴 모양을 클릭합니다.

처음에는 자동(DHCP)로 선택되어 있을겁니다. 그것을 수동으로 바꾸고, 고정IP로 쓸 주소, 네트마스크, 게이트웨이, 네임서버(DNS)등을 입력하세요. 고정 IP로 192.168.0.5로 설정했습니다.

참고로 네임서버등 정보는… 자세히 보기탭을 누르면 확인해 볼 수 있습니다. 그대로 사용하면 됩니다.

이제 공유기를 설정해봅니다.

가상 서버가 받아줄 내부 포트는 톰켓용 8080과 SSH 터미널 접근용인 22로 정한다면 라우터는 각각에 대해서 포트포워드 설정을 위 화면처럼 하면 됩니다. 다만, 외부 포트를 너무 잘 알려진 8080, 22로 쓰는 것보다는 다른 포트를 사용할 것을 보안상 권장합니다. 그리고 방화벽 설정을 통해 허가된 방식으로만 접근을 허용하는 것도 바람직 합니다. 가령, 허용한 IP만 접근할 수 있도록 하는 것입니다.

SSH 접속 환경 만들기

Putty와 같은 SSH 터미널 접속 프로그램을 사용해 외부에서 우분투 터미널로 접근하려면 SSH를 설치해야 합니다. 우분투에 SSH를 설치해봅니다.

위 화면처럼 sudo apt-get install ssh를 터미널에서 실행하면 SSH를 설치할 수 있습니다.

이렇게 해서 Putty로 공유기에 포트포워딩으로 설정한 외부 고정IP와 외부포트로 접근하면 위와 같은 화면처럼 접속이 가능할 것입니다.

더 자세한 사항은 다음 링크에서 조금 더 공부하시는게 좋을 것 같습니다.

톰켓(Tomcat) 설치

Java 서블릿 컨테이너인 톰켓을 설치해 보겠습니다. 먼저 OpenJDK를 설치하고 톰켓을 설치하겠습니다.

OpenJDK 설치

터미널에서 OpenJDK를 설치해 봅시다.

위 화면처럼 sudo apt install openjdk-11-jdk 명령으로 설치합니다. Y를 누르면 다운로드와 함께 설치가 될 것입니다.

설지가 완료되면 java --version로 정상적으로 설치 되었나 확인해 주세요. 위 화면처럼 나오면 성공적으로 설치된 것입니다.

톰켓 설치

먼저 루트 위치에 tomcat 디렉토리를 만듭니다.

톰켓 홈페이지에서 최신 톰켓9의 URL을 복사합니다.
https://tomcat.apache.org/download-90.cgi

오른쪽 마우스를 클릭해 URL을 복사하면 됩니다.

그리고 wget으로 tomcat9 압축파일을 받아옵니다.

ls 명령으로 다운로드한 압축파일을 확인합니다.

sudo tar xzf apache-tomcat-9.0.12.tar.gz로 압축파일을 풉니다.

이제 mv apache-tomcat-9.0.12/* tomcat로 방금 전 만들었던 tomcat 디렉토리에 압축을 푼 내용을 이동합니다. 이제 tomcat 디렉토리에 톰켓이 설치되었습니다.

방금 받은 tomcat과 압축을 풀었던 폴더는 sudo rm 명령으로 지워주세요.

이제 톰켓을 실행해 보겠습니다.

위 화면처럼 su 권한으로 접근한 다음(sudo su), 톰켓의 bin 디렉토리로 이동합니다(cd /tomcat/bin). 그리고 ls로 조회해 보면 여러 Shell Script(확장자 .sh)가 존재합니다. 여기서 start.sh가 톰켓을 구동하는 스크립트입니다.

./startup.sh로 톰켓을 시작하면 위 화면처럼 실행이 될 것입니다. 톰켓 실행이 완료되었습니다. 그럼 브라우저에서 정상적으로 접근할 수 있는지 확인할 수 있습니다.

가상서버와 같은 공유기에 연결된 사내 컴퓨터라면 내부망이므로 192.168.0.5:8080 로 접근하면 위 화면을 볼 수 있습니다.

그리고 공유기에서 포트포워드 설정을 통해 톰켓이 설치된 가상서버의 IP(192.168.0.5)와 외부포트 8080을 잡았으므로 방화벽 문제가 없는 이상 외부 인터넷 망을 통해서도 IP와 외부 포트로 톰켓을 접근할 수 있습니다. DNS설정을 했다면 youdomain.com:8080 으로도 접근이 가능합니다.

결론

이상으로 VirtualBox를 설치하고 가상서버를 구축한 뒤, 우분투 OS와 톰켓 설치하는 방법을 간단하게 알아보았습니다.