홈서버 운영에 대한 생각
들어가며
2019년 11월부터, 2025년 5월 현재 기준 약 6년간 홈서버를 운영 중입니다. 라즈베리파이부터 데스크톱 성능의 PC까지 컴퓨팅 성능을 업그레이드하고, 우분투에서 Proxmox로 OS를 이전하면서의 기록과 운영하면서 느꼈던 생각들을 정리해 보고자 합니다.
왜 홈서버를 운영할까?
.com 도메인을 가져보자. 가장 먼저 홈서버를 운영해야겠다 생각했던 이유입니다.
왠지는 모르겠지만, 대학교 시절부터 내 도메인, 특히 닷컴(.com) 도메인 소유에 대한 열망이 있었습니다. "내 도메인으로 운영하는 서버"라는 게 그 때 당시에는 매력적으로 느껴졌기 때문인가 봅니다.
글 작성 시점인 현재 기준에는 이 블로그 도메인에서 알 수 있듯이 제 도메인인 phoiweb.com 및 이와 연동된 서버를 가지게 되었습니다. 현재 홈서버를 지속적으로 운영하는 원동력은 새로운 것을 계속해 보고 싶다는 아주 평범한 이유 때문입니다. 호스팅 가능한 새로운 서비스가 있으면 호스팅도 하고, 문제가 있으면 해결하는 과정에서 오는 재미랄까요. 흔히 얘기하는 삽질하는 즐거움이라고 할 수 있겠네요.
홈서버로 무엇을 할까?
batch job 실행기와 임베디드 장난감

처음에는 위 사진처럼 정말 무엇을 해야 할지 몰랐습니다. 기본적인 우분투 사용 방법만 배우고, 서버가 어떤 것을 제공(serving) 하면 좋을지는 생각해 본 적이 없었기 때문입니다.

그렇게 고민하다 처음으로 서버에 올린 프로그램이 대학교 공지사항을 스크랩해서 메일로 발송해 주는 공지알리미였습니다. 졸업하신 학우분이 운영하던 기존 서비스가 더 이상 동작하지 않아서 '나도 프로젝트 경험 쌓을 겸 한 번 만들어 볼까?'하고 만들었던 프로젝트입니다.
이때 서버는 그저 cron을 실행하기 위한 머신 정도로만 사용했습니다. 회고해 보니 이 프로그램을 만들지 않았다면 더 이상 서버에 흥미를 갖지 않았을 수도 있겠다 싶네요.
라즈베리파이와 아두이노를 이용한 미니 프로젝트. 아이폰에서 원격으로 에어컨을 키거나 끄게 할 수 있었다.
공지알리미를 만든 후에는 이런 미니 프로젝트도 진행했습니다. 여름에 집에 도착하기 전에 미리 에어컨을 켜서 방을 시원하게 만들고 싶었습니다. 때마침 실습하고 남은 트랜지스터와 저항을 활용하여 회로를 구성했습니다. 적외선 센서를 연결한 아두이노와 홈서버를 연결하여, 에어컨 리모콘과 동일한 적외선 신호를 아두이노가 에어컨에 보낼 수 있도록 구성했습니다.
이때 홈서버는 아이폰에서 단축어를 실행하면 홈서버에 ssh로 원격 접속해서 스크립트 파일을 실행하는 역할을 했습니다.
해당 프로젝트는 이 글을 참고하여 제작을 진행했습니다.
가상화 - KVM과 Proxmox

취직 이전까지는 위와 같이 프로그램을 직접 만들어서 이를 호스팅 하거나, 하드웨어를 원격에서 조작하는 프로그램을 실행하기 위해 홈서버를 이용했습니다. 웹 기반 서비스를 제공하는 부서에서 개발을 시작하면서 서비스 호스팅과 클라우드에 대해 자연스럽게 관심을 가지게 됩니다. 현업을 경험하는 것이 홈서버를 서버처럼 사용하게 된 계기가 아닌가 싶네요.
이때부터 EC2처럼 각 서비스 / 기능별로 VM을 분리하고, 웹 서비스는 도커 컨테이너로 실행하려는 계획을 세웠습니다. EC2나 ECS처럼 각 VM이나 컨테이너가 장애 발생 시 상호 독립적인 환경을 구축하고 싶었습니다.
처음에는 우분투 서버 위에 KVM과 cockpit을 이용했습니다. 바닥부터 하나씩 만들어야 한다는 근본주의 또는 완벽주의가 남아 있어서 그랬나 봅니다. 서비스를 올리고 VM에 OS를 올리기 전에 VM 설정만 몇 달째 하고 있는 모습을 보니, 설정만 계속하다가 제풀에 죽어서 서비스는 올리지도 못하고 끝나겠다 싶었습니다.
역시 늘 답은 있었습니다. VM과 컨테이너를 관리하는데 특화된 가상화 특화 OS를 hypervisor라고 하며, 심지어 hypervisor는 VM에 하드웨어 패스스루까지 지원한다고 합니다. 즉, GPU를 VM에 연결한다면 클라우드 게이밍과 유사한 기능까지도 홈서버에서 구현 가능하다는 것이었습니다! 제가 찾았던 hypervisor 중 개인이 사용 가능한 것은 VMWare vSphere(현재는 무료 라이선스 발급 중단됨)와 Proxmox VE였습니다. 두 옵션 중 오픈소스이면서, 인터넷에서 얻을 수 있는 정보가 많다는 점을 이유로 Proxmox를 선택했습니다.
오픈소스 셀프 호스팅

