홈 서버 구축기: NAS, VM, 도커 활용하기
홈 서버를 구축한 이유와 하드웨어 선택, Unraid 설치 및 설정 과정. 인텔 N305 CPU 기반의 NAS용 메인보드, 다양한 VM 및 도커 서비스 활용 방법 소개. 보안 설정과 다양한 서비스 구축 경험 공유.
드디어 오늘 이 글을 적을 수 있게 되었다.
바로 홈 서버를 만든 것이었다.
먼저 홈서버를 만들게 된 배경에 대해 설명하고자 한다.
나는 nas가 꼭 필요하지는 않지만 하나쯤 가지고 있고 싶었다. 또한 코딩용으로 집에서 돌아가고 있는 서버가 하나 있다면 학교에서 R&E활동을 할때도 유용하게 사용할 수 있을 것 같았다.
이러한 이유가 홈서버를 구축하게된 합리적인(?) 목적이 될 것 같다.
이제 하드웨어 부터 열거해 보겠다.
내 목적의 서버로는 크게 고사양이 필요하지는 않다. 하지만 하이퍼바이저(unraid)를 사용할 것이므로 적당한 사양의 pc가 필요했다. 또한 나중의 스토리지 확장성을 생각하여 이더넷 포트가 많이 달려있는 메인보드가 필요했다. 또한 상시로 구동되어야 하기때문에 저전력의 pc가 필요했다.
따라서 aliexpress에서 인텔의 n305 cpu가 탑재된 nas용 메인보드를 구매하였다.
8코어 8스레드에 15w tdp이기 때문에 내 조건에 부합하였다.
그리고 ddr5-32gb 램, Jonsbo n2케이스 정도로 하드웨어는 마무리 했다.
아래는 내 서버 컴퓨터의 사진이다
이제 os부분이다. 아무래도 하이퍼바이저를 사용할 것 이기때문에 여러 os들을 고려해 보았다. 후보군은 proxmox, esxi, unraid정도로 알아보았다. 이중 unraid가 ui도 깔끔하고 여러 기능들을 쓰기 편하게 되어있어서 unraid로 선택하였다.(unraid는 유료인데 내가 고민할 때 할인했기때문에 선정한듯?)
아래는 내가 설치한 unraid의 웹 ui모습이다.
웹ui로 쉽게 제어할 수 있다는게 좋은 것 같다.
vm으로 여러가지 os들을 올려놓았다. 그중 눈에 익숙한 로고도 보이는데 윈도우11은 외부에서 윈도우가 필요할 때 원격 접속해서 사용하기 위해 설치해 놓았다.
그리고 이 서버가 외부에 공개된 상태로 돌아가고 있기 때문에 보안 부분도 신경을 써주어야 한다. 그래서 freebsd 기반의 opnsense 방화벽을 설치해서 모든 서비스들이 opnsense를 거쳐서 연결되도록 하였다. opnsense를 이용해서 해외ip들은 모두 차단하였고 침입탐지 서비스도 활성화시켜 들어오는 패킷들을 분석하고 통과/차단 여부를 결정해주어 보안측면에서 꽤나 좋은 것 같다.
그리고 우분투에다가 code-server를 설치해 외부(학교)에서도 코딩을 편하게 할 수 있도록 했다.
속도도 인터넷에 있는 여러 온라인 에디터들보다 빠를 뿐만 아니라, 내 코드들이 전부 저장되어 있어서 무척 편리하다.
또한 도커서비스들도 많이 사용하고 있는데, 도커는 정말 편한 것 같다.
컨테이너 단위로 관리하기 때문에 서비스 하나가 폭파되어도 다른 서비스들에게 영향을 미치지 않기 때문에 유지보수하기도 편리하고 이것저것 건들 때도 마음 편하게 손댈 수 있어서 좋은 것 같다.
도커에 올려놓은 것들을 나열해보자면..
지금 보고 있는 이 글도 ghost cms를 사용해서 블로그 서비스를 구동하고 있다.
또 역방향 프록시로 사용하고있는 nginx proxy manger를 사용해 내가 사용하는 도메인 하나에 서브도메인들을 연결해서 각종 웹 서비스들을 연결해놓았다.
이 외로 archivebox, heimdall, 클플 ddns, portainer등 많은 서비스들이 도커를 이용하여 구동되고 있다. 이 모든 컨테이너들이 unraid 웹 gui상에서 관리할 수 있기때문에 여러 서비스들을 손 쉽게 관리할 수 있다.
여기까지 내 서버를 소개해보았다.
아직은 많이 해놓은 것들이 없지만, 점차 하나둘씩 서비스들을 늘려간다면
내 서버 리소스를 전부 사용할 수 있지 않을까?
공부를 열심히 해야겠다 ㅎ