홈서버를 소개합니다 🐥

정선교·2023년 8월 29일
78

HomeLab

목록 보기
1/3
post-thumbnail

개요

저는 백엔드 개발자이지만 인프라를 구성하는 것에 관심이 많아 취미와 학습을 위해서 집에 홈서버를 구축해서 사용하고 있습니다.
제가 사용하고 있는 홈서버의 용도와 목적에 대해서 소개하려고 합니다.

추가로 안정적으로 서버를 운영하고 고가용성을 보장하기 위해 적용한 방법들도 소개해드리려 합니다.

컴퓨터방에 마련해놓은 서버 서버들 😀 컴퓨터방에 마련해놓은 서버들 😀

홈서버를 구성하게된 이유

1. 재미

  • 서버를 구성하고 운영하는게 상당히 흥미로워서 제 서버를 가지고 싶었습니다. 😀
  • 24시간 꺼지지 않고 동작하는 서버를 만들고 싶었습니다.

2. 비용

  • AWS와 같은 서비스를 이용하면 필요한 부분들을 모두 채울 수 있지만 달에 N만원씩 나가는 부분이 부담되었습니다.

3. 학습

  • 아무래도 AWS에서 서버를 빌려서 사용하는 것 보다 직접 가상머신을 통해 구성하게 되면 어느 한 부분 빼놓을 것 없이 직접 구성해야되기 때문에 자연스럽게 어떻게 구성해야 안정적인 서버 운영이 가능할지에 대한 부분까지 고려하는 쪽으로 생각이 확장되었고, 쿠버네티스를 학습하는데에 있어서 큰 도움이 되었습니다.

홈 네트워크 구성

네트워크 구성도입니다.
포트수 확보와 내부 네트워크간 통신의 안정성을 위해 공유기 하단에 관리형 허브인 gs308e를 배치해두었습니다
추가로 혹시모를 정전이나 전기불량으로 호스트가 다운되거나 하는 상황을 방지하기위해서 허브에 연결되어 있는 기기들은 전부 UPS에 연결해두었습니다.

각 서버 역할

데스크탑 PC (Proxmox 가상머신)

Proxmox OS위에 여러 가상머신들이 설치되어 있어요

  • 기타 어플리케이션 설치용 노드 1대
    • harbor(private docker registry) 설치해서 사용중
  • 쿠버네티스 노드
    • 마스터 노드 3대
    • 워커 노드 3대

Proxmox 호스트 목록 Proxmox 호스트 목록

Proxmox 대시보드 Proxmox 대시보드

harbor 컨테이너 이미지 저장소 harbor 컨테이너 이미지 저장소

쿠버네티스 노드 목록 쿠버네티스 노드 목록

앤비디아 TX2 보드

쿠버네티스 마스터 노드에 접근할 수 있는 통로(게이트웨이 역할)이자 여러 마스터 노드간에 로드밸런싱을 담당하고 있습니다.
쿠버네티스의 마스터 노드가 죽게되면 쿠버네티스 클러스터에 접근을 할수 없기 때문에 마스터 노드를 다중화 하여 노드가 하나가 죽더라도 나머지 두개의 마스터 노드로 정상적으로 운영될 수 있도록 해주었습니다.

가상머신의 노드에 HAProxy를 구성할수도 있지만 (남는 보드가 하나 있기도 해서😊) 안정성을 위해 쿠버네티스 노드 외부에서 게이트웨이 역할을 할수 있도록 해주었습니다.

HAProxy 대시보드 HAProxy 대시보드

NAS (synology 718+)

외부에서 들어오는 요청을 전달받아 내부 네트워크로 포워딩을 해주고 있습니다.
리버스 프록시를 사용해 소유한 도메인의 서브도메인을 통해 서비스를 접근할 수 있도록 구성되어 있습니다
(e.g. a.example.com -> A서비스, b.example.com -> B서비스)
네트워크로 파일을 공유해주는 역할도 하고 있습니다
현재는 가상머신의 노드의 디스크로 NFS를 일부 사용하고 있고 추후에는 쿠버네티스 노드의 데이터 저장공간으로 NFS를 사용하여 활용할 예정입니다.

리버스 프록시 리버스 프록시

NAS에 저장되고 있는 가상머신 데이터 NAS에 저장되고 있는 가상머신 데이터