글 서두에 작성한 것처럼, 제가 홈서버를 하게 된 가장 큰 이유는 제 도메인, 그리고 도메인과 연결된 서비스를 갖는 것이었습니다. 어떤 서비스를 올려볼지 고민하다가, 역시 홈서버의 시작은 나스라고 생각해서 Nextcloud를 우선 호스팅 하기로 결정합니다.
동시에 http로 접속하면 보안에도 좋지 않고, 도메인이 뭔가 없어 보이니 https로 사이트 접속을 하기 위해 nginx proxy manager로 리버스 프록시 환경을 구현했습니다.
이후에는 Wolfgang's Channel - What's On My Home Server? 과 같은 영상을 참고해서 서버 컴퓨팅 자원 모니터링(Grafana) 및 암호 저장 서비스(Vaultwarden) 등 다양한 오픈소스 서비스를 호스팅 했습니다.
원격 게이밍
GeForce NOW를 보고, 나도 저렇게 PC는 원격에 두고 아무 데서나 게임하고 싶다는 생각을 했습니다. 기존에 사용하던 PC를 홈서버로 전환한 케이스였기에 홈서버에 GPU도 있으니, 바로 홈서버에 원격 게이밍 환경을 구축했습니다. 레딧에 올라온 글을 참고하여 GPU 패스스루 및 윈도우 설치를 진행하고, Parsec 또는 Sunshine을 이용하여 원격접속이 가능하도록 설정했습니다. webOS 기반 TV에 Moonlight를 설치해서 큰 화면에서 게임을 할 수 있도록 구성하기도 했습니다.
아쉽게도 현재는 홈서버를 이용하여 원격 게이밍을 즐기지는 않습니다. 패스스루 된 GPU는 아이들 상태에서도 많은 전력 소비했기 때문입니다. 전체 서버 아이들 소비량인 80W에서 25%인 20W를 차지했기에, 게이밍 PC를 분리하기로 결정했습니다. 현재는 별도의 윈도우 PC를 추가로 구성하여 필요할 때만 PC를 켜서 사용합니다.
다행히 남는 PC가 있어서 이런 선택을 했습니다만, 만약 부품을 새로 구매하신다면 추천드리지는 않습니다. 20W를 아끼기 위해 새로 구매하는 PC 금액이 훨씬 크기 때문입니다.
서버 변천사와 업그레이드 과정에서의 생각

라즈베리파이 3B+를 시작으로, 현재는 i5-13600K와 128GB 램이 들어가 있는 제법 고성능의 PC로 홈서버를 운용하고 있습니다. 중간에 게이밍 PC도 넣어보느라 CPU와 램이 제법 고성능/고용량인데요. 취미로 시작하신다면 N100 같은 저전력 온보드 CPU와 16GB 램 정도로 시작하는 것을 추천드립니다.
홈서버에서 가장 중요한 것은 저전력과 초기 비용이라고 생각합니다. 그다음에 중요한 게 컴퓨팅 성능이 아닌가 싶습니다. 생각보다 컴퓨팅 성능은 중요하지 않습니다. LLM을 실행한다거나, 특정 명령어셋이 필요한 CPU가 필요한 경우가 아니라면요.
10Gb 망을 구성하거나, ZFS를 구성해서 NAS를 구성한다는 경우라면 당연히 컴퓨팅 성능도 중요합니다. 다만 이 정도 규모의 시스템을 구상하신다면 이미 생각해둔 구성이 있으시리라 생각합니다.
글을 마치며
그래서 "홈서버를 왜 하냐?"라는 질문에 저는 이렇게 답변드리고 싶습니다. "생각보다 삽질이 재밌으니까요." 그렇다고 "홈서버를 추천하는가?"에는 "그렇다."라고 말씀드리기가 어렵네요. 시간과 돈을 투입해야 하는 관점에서 저는 홈서버가 취미의 영역이라고 봅니다. 시간을 들여서 덕질을 하고, 프라모델을 만드는 것처럼요.
또한 주변에서 "EC2 유지비가 비싸서 홈서버를 써보려고 하는데 추천하나요?"라고 한다면, 저는 항상 "그냥 EC2 쓰세요."라고 말씀드립니다. 하드웨어 구입 및 유지, 인프라 유지 보수를 본인의 시간과 노력으로 해결하는 "취미"이기 때문입니다.
컴퓨터와 운영체제에 관심이 많고, 여기에 시간과 노력, 그리고 필요한 경우에 돈을 투입할 의향이 있으신 분에게 홈서버를 추천드리면서 이 글을 마칩니다.