1. 홈서버를 구성하게 된 이유
1.1. 노트북 지게꾼 vs 노트북 조종사
홈서버를 본격적으로 구축하게 된 계기는 무거운 노트북을 들고 다니지 않겠다는 다짐에서 시작했다.
서버를 돌릴 수 있는 고성능 노트북을 들고 다니자니 이미 굽을 만큼 굽은 내 어깨와 허리가 버티지 못할 것 같았다.
반대로 가벼운 노트북을 선택하자니, VM 두 개만 켜도 KF-21 제트엔진의 굉음을 내는 노트북을 카페에서 사용하기가 민망했다. 나는 카페 한중간에서 보라매 조종석에 앉은 당당한 파일럿이 되기엔 부끄러움이 많은 사람이라, 다른 방법을 찾아야만 했다.
1.2. 공부를 빙자한 취미생활
이외에도 명분은 붙이고 싶은 만큼 붙일 수 있었다. DevOps 공부, IPS/IDS 구성, 소비를 통한 시장경제 활성화, 클라우드 비용 절약, 어깨 도수치료 비용 절약... 이런저런 이유들을 모아 아낄 수 있는 비용을 대략 300~400만 원 정도로 산정하고(?) 해당 예산 안에서 홈 네트워크 구성을 계획했다. (물론 예산 안에서 해결하지는 못했다)
2. 총 예산
중복 투자 또는 기존에 가지고 있던 장비를 제외하고 정리한 항목들은 아래와 같다.
Protectli Vault V1210-2 - 35만원
Synology DS224+ - 50만원
WD RED PLUS NAS HDD 4TB x2 - 35만원
iptime HG25004T2 - 8만원
proxmox cluster2 - 약 150만원
약 280만원
Bash
복사
3. 네트워크 토폴로지
wifi로 붙는 장치들을 제외하고, 기본적으로 구동중인 장비들만 보면 이런 구조이다.
4. 장비 소개
4.1. Protectli Router
홈 서버를 구성하면서 가장 먼저 구매한것이 라우터이다.
제조업체의 펌웨어를 사용하지 않고, 내가 직접 모든 환경을 구성하고 ids/ips, vpn등의 부가 기능까지 설정하기 위해서 os가 설치되지 않은 라우터를 선택했다.
ali를 찾아보면 n100 cpu를 탑재한 프리도스 라우터가 많긴한데.. 중국발 mini pc에서 백도어가 발견된 사례들이 있기도 하고, 가용성 검증이 잘 되지 않았다는 문제도 있고 해서 레퍼런스가 많은 Protectil 제품을 선택했다.
4.2. Synology DS224+
이번에 홈 서버를 새로 구성하면서 Proxmox 백업 서버도 함께 구축하고, 기존 클라우드 데이터를 로컬로 이전하기 위해 NAS를 새로 구성했다.
NAS 선택 기준은 단순했다. RAID 구성이 가능한 하드디스크 베이 2개 이상과 낮은 소비전력, 이 두 가지만 고려했다.
4.3. Deskmini
내 작업환경이 될 서버는 '최소한의 크기와 소음으로 최대의 성능을 발휘할 수 있는 환경'을 목표로 구성하였다.
ASRock사의 DeskMini 베어본 케이스를 활용하면 대충 m2 맥미니보다 조금 작은 부피를 차지하는 머신을 만들 수 있다.
4.4. Desktop
원래 Workstation으로 사용하던 컴퓨터는 후술 할 이유로 m4 mini에게 자리를 뺏기게 되어.. proxmox cluster가 되었다. 해당 pc의 스펙은 다음과 같다.
i9-12900k
ddr4 64GB RAM
GTX-960
2TB SATA SSD
Bash
복사
4.5. Mac Mini
기존에 사용하던 pc에서
kAFL와 같은 커널 모듈이나 type 1 hypervisor를 활용하는 프로젝트들을 이것저것 테스트하는 탓에 os를 통째로 갈아엎거나 하는 일이 잦아 안정적인 메인 pc로 사용할 mac mini를 구매하였다.

