13년차의 서버실

서버, 인프라, 홈랩 기술 블로그

[태그:] Ubuntu Server

  • [Linux] Ubuntu Server vs Debian Stable: 홈서버 OS 선택 가이드

    [Linux] Ubuntu Server vs Debian Stable: 홈서버 OS 선택 가이드

    홈서버 OS, 뭘 골라야 할까요?

    홈서버를 처음 세팅하거나 기존 OS를 갈아엎으려고 할 때 가장 먼저 부딪히는 질문이 있죠. “Ubuntu Server랑 Debian Stable 중에 뭐가 나아요?” 저도 13년 전에 똑같이 고민했거든요. 그 이후로도 계속 두 배포판을 번갈아 쓰면서 비교해왔습니다.

    Ubuntu Server와 Debian Stable 비교는 리눅스 커뮤니티에서 영원히 끝나지 않는 토론 주제 중 하나예요. “어차피 Ubuntu도 Debian 기반이잖아요”라고 하시는 분들도 있는데, 맞는 말이긴 한데 실제로 써보면 체감 차이가 꽤 납니다. 특히 홈서버 운영하면서 패키지 버전 때문에 삽질해본 분들은 공감하실 거예요.

    이 글에서는 두 OS를 홈랩에서 직접 운영하면서 느낀 차이점을 솔직하게 정리해드릴게요. 어느 쪽이 무조건 낫다가 아니라, 여러분의 상황에 맞는 선택을 할 수 있도록 도와드리는 게 목표입니다.

    Ubuntu Server와 Debian Stable 비교 개요 — 홈서버 OS 선택 가이드

    Ubuntu Server와 Debian Stable — 둘 다 훌륭한 서버 배포판이지만, 방향성이 꽤 다릅니다.

    두 배포판의 철학 차이부터 이해하기

    기술적인 비교 전에 철학적인 차이를 먼저 이해하는 게 중요해요. 쉽게 말해서, 두 리눅스 배포판이 추구하는 방향이 근본적으로 다릅니다.

    Debian Stable은 “절대 깨지지 않는 안정성”을 최우선으로 둡니다. Debian 프로젝트는 커뮤니티가 자발적으로 운영하는 비영리 프로젝트인데요, 패키지를 Stable 브랜치에 올리기 전에 수개월에서 1~2년씩 테스트를 거칩니다. 덕분에 패키지 버전이 좀 구식이더라도, 한번 올라간 패키지는 진짜 안 깨져요. 제가 Debian Stable 서버를 3년 넘게 돌린 적 있는데, apt upgrade 하다가 시스템이 망가진 적이 단 한 번도 없었습니다.

    Ubuntu Server는 Canonical이 개발하고 지원하는데요, Debian을 기반으로 하면서 더 최신 패키지와 사용 편의성을 추가한 형태입니다. 6개월마다 일반 릴리스가 나오고, 2년마다 LTS(Long Term Support, 장기 지원 버전)가 나옵니다. LTS는 5년간 보안 업데이트를 받을 수 있어서 서버용으로는 주로 LTS를 씁니다.

    릴리스 사이클 한눈에 비교

    항목 Debian Stable Ubuntu Server LTS
    릴리스 주기 약 2년 (불규칙) 2년 (짝수 연도 4월)
    지원 기간 약 3년 + LTS 1년 5년 (ESM 포함 10년)
    패키지 신선도 보수적 (안정 우선) 비교적 최신
    개발 주체 커뮤니티 Canonical (기업)
    기업 지원 서드파티 유료 Canonical 공식 지원

    패키지 관리: 신선도 vs 안정성

    홈서버 운영하면서 가장 많이 체감하는 차이가 바로 패키지 버전이에요. 이게 생각보다 꽤 중요하더라고요.

    예를 들어볼게요. 제가 Docker를 Debian Stable에서 공식 저장소로 설치하려고 했더니, 패키지 버전이 꽤 오래된 버전이었습니다. 물론 Docker 공식 저장소를 별도로 추가하면 최신 버전을 쓸 수 있지만, 이런 식으로 외부 저장소를 여러 개 추가하다 보면 나중에 의존성 충돌이 생기기도 하거든요. 반면 Ubuntu Server는 Docker 공식 저장소의 패키지와 호환이 잘 되는 편이었습니다.

    그렇다고 Debian이 무조건 불편한 건 아니에요. 패키지가 구식인 대신, 그 버전에서 발생할 수 있는 버그나 보안 취약점은 백포팅(backporting, 최신 보안 패치를 구버전에 역이식)으로 꾸준히 처리해줍니다. 홈서버에서 특별히 최신 기능이 필요한 게 아니라면 충분해요.

    # Debian에서 backports 저장소 추가하는 방법
    # 더 최신 패키지가 필요할 때 활용
    echo "deb http://deb.debian.org/debian $(lsb_release -cs)-backports main" | \
      sudo tee /etc/apt/sources.list.d/backports.list
    
    sudo apt update
    
    # backports에서 특정 패키지 설치
    sudo apt install -t $(lsb_release -cs)-backports <패키지명>

    Ubuntu는 PPA(Personal Package Archive, 개인 패키지 저장소)라는 시스템도 있어서 공식 저장소에 없는 최신 패키지를 쉽게 추가할 수 있습니다. 홈랩에서 이것저것 실험하기엔 편한데, 프로덕션 서버에선 PPA 남발하면 나중에 관리하기 복잡해지더라고요. 경험상 PPA는 정말 필요한 것만 추가하는 게 낫습니다.

    # Ubuntu PPA 추가 예시
    sudo add-apt-repository ppa:저장소/이름
    sudo apt update
    sudo apt install 패키지명
    
    # 추가된 PPA 목록 확인
    ls /etc/apt/sources.list.d/

    네트워크 설정: Netplan vs interfaces

    이 부분에서 처음에 좀 당황했는데요. Ubuntu Server는 Netplan(넷플랜)이라는 독자적인 네트워크 설정 방식을 사용합니다. YAML 파일로 네트워크를 정의하고, 이걸 systemd-networkd나 NetworkManager에 위임하는 구조예요.

    # Ubuntu Netplan 설정 예시
    # /etc/netplan/00-installer-config.yaml
    network:
      version: 2
      ethernets:
        eth0:
          addresses:
            - 192.168.1.100/24
          routes:
            - to: default
              via: 192.168.1.1
          nameservers:
            addresses:
              - 8.8.8.8
              - 1.1.1.1
    # Netplan 설정 적용
    sudo netplan apply

    Debian은 전통적인 /etc/network/interfaces 방식을 기본으로 씁니다. 오래된 방식이지만 레퍼런스가 많아서 오히려 익숙한 분들도 많아요.

    # Debian /etc/network/interfaces 예시
    auto eth0
    iface eth0 inet static
      address 192.168.1.100
      netmask 255.255.255.0
      gateway 192.168.1.1
      dns-nameservers 8.8.8.8 1.1.1.1

    솔직히 Netplan이 처음엔 낯설었는데, 익숙해지면 YAML로 깔끔하게 관리되는 게 나름 편합니다. 근데 Debian의 interfaces 방식도 간결하고 직관적이라 나쁘진 않아요.

    Ubuntu Netplan과 Debian 네트워크 설정 방식 구조 비교 다이어그램

    Ubuntu의 Netplan과 Debian의 전통적인 네트워크 설정 방식 비교 — 구조는 다르지만 목적은 같습니다.

    실전 홈서버 운영 시나리오별 비교

    이론적인 비교는 충분히 했으니, 실제 홈서버에서 어떤 용도로 쓰냐에 따라 어떤 게 나은지 정리해볼게요.

    시나리오 1: Docker + 컨테이너 환경

    요즘 홈서버는 거의 Docker로 돌리시죠? 이 경우엔 솔직히 Ubuntu Server LTS가 좀 더 편합니다. Docker 공식 문서의 설치 가이드가 Ubuntu 기준으로 작성된 게 많고, 커뮤니티 레퍼런스도 Ubuntu가 압도적으로 많거든요. 처음 세팅할 때 막히는 상황이 생기면 구글링하면 바로 해결책이 나오는 게 Ubuntu 쪽이 훨씬 유리합니다.

    # Ubuntu에서 Docker 공식 저장소로 설치
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
      sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    
    echo "deb [arch=$(dpkg --print-architecture) \
      signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] \
      https://download.docker.com/linux/ubuntu \
      $(lsb_release -cs) stable" | \
      sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    
    sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

    시나리오 2: NAS / 파일 서버

    Samba나 NFS로 파일 서버를 운영한다면, 솔직히 두 리눅스 배포판 다 크게 차이 없습니다. 다만 Debian Stable이 장기간 무중단 운영에 더 적합하다는 느낌이 있어요. 업데이트할 때 패키지 변화가 적으니까 예상치 못한 설정 파일 변경이 덜 발생합니다. 저도 NAS 용도로는 Debian을 선호하는 편이에요.

    시나리오 3: 홈 자동화 (Home Assistant 등)

    Home Assistant(홈 어시스턴트)나 Node-RED 같은 홈 자동화 플랫폼을 돌릴 때는 Ubuntu가 유리합니다. 이런 애플리케이션들이 최신 Python 버전이나 최신 의존성 패키지를 필요로 하는 경우가 많아서, 패키지가 보수적인 Debian에서는 추가 설정이 필요할 수 있거든요.

    시나리오 4: 가상화 호스트 (Proxmox 아닌 일반 KVM)

    KVM(Kernel-based Virtual Machine, 커널 기반 가상화)으로 VM 여러 대를 돌리는 경우엔 Debian Stable을 추천드립니다. 호스트 OS는 최대한 안정적이고 변화가 없는 게 좋거든요. VM 안에서 Ubuntu를 돌리면 되니까 호스트는 Debian으로 단단하게 깔아두는 게 제 스타일입니다.

    ⚠️ 주의사항 및 실제 삽질 경험

    두 배포판 모두 써보면서 겪은 실제 문제들을 공유할게요.

    Ubuntu Snap 패키지 주의

    Ubuntu Server를 쓰다 보면 일부 패키지가 apt 대신 Snap(스냅)으로 설치되는 경우가 있습니다. Snap은 샌드박스 환경에서 실행되는 패키지 포맷인데, 경로가 일반 apt 패키지와 달라서 처음엔 당황스럽더라고요. 예를 들어 snap으로 설치된 프로그램은 /snap/bin/에 있어서 스크립트 짤 때 경로 실수가 생기기도 했습니다.

    # Snap 패키지 목록 확인
    snap list
    
    # Snap 대신 apt로 설치하고 싶을 때 (예: lxd)
    sudo snap remove lxd
    sudo apt install lxd  # 혹은 공식 apt 저장소 활용

    Debian 업그레이드 시 설정 파일 충돌

    Debian에서 메이저 버전 업그레이드(예: Bullseye → Bookworm)할 때 설정 파일 충돌 처리가 까다로울 수 있어요. apt가 기존 설정 파일을 유지할지 새 버전으로 교체할지 물어보는데, 여기서 잘못 선택하면 서비스가 안 뜰 수 있습니다. 업그레이드 전에 설정 파일 백업은 필수예요!

    # 중요 설정 파일 백업 스크립트 예시
    backup_dir="/backup/config_$(date +%Y%m%d)"
    sudo mkdir -p "$backup_dir"
    
    # 주요 설정 디렉토리 백업
    sudo cp -a /etc/nginx "$backup_dir/"
    sudo cp -a /etc/samba "$backup_dir/"
    sudo cp -a /etc/network "$backup_dir/"
    
    echo "백업 완료: $backup_dir"

    💡 팁: 어떤 배포판이든 unattended-upgrades는 설정하세요

    홈서버라고 보안 업데이트를 소홀히 하면 안 됩니다. 두 리눅스 배포판 모두 unattended-upgrades로 보안 패치를 자동 적용할 수 있어요.

    # 자동 보안 업데이트 설치
    sudo apt install unattended-upgrades
    sudo dpkg-reconfigure --priority=low unattended-upgrades
    
    # 설정 확인
    cat /etc/apt/apt.conf.d/50unattended-upgrades
    홈서버 용도별 Ubuntu Server vs Debian Stable 선택 플로우차트

    홈서버 용도에 따른 OS 선택 플로우차트 — 어떤 서비스를 돌릴지에 따라 최적의 선택이 달라집니다.

    리눅스 서버 안정성 관점에서의 최종 비교

    리눅스 서버 안정성을 최우선으로 본다면, Debian Stable이 살짝 앞서는 게 사실입니다. 하지만 Ubuntu Server LTS도 5년 지원에 Canonical의 상업적 지원이 뒷받침되니까 절대 불안정한 선택은 아니에요.

    비교 항목 Debian Stable Ubuntu Server LTS 홈서버 관점 추천
    시스템 안정성 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ 장기 무중단: Debian
    패키지 최신성 ⭐⭐⭐ ⭐⭐⭐⭐ 최신 기능 필요: Ubuntu
    레퍼런스/커뮤니티 ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ 초보자: Ubuntu
    서버 배포판 다양성 ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ Docker 환경: Ubuntu
    리소스 사용량 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ 저사양 서버: Debian
    설치 편의성 ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ 입문자: Ubuntu

    🎉 결론: 이런 분께 이걸 추천드려요

    13년 동안 두 배포판을 오가며 내린 제 결론은 이렇습니다.

    Ubuntu Server LTS를 선택하세요, 만약:

    • 리눅스 서버가 처음이거나 경험이 많지 않은 경우
    • Docker, Kubernetes 같은 컨테이너 기반 인프라를 주로 운영할 때
    • 최신 패키지와 기능이 중요한 홈 자동화, 미디어 서버 환경
    • 구글링으로 빠르게 문제를 해결하고 싶을 때
    • 향후 Canonical의 기업 지원이나 클라우드 연계를 고려할 때

    Debian Stable을 선택하세요, 만약:

    • “한번 세팅하면 몇 년 동안 손 안 대고 싶다”는 스타일
    • 저사양 하드웨어에서 최소한의 리소스로 운영할 때
    • KVM, LXC 같은 가상화 호스트로 쓸 때
    • Snap 같은 추가 패킹 레이어 없이 깔끔하게 관리하고 싶을 때
    • 리눅스에 어느 정도 익숙하고 직접 설정하는 걸 즐길 때

    저 개인적으론 요즘 홈랩에서 가상화 호스트는 Debian, 컨테이너 워크로드가 있는 VM은 Ubuntu Server LTS로 역할을 나눠서 쓰고 있어요. 둘 다 훌륭한 리눅스 서버 배포판이라, 어떤 걸 선택하든 공부하고 경험 쌓는 데는 부족함이 없습니다.

    다음 글에서는 선택한 OS 위에 Docker와 Docker Compose로 홈서버 스택을 구성하는 방법을 다룰 예정이에요. 어떤 배포판을 고르든 그 내용은 공통으로 적용되니 기대해주세요!

    Ubuntu Server vs Debian Stable 최종 비교 요약 인포그래픽 — 홈서버 OS 선택 가이드

    Ubuntu Server vs Debian Stable 최종 선택 가이드 — 여러분의 홈서버 상황에 맞게 골라보세요.

    자주 묻는 질문 (FAQ)

    Q. Ubuntu Server LTS와 Debian Stable 중 보안 업데이트가 더 빠른 쪽은?

    두 배포판 모두 중요한 CVE(보안 취약점)에 대해 신속하게 업데이트를 배포합니다. 다만 Ubuntu는 Canonical의 전담 보안 팀이 있어서 대형 취약점 대응이 약간 더 조직적으로 이뤄지는 편이에요. Debian도 커뮤니티 보안 팀이 매우 적극적이라 실질적인 차이는 크지 않습니다.

    Q. 나중에 Ubuntu에서 Debian으로, 또는 반대로 마이그레이션 할 수 있나요?

    직접 마이그레이션은 권장하지 않습니다. 같은 Debian 계열이라도 패키지 구성이나 설정 위치가 미묘하게 달라서 문제가 생길 수 있어요. OS를 바꿀 때는 깔끔하게 새로 설치하고, 서비스 설정과 데이터를 옮기는 방식이 훨씬 안전합니다.

    Q. 홈서버에 Ubuntu Desktop 버전을 쓰면 안 되나요?

    쓸 수는 있지만, 서버 용도라면 GUI(그래픽 인터페이스) 없는 Ubuntu Server나 Debian이 리소스를 훨씬 적게 쓰고 관리가 단순합니다. Desktop 버전은 GUI 관련 패키지와 서비스가 많아서 서버로는 오버스펙이에요.

  • [HomeLabs] 미니PC 홈서버 구축: 저전력 서버 완벽 가이드

    월 전기요금 보고 깜짝 놀란 그날부터 시작됐습니다

    홈서버 구축을 처음 시작했을 때 저는 ATX 풀타워 케이스에 데스크톱 CPU를 꽂아서 24시간 돌렸습니다. 결과는… 다음 달 전기요금 고지서가 저를 가르쳐줬죠. “이건 아니다” 싶었어요. 그때부터 저전력 서버, 특히 미니PC를 진지하게 알아보기 시작했습니다.

    13년 동안 인프라 엔지니어로 일하면서 홈랩(Home Lab)을 꾸준히 운영해왔는데요, 솔직히 말하면 홈랩 환경에서 가장 중요한 건 성능이 아니라 지속 가능성이더라고요. 아무리 좋은 장비도 전기세 때문에 꺼놓으면 의미가 없잖아요.

    이 글에서는 홈서버 구축을 처음 고민하시는 분들, 혹은 기존 홈서버의 전력 소비가 너무 많아서 고민이신 분들을 위해 저전력 미니PC를 활용한 홈서버 구축 가이드를 공유해드리려고 합니다. 실제로 제가 삽질했던 경험들도 솔직하게 담았으니 끝까지 읽어보세요.

    ▲ 미니PC 기반 홈서버의 일반적인 네트워크 구성도 — 인터넷 공유기부터 NAS, 모니터링까지 한눈에 볼 수 있습니다.

    왜 미니PC인가? 저전력 서버의 장단점

    “미니PC가 서버로 쓸 만해요?” 이 질문 정말 많이 받습니다. 결론부터 말씀드리면, 홈서버 용도로는 충분히 쓸 만합니다. 다만 어떤 용도로 쓸지에 따라 달라지긴 해요.

    미니PC 홈서버의 장점

    • 전력 소비가 낮습니다 — 일반 데스크톱 대비 훨씬 적은 전력으로 동작합니다. 24시간 365일 켜두는 홈서버 특성상 이 차이가 연간 전기요금에서 크게 체감됩니다.
    • 소음이 적습니다 — 거실이나 서재에 놔도 크게 신경 쓰이지 않는 수준이에요.
    • 공간을 차지하지 않습니다 — 책상 한 구석, 공유기 옆에 얌전히 자리 잡습니다.
    • 발열이 낮습니다 — 여름에 서버실처럼 방이 더워지는 걱정을 덜 수 있어요.
    • 구입 비용이 상대적으로 낮습니다 — 동급 성능의 일반 데스크톱 대비 저렴한 경우가 많습니다.

    미니PC 홈서버의 단점

    • 확장성이 제한됩니다 — PCIe 슬롯이 없거나 제한적이라 GPU 추가, HBA 카드 장착 등이 어렵습니다.
    • 스토리지 베이가 적습니다 — 내장 드라이브 슬롯이 2개 이하인 경우가 많아 대용량 NAS 구성이 어렵습니다.
    • ECC 메모리 지원이 없는 경우가 많습니다 — 중요한 데이터를 다루는 서버라면 이 부분이 아쉬울 수 있어요.

    홈서버 구축 전 — 용도부터 정하세요

    여기서 중요한 포인트! 미니PC 홈서버를 시작하기 전에 “이걸로 뭘 할 건지”를 먼저 정해야 합니다. 저도 처음엔 그냥 “뭔가 돌려봐야지” 하다가 나중에 용도가 바뀌면서 장비를 두 번 교체한 적이 있거든요.

    용도 필요 사양 추천 구성
    파일 서버 / NAS 낮은 CPU, 충분한 RAM, 스토리지 베이 저전력 CPU + 외장 USB 스토리지 또는 NAS 연동
    미디어 서버 (Plex, Jellyfin 등) 트랜스코딩 지원 CPU 또는 iGPU Intel Quick Sync 지원 CPU 탑재 미니PC
    홈 자동화 (Home Assistant 등) 낮은 사양으로도 충분 저전력 x86 미니PC 또는 ARM 보드
    컨테이너/가상화 서버 멀티코어 CPU, 16GB+ RAM Intel N100 이상 CPU, 16~32GB RAM 구성
    VPN 서버 / 라우터 낮은 CPU, 다중 NIC(네트워크 카드) 2.5GbE 듀얼 포트 지원 미니PC

    미니PC 선택 기준 — 이 5가지는 꼭 확인하세요

    시장에 미니PC 제품이 워낙 많아서 처음 보시면 뭘 골라야 할지 막막하실 거예요. 저도 처음엔 그랬거든요. 제가 홈서버용 미니PC를 고를 때 기준으로 삼는 항목들을 공유해드릴게요.

    1. TDP(열설계전력) 확인

    TDP(Thermal Design Power, 열설계전력)는 CPU가 최대 부하 시 발생하는 열량의 기준값으로, 실제 전력 소비와 비례합니다. 홈서버용으로는 TDP 15W 이하 제품을 권장합니다. Intel N-시리즈(구 Celeron/Pentium 계열)나 AMD Ryzen Embedded 계열이 이 범주에 들어옵니다.

    2. RAM 확장 가능 여부

    미니PC 중에는 RAM이 메인보드에 납땜(온보드)되어 있어서 교체가 불가능한 제품도 있습니다. 홈서버 용도라면 반드시 SO-DIMM 슬롯이 있어 메모리 업그레이드가 가능한 제품을 고르세요. 처음엔 8GB면 충분해 보여도 Docker 컨테이너 몇 개 올리다 보면 금방 부족해집니다.

    3. 스토리지 인터페이스

    M.2 NVMe 슬롯이 있는지, SATA 2.5인치 베이가 있는지 확인하세요. 가능하면 M.2 슬롯 2개 이상이거나 M.2 + 2.5인치 조합을 지원하는 제품이 활용도가 높습니다.

    4. 네트워크 포트

    기가비트 이더넷(1GbE)은 기본이고, 요즘은 2.5GbE를 지원하는 미니PC도 많아졌습니다. 홈서버에서 대용량 파일 전송이나 미디어 스트리밍을 많이 한다면 2.5GbE 이상을 추천합니다.

    5. 베어본 vs 완제품

    베어본(Barebone)은 RAM과 스토리지 없이 본체만 파는 형태이고, 완제품은 RAM과 SSD가 포함된 형태입니다. 직접 조립하는 걸 즐기신다면 베어본이 비용 효율적이고, 번거로움 없이 바로 시작하고 싶다면 완제품이 낫습니다.

    ▲ 일반적인 홈서버용 미니PC 내부 구조 — M.2 슬롯, SO-DIMM 메모리, 2.5인치 SATA 베이 위치를 확인할 수 있습니다.

    OS 선택 — 뭘 깔아야 할까요?

    하드웨어를 골랐다면 이제 OS 선택입니다. 홈서버 구축 목적에 따라 OS 선택이 달라지는데요, 제가 주로 쓰는 조합을 소개해드릴게요.

    Ubuntu Server (우분투 서버)

    범용성이 가장 높습니다. Docker, Kubernetes, 각종 서비스 설치 관련 자료가 가장 많아서 처음 홈서버를 구축하시는 분들께 추천합니다. LTS(Long Term Support, 장기 지원) 버전을 사용하면 안정성도 좋아요.

    Proxmox VE (프록스목스 VE)

    가상화(Virtualization)에 특화된 오픈소스 플랫폼입니다. KVM 기반 가상머신과 LXC 컨테이너를 웹 UI로 편하게 관리할 수 있어서 홈랩 환경에서 정말 많이 써요. 저도 현재 홈랩 메인 서버에 Proxmox를 쓰고 있거든요. 무료로 쓸 수 있고 UI가 직관적이라 강력 추천합니다.

    TrueNAS SCALE (트루나스 스케일)

    NAS(Network Attached Storage, 네트워크 결합 스토리지) 전용 OS입니다. ZFS 파일시스템을 기반으로 데이터 무결성이 뛰어나고, 웹 UI에서 대부분의 설정을 처리할 수 있어요. 파일 서버 용도가 메인이라면 이걸 추천합니다.

    Debian (데비안)

    우분투의 베이스가 되는 OS입니다. 우분투보다 더 가볍고 안정적인 편이라 서버 용도에 적합해요. 다만 자료가 우분투보다 약간 적은 편이긴 합니다.

    실전 구현 — Ubuntu Server + Docker로 홈서버 세팅하기

    이제 진짜 실전입니다. 제가 가장 많이 추천하는 조합인 Ubuntu Server + Docker 기반 홈서버 구축 과정을 단계별로 알려드릴게요.

    1단계: Ubuntu Server 설치 후 기본 설정

    Ubuntu Server를 설치하고 나면 가장 먼저 시스템을 최신 상태로 업데이트합니다.

    # 패키지 목록 업데이트 및 업그레이드
    sudo apt update && sudo apt upgrade -y
    
    # 자주 쓰는 유틸리티 설치
    sudo apt install -y curl wget git htop net-tools unzip

    2단계: 정적 IP 설정

    홈서버는 IP가 바뀌면 곤란하거든요. Netplan(넷플랜)을 사용해서 정적 IP를 설정합니다. 아래는 예시 설정이니 본인 환경에 맞게 IP 주소와 게이트웨이를 수정하세요.

    # /etc/netplan/00-installer-config.yaml
    network:
      version: 2
      ethernets:
        eth0:  # 본인의 네트워크 인터페이스 이름 확인 필요 (ip link 명령어로 확인)
          dhcp4: false
          addresses:
            - 192.168.1.100/24  # 원하는 정적 IP
          routes:
            - to: default
              via: 192.168.1.1  # 게이트웨이 IP
          nameservers:
            addresses:
              - 8.8.8.8
              - 1.1.1.1
    # 설정 적용
    sudo netplan apply

    3단계: Docker 설치

    Docker(도커)는 컨테이너 기반 가상화 도구입니다. 쉽게 말해 각각의 서비스를 독립된 환경에서 실행할 수 있게 해주는 도구예요. 공식 스크립트로 설치하는 게 가장 간편합니다.

    # Docker 공식 설치 스크립트 실행
    curl -fsSL https://get.docker.com -o get-docker.sh
    sudo sh get-docker.sh
    
    # 현재 사용자를 docker 그룹에 추가 (sudo 없이 docker 명령어 사용 가능)
    sudo usermod -aG docker $USER
    
    # 변경사항 적용을 위해 재로그인 또는 아래 명령어 실행
    newgrp docker
    
    # 설치 확인
    docker --version
    docker run hello-world

    4단계: Docker Compose로 서비스 올리기

    Docker Compose(도커 컴포즈)는 여러 컨테이너를 YAML 파일 하나로 정의하고 관리할 수 있게 해주는 도구입니다. 홈서버에서 자주 쓰이는 서비스들을 예시로 보여드릴게요.

    # docker-compose.yml 예시
    version: '3.8'
    
    services:
      # Portainer — 도커 컨테이너 웹 UI 관리 도구
      portainer:
        image: portainer/portainer-ce:latest
        container_name: portainer
        restart: unless-stopped
        ports:
          - "9000:9000"
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
          - portainer_data:/data
    
      # Nginx Proxy Manager — 리버스 프록시 및 SSL 관리
      nginx-proxy-manager:
        image: jc21/nginx-proxy-manager:latest
        container_name: nginx-proxy-manager
        restart: unless-stopped
        ports:
          - "80:80"
          - "443:443"
          - "81:81"  # 관리자 UI
        volumes:
          - npm_data:/data
          - npm_letsencrypt:/etc/letsencrypt
    
      # Uptime Kuma — 서비스 가동 상태 모니터링
      uptime-kuma:
        image: louislam/uptime-kuma:latest
        container_name: uptime-kuma
        restart: unless-stopped
        ports:
          - "3001:3001"
        volumes:
          - uptime_kuma_data:/app/data
    
    volumes:
      portainer_data:
      npm_data:
      npm_letsencrypt:
      uptime_kuma_data:
    # 서비스 시작
    docker compose up -d
    
    # 실행 중인 컨테이너 확인
    docker ps
    
    # 로그 확인
    docker compose logs -f

    5단계: 자동 업데이트 설정 (Watchtower)

    Watchtower(워치타워)는 실행 중인 Docker 컨테이너의 이미지를 자동으로 업데이트해주는 도구입니다. 홈서버는 관리에 많은 시간을 쏟기 어렵기 때문에 이런 자동화 도구를 활용하면 편해요.

    # Watchtower 실행 — 매일 새벽 4시에 업데이트 확인
    docker run -d \
      --name watchtower \
      --restart unless-stopped \
      -v /var/run/docker.sock:/var/run/docker.sock \
      containrrr/watchtower \
      --schedule "0 0 4 * * *" \
      --cleanup

    ⚠️ 삽질 경험 공유 — 이건 꼭 미리 알아두세요

    이 섹션은 제가 직접 겪었던 문제들입니다. 미리 알아두시면 같은 실수를 반복하지 않을 수 있어요.

    문제 1: 정전 후 서버가 자동으로 안 켜지는 문제

    홈서버는 24시간 운영이 목표인데 정전 후 자동으로 켜지지 않으면 원격에서 손쓸 방법이 없습니다. BIOS/UEFI 설정에서 “AC Power Recovery” 또는 “Restore on AC Power Loss” 옵션을 찾아서 “Power On”으로 설정하세요. 이 설정을 빠뜨리는 분들이 생각보다 많아요.

    문제 2: SSH 접속이 갑자기 끊기는 문제

    장시간 SSH 세션을 유지할 때 자동으로 끊기는 경우가 있습니다. 서버 측과 클라이언트 측 모두 설정이 필요합니다.

    # 서버 측 SSH 설정 수정
    sudo nano /etc/ssh/sshd_config
    
    # 아래 줄 추가 또는 수정
    # ClientAliveInterval 60
    # ClientAliveCountMax 3
    
    # SSH 서비스 재시작
    sudo systemctl restart sshd

    문제 3: 디스크 공간 부족 경고

    Docker를 쓰다 보면 사용하지 않는 이미지, 컨테이너, 볼륨이 쌓여서 디스크를 잡아먹습니다. 주기적으로 정리해주세요.

    # 사용하지 않는 Docker 리소스 정리
    docker system prune -a --volumes
    
    # 디스크 사용량 확인
    df -h
    docker system df

    문제 4: 외부 접속 시 보안 설정 미흡

    홈서버를 외부에서 접근 가능하게 열어두면 보안이 중요해집니다. 최소한 아래 사항은 꼭 챙기세요.

    • SSH 포트 변경 — 기본 22번 포트는 자동화된 공격 대상이 됩니다
    • SSH 키 인증 사용 — 비밀번호 인증 대신 공개키 인증을 사용하세요
    • 방화벽 설정 — UFW(Uncomplicated Firewall)로 필요한 포트만 열어두세요
    • Fail2ban 설치 — 반복적인 로그인 시도를 자동으로 차단해줍니다
    # UFW 방화벽 설정
    sudo apt install -y ufw
    
    # 기본 정책 설정
    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    
    # SSH 허용 (포트를 변경했다면 해당 포트 번호 입력)
    sudo ufw allow 22/tcp
    
    # 웹 서비스 포트 허용
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    
    # 방화벽 활성화
    sudo ufw enable
    sudo ufw status

    ▲ Uptime Kuma와 Portainer를 활용한 홈서버 모니터링 대시보드 예시 — 서비스 가동 상태와 컨테이너 현황을 한눈에 확인할 수 있습니다.

    ✅ 검증 — 제대로 돌아가고 있는지 확인하기

    설정을 다 마쳤다면 제대로 동작하는지 확인해봐야죠. 드디어 됐다! 싶은 순간이 여기서 옵니다 🎉

    서비스 상태 확인

    # 실행 중인 컨테이너 전체 목록
    docker ps
    
    # 시스템 리소스 사용량 모니터링
    htop
    
    # 네트워크 포트 열림 확인
    ss -tlnp
    
    # 서비스 자동 시작 확인
    sudo systemctl is-enabled docker

    웹 UI 접속 확인

    • Portainer: http://서버IP:9000 접속 후 초기 관리자 계정 설정
    • Nginx Proxy Manager: http://서버IP:81 접속 (초기 계정: [email protected] / changeme)
    • Uptime Kuma: http://서버IP:3001 접속 후 모니터링할 서비스 추가

    💡 팁: 원격 접속 환경 구성

    외부에서 홈서버에 안전하게 접근하고 싶다면 VPN을 구성하는 게 좋습니다. WireGuard(와이어가드)나 Tailscale(테일스케일)을 추천합니다. Tailscale은 특히 설정이 정말 간단해서 처음 시작하시는 분들께 좋아요. 이 부분은 별도 글에서 자세히 다룰 예정이니 참고하세요.

    홈서버 구축 요약 — 이것만 기억하세요

    ▲ 미니PC 홈서버 구축 단계별 요약 — 하드웨어 선택부터 서비스 운영까지의 전체 흐름을 한눈에 정리했습니다.

    자주 묻는 질문 (FAQ)

    Q. 미니PC 홈서버, 얼마나 안정적인가요?

    저는 미니PC 기반 홈서버를 수년째 운영 중인데, 하드웨어 고장보다 설정 실수로 인한 다운이 훨씬 많았습니다. 안정적인 리눅스 배포판과 UPS(무정전전원장치)를 함께 쓰면 충분히 안정적으로 운영할 수 있어요.

    Q. RAM은 얼마나 있어야 하나요?

    파일 서버나 홈 자동화만 할 거라면 8GB로도 충분합니다. Docker로 여러 서비스를 돌린다면 16GB를 권장하고, 가상머신까지 올린다면 32GB 이상이 편해요.

    Q. SSD와 HDD 중 뭘 써야 하나요?

    OS와 Docker 데이터는 반드시 SSD(NVMe 권장)에 설치하고, 대용량 파일 저장은 외장 HDD나 NAS를 별도로 연결하는 구성을 추천합니다. SSD에 모든 걸 저장하면 비용이 많이 들고, HDD에 OS를 설치하면 속도가 너무 느려요.

    Q. 처음 홈서버를 시작한다면 어떤 서비스부터 올리면 좋을까요?

    Portainer로 Docker 관리 UI를 먼저 구성하고, Uptime Kuma로 모니터링을 설정한 다음, 본인이 가장 필요한 서비스(파일 서버라면 Nextcloud, 미디어 서버라면 Jellyfin 등)를 추가하는 순서를 권장합니다.

    마무리 — 홈서버는 꾸준히 배우는 과정입니다

    홈서버 구축, 처음엔 막막해 보이지만 막상 시작하면 생각보다 빠르게 동작하는 걸 볼 수 있어요. 저도 처음 홈서버를 구성할 때 며칠 밤을 새웠던 기억이 나는데, 지금은 새로운 서비스를 올리는 게 취미 수준이 됐거든요.

    미니PC 기반 저전력 홈서버는 홈서버를 처음 시작하거나, 전기요금 걱정 없이 24시간 운영하고 싶은 분들에게 정말 좋은 선택입니다. 완벽한 장비가 없어도 괜찮아요. 지금 있는 장비로 시작하고, 부족한 부분은 운영하면서 채워나가면 됩니다.

    다음 글에서는 Proxmox VE를 활용한 홈랩 가상화 환경 구성을 다룰 예정입니다. 미니PC 한 대로 여러 개의 가상머신을 돌리는 방법, 궁금하시죠? 이전 글에서 네트워크 기초 설정을 다뤘으니 함께 보시면 더 도움이 될 거예요.

    혹시 홈서버 구축하면서 막히는 부분이 있으시면 댓글로 남겨주세요. 제가 아는 범위 내에서 최대한 도움을 드리겠습니다. 🎉

  • [HomeLabs] 씬클라이언트 홈서버 구축: 저전력 미니PC 활용 완벽 가이드

    전기세 걱정 없이 24시간 서버 돌리고 싶다면?

    홈서버를 처음 구축할 때 저도 제일 먼저 든 걱정이 “이거 전기세 얼마나 나오지?”였거든요. 그때 마침 회사 IT 창고에 쌓여 있던 씬클라이언트(Thin Client) 장비들을 보면서 “이걸 집에 가져다 쓰면 어떨까?” 싶었습니다. 결론부터 말씀드리면, 씬클라이언트 홈서버 구축은 저전력 + 저비용 + 충분한 성능이라는 세 마리 토끼를 꽤 잘 잡는 선택이에요.

    요즘 미니PC 홈서버에 관심 갖는 분들이 늘어나고 있는데, 막상 어떤 장비를 고르고 어떻게 세팅해야 할지 막막하신 분들을 위해 13년간 서버실에서 일해온 경험을 정리해봤습니다.

    씬클라이언트 기반 홈랩의 전형적인 네트워크 구성도 — 공유기, 씬클라이언트 서버, NAS, 그리고 외부 접근 경로를 한눈에 볼 수 있습니다.

    씬클라이언트(Thin Client)가 뭔가요? 쉽게 풀어보면

    씬클라이언트는 원래 기업 환경에서 VDI(Virtual Desktop Infrastructure, 가상 데스크탑 인프라)나 원격 서버에 접속하기 위한 단말기로 쓰이던 장비예요. 쉽게 말해서, 자체적으로 무거운 연산은 안 하고 서버에서 처리한 결과만 화면에 뿌려주는 “얇은(Thin)” 클라이언트죠.

    이게 홈서버 용도로 매력적인 이유가 있어요.

    • 기업에서 대량으로 쓰다 교체한 중고 물량이 시장에 꽤 많이 풀림
    • 원래 설계 자체가 저전력, 저소음, 소형 폼팩터(Form Factor)
    • x86 아키텍처 기반이라 일반 리눅스 서버 OS 설치 가능
    • eMMC나 SSD가 내장된 모델이 많아 별도 저장장치 없이도 부팅 가능

    저도 처음엔 “이게 진짜 서버 역할을 할 수 있어?” 반신반의했는데, 지금은 홈랩의 핵심 노드로 잘 쓰고 있습니다 ㅎㅎ.

    씬클라이언트 vs 일반 미니PC — 뭐가 다를까?

    구분 씬클라이언트 일반 미니PC NUC 계열
    주 용도 기업 단말기 (중고 활용) 개인 사용 범용 소형 데스크탑/서버
    가격대 (중고) 매우 저렴 중간 비교적 고가
    소비 전력 매우 낮음 낮음~중간 낮음~중간
    확장성 제한적 중간 높음
    소음 매우 조용 (무팬 모델 있음) 조용한 편 모델마다 다름
    신뢰성 기업용 내구성 소비자용 높음

    💡 팁: 씬클라이언트는 원래 하루 종일 켜놓는 기업 환경에서 쓰이던 장비라 24시간 연속 운영에 강한 내구성을 가진 경우가 많습니다.

    어떤 씬클라이언트를 골라야 할까? — 선택 기준 정리

    여기서 솔직히 말씀드리면, 특정 모델을 무조건 추천하기보다는 어떤 기준으로 고를지를 아는 게 더 중요해요. 중고 시장 물량은 지역마다, 시기마다 달라지거든요.

    체크해야 할 핵심 스펙

    1. CPU 아키텍처 확인: x86_64(AMD64) 아키텍처인지 반드시 확인하세요. ARM 기반 씬클라이언트는 지원되는 소프트웨어가 제한됩니다.
    2. RAM 용량 및 확장 가능 여부: 최소 4GB, 가능하면 8GB 이상. 솔더드(Soldered, 납땜 고정) RAM인지 교체 가능한 SO-DIMM 슬롯인지 꼭 확인하세요.
    3. 저장장치 인터페이스: M.2 NVMe, M.2 SATA, 2.5인치 SATA 슬롯 여부. eMMC만 있는 모델은 확장이 어렵습니다.
    4. 네트워크 포트: 기가비트(1GbE) 이더넷 포트가 있는지 확인. 일부 구형 모델은 100Mbps에 그치기도 해요.
    5. USB 포트 수량 및 규격: USB 3.0 이상 포트가 몇 개인지 — 외장 저장장치 연결에 중요합니다.
    6. BIOS/UEFI 접근 가능 여부: 부팅 순서 변경, PXE 부팅 설정 등을 위해 BIOS에 접근할 수 있어야 합니다.
    7. 소비 전력 TDP: CPU의 TDP(Thermal Design Power, 열 설계 전력)가 낮을수록 전기세 절약.

    ⚠️ 주의: 일부 기업용 씬클라이언트는 BIOS가 잠겨 있거나, 특정 OS만 부팅되도록 제한이 걸려 있는 경우가 있어요. 중고 구입 전에 판매자에게 BIOS 접근 가능 여부를 꼭 확인하세요. 저도 한번 이걸 놓쳐서 삽질했습니다 😅.

    OS 설치 — Ubuntu Server로 시작하기

    씬클라이언트 홈서버 구축에서 OS는 Ubuntu Server LTS(Long Term Support, 장기 지원 버전)를 강력 추천합니다. 커뮤니티가 크고, 레퍼런스가 많아서 문제가 생겼을 때 해결책 찾기가 훨씬 수월하거든요.

    부팅 USB 만들기

    # balenaEtcher나 dd 명령어로 USB 부팅 디스크 생성
    # Linux/macOS에서 dd 사용 시 (주의: of= 경로 틀리면 데이터 날아갑니다!)
    sudo dd if=ubuntu-server-*.iso of=/dev/sdX bs=4M status=progress
    sync

    ⚠️ 중요: of=/dev/sdX에서 X는 여러분의 USB 드라이브 경로입니다. lsblk 명령어로 먼저 확인하고 진행하세요. 잘못된 경로 입력 시 데이터 복구 불가!

    설치 후 기본 세팅

    # 시스템 업데이트
    sudo apt update && sudo apt upgrade -y
    
    # 필수 패키지 설치
    sudo apt install -y \
      curl \
      wget \
      git \
      htop \
      net-tools \
      openssh-server \
      ufw
    
    # SSH 서비스 활성화 및 시작
    sudo systemctl enable ssh
    sudo systemctl start ssh
    
    # UFW(Uncomplicated Firewall) 기본 설정
    sudo ufw allow ssh
    sudo ufw enable
    sudo ufw status

    고정 IP 설정 — Netplan으로

    홈서버는 IP가 바뀌면 난감하니까 고정 IP(Static IP)를 잡아줘야 해요. Ubuntu 18.04 이후부터는 Netplan(네트플랜)을 씁니다.

    # /etc/netplan/00-installer-config.yaml
    network:
      version: 2
      ethernets:
        eth0:  # 실제 인터페이스명으로 변경 (ip a 명령어로 확인)
          dhcp4: no
          addresses:
            - 192.168.1.100/24  # 원하는 고정 IP
          gateway4: 192.168.1.1  # 공유기 IP
          nameservers:
            addresses:
              - 1.1.1.1
              - 8.8.8.8
    # 설정 적용
    sudo netplan apply
    
    # 적용 확인
    ip a

    Ubuntu Server 설치 완료 후 SSH로 접속한 터미널 화면 — 이 화면이 뜨면 절반은 성공입니다.

    Docker로 서비스 올리기 — 홈서버의 꽃

    저전력 서버 구축에서 Docker(도커)는 거의 필수예요. 자원을 효율적으로 쓰면서 여러 서비스를 격리해서 운영할 수 있거든요. VM(Virtual Machine, 가상 머신)보다 오버헤드가 훨씬 적어서 저전력 환경에 딱 맞습니다.

    Docker 설치

    # Docker 공식 설치 스크립트 사용
    curl -fsSL https://get.docker.com -o get-docker.sh
    sudo sh get-docker.sh
    
    # 현재 사용자를 docker 그룹에 추가 (sudo 없이 docker 명령 사용)
    sudo usermod -aG docker $USER
    
    # 변경 사항 적용을 위해 재로그인 후 확인
    newgrp docker
    docker --version

    Docker Compose로 서비스 스택 구성

    여기서 제가 실제로 씬클라이언트 홈서버에서 돌리고 있는 기본 스택을 공유할게요. Portainer(포테이너)는 Docker 컨테이너를 웹 UI로 관리할 수 있게 해주는 도구인데, 초보자한테 정말 유용합니다.

    # docker-compose.yml
    version: '3.8'
    
    services:
      portainer:
        image: portainer/portainer-ce:latest
        container_name: portainer
        restart: unless-stopped
        ports:
          - "9000:9000"
          - "9443:9443"
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
          - portainer_data:/data
    
      nginx-proxy-manager:
        image: jc21/nginx-proxy-manager:latest
        container_name: nginx-proxy-manager
        restart: unless-stopped
        ports:
          - "80:80"
          - "443:443"
          - "81:81"  # 관리자 UI
        volumes:
          - npm_data:/data
          - npm_letsencrypt:/etc/letsencrypt
    
    volumes:
      portainer_data:
      npm_data:
      npm_letsencrypt:
    # 스택 시작
    docker compose up -d
    
    # 실행 중인 컨테이너 확인
    docker compose ps
    
    # 로그 확인
    docker compose logs -f

    홈서버에서 유용한 서비스 목록

    씬클라이언트 홈서버에서 실제로 잘 돌아가는 서비스들을 정리해봤어요.

    • Portainer: Docker 관리 웹 UI
    • Nginx Proxy Manager: 리버스 프록시(Reverse Proxy) + SSL 인증서 자동 관리
    • Pi-hole: DNS 기반 광고 차단 서버
    • Uptime Kuma: 서비스 모니터링 대시보드
    • Vaultwarden: Bitwarden 호환 셀프호스팅 패스워드 매니저
    • Nextcloud: 셀프호스팅 클라우드 스토리지 (RAM이 충분할 때)
    • Home Assistant: 스마트홈 허브

    💡 팁: RAM이 4GB인 모델이라면 한 번에 너무 많은 서비스를 올리지 마세요. free -h 명령어로 메모리 사용량을 주기적으로 확인하면서 서비스를 하나씩 추가하는 게 안전합니다.

    ⚠️ 삽질 모음 — 제가 겪은 트러블슈팅

    13년 동안 서버 만지면서 느낀 건데, 홈랩은 항상 예상치 못한 곳에서 막힙니다. 제가 씬클라이언트 홈서버 구축하면서 겪은 주요 문제들을 공유할게요.

    문제 1: 부팅 후 USB 인식 안 됨

    씬클라이언트 일부 모델은 기본 BIOS 설정에서 USB 부팅이 비활성화되어 있어요. BIOS 진입 키(보통 F2, F10, Del 중 하나)를 눌러서 Boot Order(부팅 순서)에서 USB를 최우선으로 변경해야 합니다. Secure Boot(보안 부팅)도 비활성화해야 Ubuntu 설치가 잘 되더라고요.

    문제 2: 네트워크 인터페이스 이름이 이상함

    Ubuntu에서 네트워크 인터페이스 이름이 eth0이 아니라 enp2s0이나 eno1처럼 나오는 경우가 많아요. Netplan 설정할 때 실제 이름을 먼저 확인해야 합니다.

    # 실제 네트워크 인터페이스 이름 확인
    ip link show
    # 또는
    ip a

    문제 3: 전원 차단 후 자동 부팅이 안 됨

    정전이나 실수로 전원이 끊겼을 때 자동으로 다시 켜지게 하려면 BIOS에서 “Power On After Power Failure” 또는 “AC Power Recovery” 옵션을 “On” 또는 “Last State”로 설정해야 해요. 이걸 안 하면 정전 후에 서버가 죽어 있는 상황이 생깁니다.

    문제 4: Docker 컨테이너가 재시작 후 안 올라옴

    Docker 서비스가 시스템 시작 시 자동 실행되도록 설정이 필요합니다.

    # Docker 서비스 자동 시작 등록
    sudo systemctl enable docker
    sudo systemctl enable containerd
    
    # 확인
    sudo systemctl is-enabled docker

    문제 5: eMMC 저장장치 용량 부족

    내장 eMMC가 32GB 이하인 모델은 OS + Docker 이미지로 금방 꽉 차요. 외장 USB SSD나 M.2 슬롯 추가 SSD로 용량을 늘리고, Docker의 데이터 디렉터리를 변경해주는 게 좋습니다.

    # Docker 데이터 디렉터리 변경
    # /etc/docker/daemon.json 파일 생성 또는 수정
    sudo nano /etc/docker/daemon.json
    {
      "data-root": "/mnt/external-ssd/docker"
    }
    # Docker 재시작
    sudo systemctl restart docker
    
    # 확인
    docker info | grep "Docker Root Dir"

    모니터링 설정 — 서버 상태 한눈에 보기

    저전력 서버 구축을 하고 나서 “잘 돌아가고 있나?” 확인하고 싶은 게 당연하죠. Uptime Kuma(업타임 쿠마)와 Glances(글랜시스)를 같이 쓰면 꽤 만족스러운 모니터링 환경이 됩니다.

    # monitoring-stack.yml
    version: '3.8'
    
    services:
      uptime-kuma:
        image: louislam/uptime-kuma:latest
        container_name: uptime-kuma
        restart: unless-stopped
        ports:
          - "3001:3001"
        volumes:
          - uptime_kuma_data:/app/data
    
      glances:
        image: nicolargo/glances:latest
        container_name: glances
        restart: unless-stopped
        pid: host
        ports:
          - "61208:61208"
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock:ro
        environment:
          - GLANCES_OPT=-w  # 웹 서버 모드로 실행
    
    volumes:
      uptime_kuma_data:

    Uptime Kuma와 Glances로 구성한 홈서버 모니터링 화면 — 각 서비스 응답 시간과 CPU/메모리 사용률을 실시간으로 확인할 수 있습니다.

    전력 최적화 — 진짜 저전력으로 만들기

    씬클라이언트 홈서버의 장점을 최대한 살리려면 OS 레벨에서도 전력 최적화를 해주면 좋아요.

    불필요한 서비스 비활성화

    # 서버에서 불필요한 GUI 관련 서비스 비활성화
    sudo systemctl disable bluetooth
    sudo systemctl disable cups  # 프린터 서비스
    sudo systemctl disable avahi-daemon  # mDNS (필요 없다면)
    
    # 현재 실행 중인 서비스 목록 확인
    sudo systemctl list-units --type=service --state=running

    CPU 주파수 조절 (powersave 모드)

    # cpufrequtils 설치
    sudo apt install -y cpufrequtils
    
    # 현재 CPU 거버너(Governor) 확인
    cpufreq-info | grep "current policy"
    
    # powersave 모드로 변경 (저전력 우선)
    sudo cpufreq-set -g powersave
    
    # 부팅 시 자동 적용 설정
    echo 'GOVERNOR="powersave"' | sudo tee /etc/default/cpufrequtils

    홈랩 구축 결과 정리 — 이 정도면 충분합니다

    씬클라이언트 홈서버 구축을 완료하고 나면 어떤 게 가능해지는지 정리해볼게요.

    항목 씬클라이언트 홈서버 일반 데스크탑 서버
    24시간 운영 전기세 부담 매우 낮음 높음
    소음 거의 없음 (무팬 모델) 팬 소음 있음
    초기 비용 중고 시 매우 저렴 상대적으로 높음
    Docker 서비스 운영 5~10개 경량 서비스 가능 제한 없음
    확장성 제한적 높음
    공간 차지 매우 작음 큼

    🎉 드디어 됐다! 씬클라이언트 홈서버가 완성되면, Pi-hole로 집 전체 광고를 차단하고, Vaultwarden으로 패스워드를 직접 관리하고, Uptime Kuma로 모든 서비스 상태를 모니터링하는 나만의 홈랩이 완성됩니다.

    씬클라이언트 홈서버 구축 전체 과정 요약 — 장비 선택부터 OS 설치, Docker 세팅, 모니터링까지 한눈에 보는 로드맵.

    자주 묻는 질문 (FAQ)

    Q. 씬클라이언트로 NAS도 만들 수 있나요?

    가능합니다! USB 3.0 포트에 외장 HDD나 SSD를 연결하고, Samba(삼바) 또는 NFS(Network File System)를 설정하면 기본적인 NAS 기능을 구현할 수 있어요. 다만 USB 인터페이스의 속도 한계가 있으니 고성능 NAS를 원하신다면 전용 NAS 장비를 고려하시는 게 좋습니다.

    Q. RAM이 4GB인 모델에서 돌릴 수 있는 서비스 수는?

    경량 서비스 기준으로 5~8개 정도는 무리 없이 돌아가더라고요. Pi-hole, Portainer, Vaultwarden, Uptime Kuma, Nginx Proxy Manager 조합은 4GB에서도 안정적입니다.

    Q. 외부에서 접근하려면 어떻게 해야 하나요?

    Cloudflare Tunnel(클라우드플레어 터널)을 활용하면 공인 IP 없이도 안전하게 외부 접근이 가능합니다. 이 부분은 내용이 많아서 다음 글에서 자세히 다룰 예정이에요.

    Q. 씬클라이언트는 어디서 구매하나요?

    중고나라, 당근마켓, eBay 등에서 기업 방출 중고 물량을 찾을 수 있어요. 검색할 때 “씬클라이언트”, “thin client”, “기업 방출 미니PC” 키워드로 찾아보세요.

    마무리 — 작게 시작해서 크게 배우는 홈랩

    씬클라이언트 홈서버 구축, 처음엔 뭔가 복잡해 보이지만 막상 해보면 생각보다 훨씬 재미있습니다. 저도 첫 홈서버가 씬클라이언트였는데, 그게 지금 이 블로그의 시작점이 됐거든요.

    중요한 건 완벽한 장비를 기다리는 것보다 지금 있는 장비로 일단 시작하는 것입니다. 저전력 서버 구축을 통해 리눅스 명령어도 익히고, 네트워크도 배우고, Docker도 배우다 보면 어느 순간 홈랩이 내 가장 좋은 실습 환경이 되어 있을 거예요.

    • ✅ 씬클라이언트 선택 기준 이해
    • ✅ Ubuntu Server 설치 및 기본 설정
    • ✅ Docker + Compose로 서비스 운영
    • ✅ 전력 최적화로 진짜 저전력 서버 완성
    • ✅ 모니터링으로 안정적인 운영 환경 구축

    다음 글에서는 Cloudflare Tunnel을 이용한 외부 접근 설정을 다룰 예정입니다. 공인 IP 없이도 집 서버에 안전하게 접근하는 방법인데, 씬클라이언트 홈랩 구축의 완성판이라고 할 수 있어요. 기대해주세요! 😊

    혹시 구축하다가 막히는 부분 있으시면 댓글로 남겨주세요. 경험자로서 최대한 도움 드리겠습니다!