← Log

홈서버 구축 과정 정리

Ubuntu 홈서버 구축기· 1 / 15
  1. 1 — 홈서버 구축 과정 정리
  2. 2 — 운영체제 선택과 설치
  3. 3 — Rufus로 Ubuntu USB 부팅 디스크 만들기
  4. 4 — Windows 디스크 파티셔닝과 Ubuntu 설치
  5. 5 — SSH 원격 접속 설정
  6. 6 — 방화벽 설정
  7. 7 — Cloudflare DNS 설정
  8. 8 — Nginx 설치와 리버스 프록시
  9. 9 — Nginx SSL/TLS 발급과 자동 갱신
  10. 10 — MySQL 설치와 설정
  11. 11 — Node.js 설치와 백엔드 애플리케이션 실행
  12. 12 — DHCP Reservation으로 내부 IP 고정
  13. 13 — 포트 포워딩
  14. 14 — 동적 DNS(DDNS) 개념과 테스트
  15. 15 — ddclient으로 동적 DNS(DDNS) 자동화

홈서버를 구축해보는 주된 <동기> 를 나열해보면 다음과 같다.

  • 네트워크와 보안 등 배포의 모든 과정을 직접 다루며, 포괄적인 백엔드 경험을 쌓고 싶다.
  • 장기적으로 안정적인 서버를 지속적으로 유지보수하며, 나만의 서버 환경을 구축해 나갈 수 있다.
  • 집에 있는 PC와 네트워크를 활용해 서버를 운영하므로, 비용 측면에서 더 유연하게 관리할 수 있다.

홈서버를 구축하면서 특히 신경 쓰는 <집중 요소> 는 다음과 같다.

  • 보안: 홈 네트워크를 사용하는 만큼, 외부 침입과 데이터 유출을 막기 위해 보안에 더욱 신경을 쓸 것이다.
  • 시스템 자동화: DDNS, SSL/TLS 인증서 갱신 등 가능한 서버 시스템을 자동화하여, 관리의 편리성과 안정성을 높일 것이다.
  • CLI 중심 작업: 최대한 GUI가 아닌 CLI를 사용하여 개발함으로써, 개발자적인 접근 방식에 집중할 것이다.

홈서버 정보

홈서버 구성에 사용한 기술 스택과 요청이 처리되는 전체 아키텍처를 정리한다.

사용 기술 정보

  • 서버 기기: WindowsOS-based laptop
  • 서버 OS: Linux: Ubuntu(Desktop)
  • 네트워크: Home WiFi
  • DNS 서비스: Cloudflare
  • 자동화 도구: Certbot(SSL/TLS) ddclient(DDNS)
  • 배포 대상: Node.js web-server app

아키텍처

홈서버 아키텍처 다이어그램

  1. 클라이언트 요청
    • 클라이언트는 DNS로 등록된 도메인을 통해 요청한다.
    • DNS 서비스로부터 도메인 네임을 공인 IP로 해석하여 서버에 접근하게 한다.
  2. 라우터 패킷 수신
    • DHCP 예약을 통해 네트워크에 연결된 기기에 고정된 내부 IP가 할당된다.
    • Port-forwarding이 설정된 포트를 통해 요청을 특정 내부 IP로 전달한다.
  3. 기기 접근 및 방화벽
    • 서버 방화벽에 승인된 포트일 경우 요청이 내부로 전달된다.
  4. 웹서버(Nginx) 접근
    • 요청의 SSL/TLS 인증서 및 DNS를 검증하여 보안을 확인한다.
    • Reverse-proxy를 통해 요청을 내부 애플리케이션 서버의 포트로 라우팅한다.
  5. 애플리케이션(Node.js) 실행
    • 요청에 따라 필요한 작업을 수행한다.

홈서버 구축 과정

구축 과정은 서버 설치부터 웹 서버, 애플리케이션, 네트워크, 모니터링까지 총 다섯 단계로 진행한다.

서버 구축

가장 먼저 서버로 사용할 기기에 OS를 설치하고 원격 접속 및 방화벽 환경을 구성한다.

  1. Ubuntu 운영체제 설치
  2. SSH 서버 원격 접속 설정
  3. 서버 방화벽 규칙 설정

웹 서버 구축

다음으로 도메인과 SSL 인증서를 준비해 Nginx 웹서버를 구성한다.

  1. DNS 설정
  2. Nginx 웹서버 설치 및 설정
  3. SSL/TLS 인증서 발급

애플리케이션 장착

이후 데이터베이스와 Node.js 애플리케이션을 서버에 배치한다.

  1. MySQL 데이터베이스 설치
  2. Node.js 설치 및 애플리케이션 실행

네트워크 설정

외부에서 서버에 접근할 수 있도록 네트워크 설정을 진행한다.

  1. DHCP Reservation
  2. Port Forwarding
  3. DDNS 설정

모니터링 및 관리

마지막으로 서버 운영을 위한 모니터링과 백업 체계를 마련한다.

  1. 시스템 모니터링 및 로그 관리 도구 설정
  2. 데이터 정기 백업 설정
목차