(놀랍게도 이 머신으로 다양한 로컬 LLM 모델들을 안정적으로 구동할 수 있어서 앞으로 여러 프로젝트를 진행해볼 예정이다.)
5. 네트워크 및 서비스
5.1. OPNsense
Protectli 라우터에 OPNsense를 구성해 라우터 및 ids/ips, vpn gateway 로 사용하고 있다.
5.1.1. 네트워크 모니터링
5.1.2. Wireguard
5.1.3. Suricata
사진 생략
5.1.4. Unbound DNS
5.2. Proxmox
Proxmox 클러스터는 기존에 사용하던 PC와 새로 구매한 미니 PC로 구성했다.
새로 구성한 PC는 CPU 성능이 조금 떨어지지만, RAM 용량을 넉넉하게 구성하고 NVMe SSD를 RAID 0으로 설정해 가벼운 테스트용 인스턴스를 빠르게 배포하고 사용하는 용도로 구성했다 (Linux 테스트 및 개발환경, 연구용 AD 환경 구성 등). 기존에 사용하던 PC는 CPU 코어가 많고 Intel PT를 활용할 수 있어서 퍼징과 같은 고연산이 필요한 작업용 인스턴스를 배포하는 용도로 구성했다.
5.2.1. amd cluster
•
저전력
•
인스턴스 생성 매우 빠름
•
이사갈때 편함(백팩에 쏙 들어감)
5.2.2. intel cluster
•
전기먹는 돼지
•
연산성능 좋음
•
intel PT 사용 가능
•
이사갈때 불편함(해부해서 옮겨야함)
추가로 해당 클러스터에는 isp 라우터와 직결한 네트워크 인터페이스를 하나 추가해, 내부망과 아예 격리된 인스턴스를 생성할 수 있도록 했다.
5.2.3. Cluster Monitoring
Grafana 패널에 각 클러스터를 연결해서 모니터링 할 수 있도록 구성했다.
5.2.4. Proxmox Backup Server
백업서버는 AMD 클러스터에서 인스턴스 하나를 생성하여 구성했다. 하이퍼바이저 서버와 백업 서버는 분리하는 것이 정석이지만, 홈서버용으로 백업 전용 서버를 추가 구매할 수는 없어서 백업 데이터를 NAS에 저장하는 방식으로 절충했다.
5.3. Synology
5.3.1. 데이터 저장소
기존에 onedrive에 저장하던 개인 데이터를 시놀로지로 모두 옮겼다. 다만 raid1로 구성했음에도 불구하고 백만분의 1의 확률을 뚫고 하드디스크가 동시에 죽는 경우를 대비해서 시놀로지의 cloud sync기능을 활용해 one drive에 암호화된 데이터를 이원화 백업하도록 구성했다.
위의 사진과 같이 클라우드 저장소에는 암호화 된 데이터가 저장된다. (암호키는 usb에 저장해 여권과 함께 서랍 한구석에 안전하게 보관해야 한다...)
5.3.2. PBS NFS
위에서 언급했듯이 PBS인스턴스 자체는 같은 클러스트에서 동작하지만 백업 데이터는 NAS에 저장하는 방식으로 구성해 메인 서버의 ssd 장애에 대응하도록 구성하였다.
6. 장점 및 활용방법
6.1. 작업환경의 연속성
VPN을 구성해 두었기 때문에 인터넷에 접근할 수 있는 환경이라면 어디서든 작업을 이어갈 수 있다.
또한 연산 작업은 내부 서버에서 처리되기 때문에 작업 환경에 연결할 PC의 성능에 구애받지 않는다.
특히 tmux에 vim환경을 사용한다면, 작업하던 ‘상태’까지 유지할 수 있다.
6.2. 인스턴스 무한 크레딧
AWS나 Azure 인스턴스로 연구를 진행해보신 분이라면 잘 알 것 이다. 인스턴스 한두 개만 사용해도 월 비용이 30달러를 훌쩍 넘고, 성능 좋은 머신을 선택하면 100달러도 쉽게 초과한다.
반면 약 100만 원 정도만 투자하면 2코어짜리 인스턴스를 수십 개씩 가볍게 돌리며 연구할 수 있다.
6.3. 메인 os의 유연성
Apple Silicon 계열 제품들을 사용하고 싶어도 x64 기반의 VM을 사용해야 해서 옮기지 못하는 분들(나를 포함해서)을 많이 봤다. x64 기반의 인스턴스를 사용할 수 있는 서버가 있으면 매우 유연하게 os를 선택할 수 있다.
Mac Mini의 ARM 아키텍처에서는 구동하기 어려운 x64 기반의 도구들을 홈 서버의 VM에서 안정적으로 사용할 수 있으며, 반대로 Mac OS에서만 실행 가능한 도구들도 메인 PC에서 활용할 수 있다.
6.4. 네트워크 지식
홈 서버를 구성하며 다양한 이슈들을 해결하다 보면 책으로만 접했던 지식을 실제로 적용해볼 수 있고, 새로운 문제들을 해결하면서 더 많은 것을 배울 수 있다. 나 역시 이러한 과정을 통해 실질적인 경험과 지식을 쌓을 수 있었다.
7. 마치며
이렇게 홈서버를 구축하면서 얻은 경험은 단순한 취미 이상의 가치가 있었다.
기술적인 지식을 실제로 적용해보는 과정에서 얻은 인사이트는 업무에도 큰 도움이 되었고, 무엇보다 내 어깨와 허리의 건강을 지키면서도 원하는 작업을 어디서든 할 수 있게 되었다. 앞으로도 계속해서 이 홈서버를 발전시키고 새로운 기술들을 시도해볼 예정이다.
올해는 조금 늦었지만, 매년 변경사항을 업데이트 해보겠다.