H. Jun Huh

2년동안 집에서 맥미니로 서버를 돌린 후기 (2)

2년동안 집에서 맥미니로 서버를 돌린 후기 (2)

  1. 원격 접속

홈 서버는 외부에서 접근할 수 없습니다. 카페같은 공간에서 개발하고 싶은데 접근할 수 없으니 참 난감합니다. 따라서 VPN을 세팅해주어야 하는데, VPN을 구축하는 과정은 까다롭고 잘 못 설정하면 보안에도 좋지 않습니다. 그렇다고 SSH를 열어두자니 더 취약해집니다.

더군다나 맥 환경을 지원하는 VPN 서버는 없습니다. VPN이 가능한 라우터를 구매하거나 별도의 리눅스 서버를 통해 접근해주어야 하는데 외부 접근을 위해 다른 장비를 사는 건 낭비하고 판단했습니다.

결국 Tailscale을 도입하기로 했습니다. 개인 사용자는 무료에다가 Mesh VPN(P2P와 비슷한 연결 방식)으로 원격 환경에서도 끊김 없는 개발이 가능합니다. 일반적인 VPN 보다 월등히 빠릅니다.

macOS는 VNC를 기본 옵션으로 제공합니다. 따라서 Tailscale로 연결해주면 별도의 설치 없이 바로 호스트 이름으로 접근할 수 있습니다. 굳이 VNC 포트를 노출시키지 않아도 되어서 보안상 안전해집니다.

더불어, DNS 이름을 변경할 수 있기 때문에 접근이 쉬워집니다. 예를 들어 100.90.171.11과 같은 임의의 주소가 있다고 가정해 볼 때 server/ 와 같은 이름으로 접근이 가능합니다. 굳이 내부 네트워크 IP를 알지 않아도 쉽게 접근이 가능한 구조입니다.

  1. 모니터링

Prometheus & Grafana로 관리하고 있습니다. 맥미니 기본 옵션인 8 코어 8GB는 도커 엔진을 돌리면 꽉 찹니다. 가벼운 프로젝트 몇 개를 돌릴 때야 걱정 없었지만 거의 한계에 다다랐습니다. 따라서 주기적인 모니터링이 필요합니다.

Grafana는 Alert 설정이 가능합니다. 메모리나 CPU 사용량이 치솟을 때 웹 훅으로 경고를 보낼 수 있습니다. 제 경우 디스코드 웹훅과 연결해 두어서 메모리 사용량이 일정 수준으로 올라가면 스마트폰으로 알림이 오게 설정해두었습니다.

모니터링은 프로덕션 운영에서 가장 중요한 부분입니다. 서비스 측면에서는 구글 애널리틱스를 이용하는 방법이 훨씬 편하지만, 소프트웨어의 시작점인 서버에서 얻는 정보는 훨씬 다양합니다.

어떤 서비스가 메모리를 많이 차지하는지, 한눈에 보기 편합니다. 저장공간 관리도 용이하고요. 한 번 모니터링 툴을 설정해 주면 다음부턴 번거롭지 않습니다.

프로덕션을 안정적으로 운영해 보는 경험은 흔하지 않습니다. 더욱이 주니어 개발자라면 그렇습니다. 이때 홈서버를 적극적으로 활용한다면 폭넓은 경험이 가능할 거라 생각합니다.

사이드 프로젝트를 개발만 하고 끝내는 게 아니라 홈서버에 운영까지 해볼 수 있다면 좋겠습니다. 일반적인 소프트웨어와 다르게 인프라는 보수적으로 접근해야 합니다. 무엇보다 안정성이 우선이죠. 저만 해도 도커 설정이나 ngnix 설정을 2년 동안 전혀 바꾸지 않았습니다. 딱 한번 제대로 자동화해 두면 더 이상 손 쓸 일이 없습니다. 가끔 도커 캐시나 로그를 지워주어야 하는 번거로움은 생기지만, 모니터링을 꾸준히 해준다면 문제 될 일이 없습니다.

  1. 그럼에도 홈서버를 망설이시는 분들에게

지난 글에서 홈서버의 장점을 나열해 봤습니다. 서비스의 시작부터 끝을 경험해 본다는 점에서 홈서버 구축을 강력하게 추천드리지만, 상황에 따라 홈서버를 주저하시는 경우도 있을 거라 생각합니다. 기숙사 건물 또는 포트포워딩이 어려운 환경에서는 서비스 주소를 노출시키기 어렵기 때문에 큰 매리트가 없다고 생각하시겠지만, 전혀 그렇지 않습니다.

인터넷만 가능하다면 슬랙 봇과 같은 웹훅 서비스를 만들 수 있습니다. 자동으로 뉴스를 긁어와서 뉴스 큐레이팅 봇을 만들어볼 수도 있고요. AWS에 웹훅 서비스를 구축해 연산은 홈서버에서, 결과는 AWS로 받아오는 서비스도 가능합니다. 소프트웨어로 불가능한 일은 물리적 한계와 이론적 한계뿐입니다.

홈서버를 구축하고 운영하다 보면 시야가 넓어집니다. 사이드 프로젝트의 적용 범위도 넓어지고요. 과감하게 도전할 수 있는 나만의 테스트베드가 만들어집니다.

꼭 맥미니가 아니더라도 중고 PC를 이용해서 홈서버를 구축할 수도 있습니다. 당근마켓에 있는 중고 PC를 하나 저렴하게 사서 리눅스를 깔고 실험해 보세요. 분명 개발 실력에 도움이 될 거라 믿습니다.

이상으로 글을 마치겠습니다. 2편의 홈서버 후기 시리즈를 읽어주셔서 감사합니다.

https://www.linkedin.com/posts/huhhyeongjun_2년동안-집에서-맥미니로-서버를-돌린-후기-2-4-원격-접속-홈-activity-7221505200438591488-mVRw?utm_source=share&utm_medium=member_desktop&rcm=ACoAAEFmlqQBrrvwpls605PMVcHtL6PcgGL4e9E

← 목록