서버 활용

proxmox와 쿠버네티스 노드에 여러 서비스들을 올려서 사용하고 있습니다.
쿠버네티스가 여러 서비스들을 쉽게 배포할 수 있도록 도와주고 있어요 😎

  • 사이드 프로젝트 서버 (https://jirum-alarm.com 많관부😁)
  • harbor
  • EFK (FluentD + Elasticsearch + kibana)
  • mysql cluster
  • redis cluster
  • argoCD (GitOps)
  • 예정) prometheus + grafana

끝내며

처음에는 나스로 시작해서 서버용 PC도 구성하게되고 결국에는 쿠버네티스도 공부해서 클러스터를 운영하게 되었습니다.
그러다보니 홈 서버에 구성되어 있는 것들이 하나 두개씩 생기고 누군가에게 소개해보면 좋을 것 같다는 생각에 게시글을 작성하게 되었네요.
많이 부족하지만 혹시라도 비슷하게 홈서버를 구성하고 싶으신 분들이나 인프라에 관심있으신 분들에게 많은 도움이 되었으면 좋겠습니다. 😁

profile
인프라를 좋아하는 백엔드 개발자

20개의 댓글

comment-user-thumbnail
2023년 8월 31일

좋은글 감사합니다 초기 비용 제외하고 유지 비용이 얼마나 나오실까요?
전기세도 꽤 된다고 하던데❔❔

1개의 답글
comment-user-thumbnail
2023년 8월 31일

우와 저도 따라서 해볼래요 잘 봤습니다.

1개의 답글
comment-user-thumbnail
2023년 9월 1일

비슷하게 구성해보고 싶네요! 하드웨어 쪽으로 잘 몰라서 그런데, 구성에 사용하신 기기 정보와 비용을 알 수 있을까요?!

1개의 답글
comment-user-thumbnail
2023년 9월 1일

저도 AWS 비용 때문에 홈서버 생각한 적이 있는데 너무 멋지네요 ㅎㅎ 데스크탑 PC와 NAS 사양이 어떻게 되는지 궁금합니다!

1개의 답글
comment-user-thumbnail
2023년 9월 1일

우왕 남는 보드로 게이트웨이 서버를 따로 둔게 신박하군여

1개의 답글
comment-user-thumbnail
2023년 9월 1일

와 혼자서 제대로 홈 서버 구축하셨네용 ㅋㅋㅋ 대단해요!!!

1개의 답글
comment-user-thumbnail
2023년 9월 1일

진정한 ‘서버’ 개발자시네요 ㅋㅋㅋ 글 재밌게 읽었습니닷 :)

1개의 답글
comment-user-thumbnail
2024년 2월 12일

쿠버네티스를 하드웨어(?)로 구현해볼 생각은 못 했는데 멋지시네요! 지금은 클라우드 프리티어로 근근히 버티고 있는데 기회되면 저도 한번 따라해 보고 싶습니다. 유지비용(전기세)도 생각보다 많이 안 드네요! :)

1개의 답글
comment-user-thumbnail
2024년 9월 16일

오... 저는 라즈베리파이4 5개로 kubeadm을 사용해서 k8s클러스터를 구성했는데...
잘 구현하셨네요

저는 깃랩CI/CD를 집에서도 구축해보고 싶어서 시작했는데
어쩌다보니 k8s클러스터 구축까지 가지더라구요 ㅋㅋ
의외로 라즈베리파이4로도 웬만한 웹서비스는 잘 돌아가서 놀라긴 했습니다
(티끌? 만한 서버도 5대가 모이니 ㄷㄷ)

글 잘 읽고 갑니다!

1개의 답글
comment-user-thumbnail
2025년 1월 20일

안녕하세요
이제 취준러인데… 이런 유익한 글을 처음 읽게 돼서 흥미롭네요🤩
제가 HW나 네트워크 지식이 부족해서
그냥 CSP에서 딸깍딸각하거나
VM으로 인프라를 구축해본 경험 뿐인데요
이런 신입입장에서도 공부하다보면 홈서버를 구축해보거나 최소한의 라즈베리파이로도 k8s를 운영해볼 수 있을까요?
아니면 선행되어야할 내용들이 많아 많이 어려울까요?

답글 달기

관련 채용 정보