홈서버 구축기#0

미니피시로 홈서버 만들기

Author: Han Damin
Tags: server reverse proxy nginx docker
Published: 2024/09/07 21:00 Series: 홈서버 구축기

홈서버 구축기#0

홈서버란?

홈서버란 집에서 돌리는 작은 서버다. 그냥 컴퓨터 한 대 놓고 24시간 켜놓는 거라고 생각하면 된다.

home-server

현재 필자의 집에서 돌아가고 있는 홈서버다.
베어본은 beelink의 ser8이며, 스펙은 DDR5 32GB, SSD 1.5TB

왜 홈서버를 구축하는가?

  1. 비용 절감: AWS나 GCP 쓰면 매달 나가는 돈이 꽤 된다. 홈서버는 초기 비용만 들고 전기세도 얼마 안 나간다.
  2. 기술 스택 향상: 서버 구축하고 관리하면서 네트워크, 보안, 리눅스 등 여러 가지를 배울 수 있다.
  3. 개발 환경 커스터마이징: 내 입맛대로 환경 설정이 가능하다. CI/CD 파이프라인도 마음대로 구성할 수 있다.
  4. 실험의 장: 새로운 기술이나 아키텍처를 테스트하기 좋다. 클라우드에서는 비용 때문에 망설여지는 것들도 마음껏 해볼 수 있다.
  5. 낭만: 솔직히 말해서, 이게 제일 큰 이유일지도 모른다. 내 서버를 갖고 있다는 것 자체가 로망 아닌가?

필자는 글을 작성하는 시점에서 하나하나 공부해가면서 구축하고 있는 중이다. 이 글도 그런 과정에서 배운 걸 정리한 거라고 보면 된다.

홈서버로 뭘 할 수 있는가?

  1. 개인 Git 서버: GitLab이나 Gitea를 설치해서 프라이빗 저장소를 무제한으로 사용할 수 있다.
  2. CI/CD 파이프라인: Jenkins나 Drone을 이용해 자동화된 빌드와 배포 환경을 구축할 수 있다.
  3. 개발 환경 컨테이너화: Docker를 사용해 프로젝트별로 격리된 환경을 만들 수 있다.
  4. 데이터베이스 서버: MySQL, PostgreSQL, MongoDB 등을 설치해 데이터를 관리할 수 있다.
  5. 웹 애플리케이션 호스팅: Nginx나 Apache를 사용해 개인 프로젝트를 호스팅할 수 있다.
  6. VPN 서버: OpenVPN이나 WireGuard를 설치해 secure remote access를 구현할 수 있다.

홈서버 구축 시 고려사항

  1. 하드웨어 선택

    • CPU: 가상화 기술 지원 여부 확인 (Intel VT-x, AMD-V)
    • RAM: Docker 컨테이너와 VM을 위해 16GB 이상 권장
    • Storage: SSD는 필수, NVMe면 더 좋음
  2. OS 선택

    • Ubuntu Server나 CentOS가 대중적
    • 하이퍼바이저 사용 시 Proxmox VE도 좋은 선택
  3. 네트워크 설정

    • 고정 IP 설정
    • 포트 포워딩 구성
    • DDNS 서비스 사용 (공인 IP가 유동적일 경우)
  4. 보안

    • UFW나 iptables로 방화벽 설정
    • Fail2Ban으로 무차별 대입 공격 방어
    • Let's Encrypt로 SSL/TLS 인증서 발급
  5. 모니터링

    • Prometheus + Grafana로 시스템 모니터링
    • ELK 스택으로 로그 분석

근데 보안이나 모니터링은 그냥 하면서 배워도 될 것 같다.. 필자의 생각이다.

마치며

홈서버 구축은 개발자에게 놀이터 같은 거다. 이것저것 해보면서 배우는 게 많다. 클라우드에서는 돈 때문에 못해봤던 것들도 마음껏 실험해볼 수 있다. 처음엔 좀 복잡해 보여도, 하다 보면 재미도 붙고 실력도 늘고 일석이조다.

필자도 아직 배우는 단계다. 모르는 게 있으면 검색해보고, 안 되면 다시 해보고... 이런 과정을 거치면서 조금씩 나아가고 있다. 여러분도 이런 과정을 즐기면서 홈서버를 구축해보는 건 어떨까?

다음 글에서는 실제 홈서버 구축 과정을 단계별로 다뤄볼 예정이다. Docker 컨테이너 구성부터 Nginx로 리버스 프록시 설정하는 것까지, 하나하나 뜯어보자. 이 과정에서 새로 배우는 게 있을 거 같아 기대된다.