베어본 미니 PC(N100)로 우분투 홈 서버 만들기

개발을 하다보면 누구나 aws ec2를 빌려본 적이 있을 것이다. 편하게 장비를 빌릴 수 있는 만큼 그에 상응하는 비용이 발생 되기도 한다. 지금까지 해왔던 수많은 토이 프로젝트에서 사용된 t2.micro의 경우 CPU 1개에 메모리가 1GB이다. 이러한 pc를 프리티어 없이 대여하려고 하면 월에 약 3만원 가량이 지출 되었던것 같다. 그렇다고 해서 좀 쓸만한 장비인 t2 large 정도만 빌리려고 해도 10만원에 육박하는 금액이 청구될 수도 있다. (내가 하는 사이드 프로젝트에 그정도는 너무 큰 지출인것 같다) 그래서 이번에 내가 내린 결론은 직접 ubuntu 서버를 베어본 장비에 띄우기로 맘 먹었다.

요즘 미니 pc들의 스펙들 중 저렴하게 구매 가능한 CPU 모델이 N100을 사용하는 모델이였다. 4코어에 8GB 메모리 그리고 256 SSD가 가장 가성비 있게 사용할 수 있을 것 같았다. 바로 당근을 통해 십만원 초반에 새 장비를 하나 구입하였고 지금부터는 이 베어본 장비에 OS를 깔고 네트워크를 설치하는 과정을 한번 적어보려 한다.

OS 설치

우선 본인에게 가장 익숙한 ubuntu 20.04 서버 버전을 사용하려고 했다. usb를 하나 준비하면 된다. 설치 절차는 공식 홈페이지와 구글링을 하면 잘 나와있으니 참고하면 된다. 이렇게 설치를 마치고 유선 랜으로 sudo apt-get update를 치려고 하니 네트워크 인식이 안된다는 오류가 발생하였다. 그래서 랜카드에 대한 인식이 되는지 확인하기 위해 lspci | grep -i Ethernet을 봤을 때 UNCLAIMED 가 뜬다면 정상 인식이 되지 않았다는 뜻이다. 구글링을 해보면 해당하는 NIC에 대한 네트워크 드라이버를 다른 pc의 usb에 받아서 설치해야한다 등의 내용이 나온다. (미니 pc 제품이 intel corporation device 125c 라는 nic을 가졌는데 구글링 해도 해당 카드에 대한 드라이버는 찾기 어려웠다) 이를 해결 하기위해 가장 추천하는 방법은 24.04 LTS로 설치하는걸 추천한다. 우선 20.04에서는 내부적으로 설치된 NIC 드라이버의 수가 적다고 하고 실제로 나도 24.04를 설치한 뒤에 네트워크 연결이 가능하였다.

네트워크 연결

이 부분도 다양한 선택지가 있다. 일단 본격적인 설치 방안보다는 공유기 시스템이 어떻게 돌아가는지부터 이해해야 설치를 수월하게 할 수 있다. 아래 그림을 살펴보자.

기본적으로 IP Time 공유기를 사용한다고 가정한다.(SK 브로드밴드나 LG 등의 업체 공유기와는 상황이 다를 수 있다.)

보통 ISP로부터 공인 IP 하나를 할당 받는다. 그리고 이러한 공인 IP 하나를 가지고 외부와 연결을 통해 네트워크 통신을 맺을 수 있다. 그리고 내부적으로는 공유기가 여러개의 사설 IP를 할당 시켜서 각각의 장비들에 네트워크들을 맺어 줄 수 있다. 우리가 이번에 설치할 방식은 유선랜 방식이다. 그래서 미니 PC와 공유기간에 유선랜을 통해 서로 연결을 시켜줘야 한다. 사실 이 단계를 앞서서 OS 설치 단에서 미리 했어야지 apt-get update등의 패키지 업데이트가 가능해진다.

이렇게 미니 PC 장비에 네트워크가 연결이 되었다면 이제 이를 외부와 연결하는 것을 해볼 차례이다. 포트 포워딩을 통해서 외부 IP로 들어온 요청을 내부 사설 IP로 연결시켜주면 된다. 이를 위해 IP Time의 관리자 페이지에 192.168.0.1을 통해 접속하자. 초기 ID와 비밀번호는 admin / amdin인데 로그인 후 꼭 변경해주도록 하자. 이후 관리도구 -> NAT/라우터 관리 -> 포트포워딩 설정으로 들어간다.

포트 포워딩 설정 창 들어가는 법

위에 표시된 설정을 들어가보면 규칙 이름과 설정들을 통해 규칙을 추가할 수 있는 창이 보인다. 여기서 자신이 사용할 프로세스들의 포트에 맞게 각각 포트 포워딩 설정을 해주면된다.

포트포워딩?

외부 인터넷으로 우리의 미니 PC에 접속하기 위해서는 미니 PC의 IP가 아니라 공유기의 IP 값을 알아야 합니다. 왜냐면 미니 PC에 할당된 IP는 앞서 말씀드린것처럼 공유기가 임의로 할당한 사설 IP이기 때문이죠. (보통 192.168.xxx.xxx 로 구성되는게 사설 IP 입니다) 여기서 말하는 포트 포워딩이란 공유기의 IP인 공인 IP로 접속한 요청을 내부 미니 PC의 사설 IP로 중계해주는 것을 의미합니다.

예를 들어 미니 PC의 3306 포트에 띄워진 MySQL에 외부에서 접속하려고 한다고 가정합니다. 그러면 우선 공인 IP의 3306 포트로 들어오는 요청을 내부의 사설 IP로 포트포워딩 해줘야합니다. 아래와 같이 규칙을 추가하여 줍니다.

이후 꼭 오른쪽 상단의 저장 버튼을 눌러 적용시켜줘야합니다. 그래야 적용한 포트 포워딩이 제대로 설정됩니다.

마무리 및 주의

아무래도 홈서버의 경우 가성비 측면에서는 장비를 빌리는것보다 훨씬 저렴하다. 대신 aws와 같은 벤더사가 제공하는 최소한의 관리를 받지 못한다는 단점도 존재한다. 가장 흔히 발생하는 실수는 공인 IP 변경이다. 만약 ISP에서 제공한 모뎀이 정전에 의해 꺼졌다 켜지거나 하면 ISP에서 여러분에게 제공하는 공인 IP가 변경될 수 있다. 그렇게 되면 포트 포워딩 설정부터 dns 정보 변경 등 해야할 일이 늘어난다. 정전과 같은 천재지변은 우리가 막지 못하지만 운영 시 항상 염두에 두고 메뉴얼을 정리해두면 좋을 것 같다.