Mac mini로 홈서버를 구축해보며 #1
💻기술/DevOps

Mac mini로 홈서버를 구축해보며 #1

반응형

 

사건의 발단 

 

 지난 3년간 LG 14인치 그램과 HP 노트북 2대로 홈서버를 구성했었다. 그러던 중 오랜 기간 플러그가 꽂힌 채로 배터리 과열이 생기게 되었고 결국 배터리가 부풀어 오르는 현상이 발생하게 된다. 사실 조만간 노트북 서버에서 미니 PC 서버로 갈아탈 예정이었기 때문에 곧바로 폐기 처분했다. 이후 고대하던 맥미니를 영접하며 별다른 고민 없이 24시간 상시 고문실(?)로 들어가게 되었다. (사..사알... 살려줘ㅓㅓ...)

 

전원 들어온 이후로 한 번도 끄지를 않았다.

 참고로 24시간 켜져있는 서버용이라 초기에 세팅할 때 제외하고는 모니터 연결도 제외해놓았다. 그러면 서버 관리가 힘들어지기에 VNC 기능을 사용해서 원격 접속으로 관리한다. 기존에 맥북이 있었기 때문에 크롬으로 vnc:// 주소를 입력하기만 하면 된다.

 

VNC 접속 화면

 

 

노트북 서버 vs 맥미니 서버

 

 일단 비교 자체가 안된다. 가격 측면에서도 노트북이 동일 성능 대비 훨씬 비싸고 배터리 문제, 자잘한 설정 문제 등 서버용으로는 적합하지 않다. 이와는 반대로 맥미니(m1 프로세서) 서버는 89만 원 가격에 8코어 CPU&GPU, 8GB 메모리를 제공하고 무려 팬 소음이 조용하다.

 

 맥미니가 홈서버용으로는 압도적으로 우세하고, m1 프로세서가 탑재되면서 소음도 없어졌기 때문에 적합하다고 할 수 있다. 처음에는 ARM 기반이라 여러 가지 개발 및 운영에 필요한 도구들이 호환이 안될까 걱정하기도 했는데, 역시 개발자 생태계는 전환이 빠르다. 이미 대부분의 소프트웨어는 호환성 문제 없이 지원된다. 다만, 도커 환경에서 운영시 간혹 가다 이미지 자체가 지원하지 않는 경우도 있는데 최근에 포팅된 이미지들의 경우 대부분 지원하니 문제 될 건 없다.

 

 또한 M1 SSD 수명 문제로 걱정할 수도 있는데, 결론적으로 걱정하지 않아도 된다. 일단 로제타 환경을 피하기만 하면 문제는 없지만, 애플측에서도 이 문제를 인지하고 해결했다고 했다. 앞서 언급했듯이 이미 대부분의 소프트웨어가 전환되었기 때문에 별다른 걱정은 하지 않아도 된다.

 

 다만 시중에 나와있는 미니PC와 고려할 경우 오직 서비스 제공 측면으로만 바라본다면 저렴한 미니 PC를 추천한다. 

 

 

홈 서버의 목적

 

 홈 서버는 뭐든지 할 수 있다. 웹서비스를 운영하든, NAS용으로 트래픽 비용 걱정 없이 파일공유를 하든, 게임 서버를 돌리든 상관없다. 만약 클라우드 서비스를 활용한다면 비용이나 보안등 여러 가지 제약에 걸릴 우려가 있기 때문에 홈서버를 구축하게 되는 계기가 된다. 나의 경우 마찬가지로 공부 목적으로 홈서버를 구축했고, 기존에 쓰던 노트북 서버가 고장 났기 때문에 그 빈자리가 너무나도 크게 느껴졌다. 내가 운영하고 있는 서비스의 90% 이상이 모두 홈서버에서 나오기 때문이었다.

 

 이를두고 차라리 클라우드를 쓰는 게 더 낫겠다는 의견도 있다. 홈서버의 전기세, 유지비용, 정전 시 대처, 데이터 관리, 트래픽 폭주 시 전체 네트워크 다운 등등 홈서버가 가진 문제는 그 자체로 리스크다. 사실 이런 현실적인 문제 때문에 현재 프로덕트 환경에서는 AWS를 사용하고 있고 개발 부문 한정 홈서버를 차용하고 있는 상황이다. 그렇다면 나는 왜 홈서버를 운영하는가.

 

 먼저 전기세다. 전기세의 경우 노트북 서버와 비교했을 때는 조금 더 나가는 편이지만 그래도 미미한 수준이다. 따라서 전기세의 영향은 거의 없다. 또한 M1 프로세서의 경우 저전력을 염두에 두고 설계되었기 때문에 복잡한 프로세스나 8k 영상을 재생하지 않는 이상 문제 될 건 없다고 본다.

 

 다음으로는 정전이다. 이거 참 골치 아픈데, 벌써 3번이나 정전을 겪었기에 어떻게 대처해야 할지 고민이다. 노트북 서버의 경우 배터리가 있어 UPS가 없어도 되었는데, 맥미니의 경우는 좀 다르다. 전기가 팍 나가게 되면 서비스고 뭐고 아무것도 못한다. 동시에 라우터 장비를 포함한 네트워크 장비의 전원도 들어오지 않아 비상전력을 가동한다 한들 소용없는 건 사실이다. 따라서 정전의 경우에 데이터 백업밖에는 대응 방안이 마땅치 않다. 따로 UPS를 구축하지 않는 한에서는 말이다.

 

 마지막으로 트래픽 폭주, 흔히들 말하는 DDOS 공격이나 동시접속으로 인한 서비스장애다. 디도스 공격에 경우 가정에서 주로 이용되는 아이피타임 제품을 이용했을 때 freestresser로도 그냥 날아가는 수준이다. 몇 년 전에 테스트해본 일이라 그때와 같은 상황이 벌어진다고는 장담할 수 없지만 말이다. 이 외에도 동시접속 관련해서는 50~200명 수준까지는 노트북 서버로도 잘 버틴다. 그 말은 똥컴으로도 100명 정도는 거뜬하다는 말이다. 물론 대역폭에 따라 다르게 나타나겠지만 실시간 통신을 제외하고 간단한 웹 콘텐츠 한정으로는 괜찮은 수준이다.

 

 결론적으로는 개발용으로는 Best, 트래픽 적은 상용 서비스로는 Good, 실시간 서버나 트래픽이 많이 몰릴 경우로 예상된다면, Bad다. 물론 공부용 홈서버 구축은 강추한다. 단순히 개발하고 AWS에 간편하게 배포하는 경험보다는 실 서버로 운영해보고 하나부터 열까지 직접 구축해보는게 여러 면에서 도움이 된다. 특히 사양이 낮은 홈서버로 배포할 경우에는 최적화를 빼놓을 수 없다. 애플리케이션 단위의 최적화부터 설정 최적화 하드웨어 최적화까지 공부해야 하기에, 두루두루 배울 수 있다는 점에서 추천한다.

 

 

 

어떤 서비스를..

 

 기본적으로 대부분의 서비스는 의존성 때문에 도커 기반으로 운영된다. 프로메테우스와 같은 호스트 레벨에서 동작하는 소프트웨어를 제외하고는 대부분 도커에서 실행된다. 우선 ' DeVent Deploy ' 를 사용해서 깃 푸시 즉시 도커로 배포하게끔 설계되었다. 여기에 테스트로 블로그와 디자인 시스템을 배포하고 있다.

 

 현재 개발하려는 서비스들이 대부분 고성능을 요구하고, 자체 인프라를 구성할 경우를 대비하여 비교적 높은 금액대를 들여 홈서버를 구비했다. 현재 필요한 기능들은 남아도는 30~40만 원 대 미니 PC로도 구축할 수 있지만 서버 성능에 제한 없이 만들고 싶은 거 만들 정도의 수준은 못된다. 만약 홈서버에 있어서 가격대에 상관없이 구축하고 싶다면 맥미니를 적극 추천하지만, 그렇지 않다면 미니PC로도 거뜬하다. 

 

 어떤 서비스를 개발하고 배포하려는지에 따라 신중히 선택한다면 분명 좋은 조건에서 홈서버를 운용할 수 있으리라 예상된다. 따라서, 다음 글에서는 내가 홈서버를 선택하는 기준에 대해 포스팅할 예정이다.

 

 

 

반응형

'💻기술 > DevOps' 카테고리의 다른 글

Mac mini로 홈서버를 구축해보며 #1  (0) 2022.06.20
Prometheus + Node Exporter 연동하기  (0) 2022.06.13