서버를 구성함에 있어 가장 고민이 많았던 부분은 전력 효율성 입니다.

우선 본인의 집에 유독 전자제품이 많고, 집에서 업무를 하다보니 컴퓨터 사용률이 높아서 에어컨을 사용하지 않는 조건에서도 한달 평균 약 500KW 이상을 소비하고 있습니다.

때문에 단순하게 한달에 50KW 정도를 더 소비한다고 해서 가볍게 생각할 수 있는것이 아니라 전기 누진세등을 고려해서 가급적 최소한의 소비전력을 가지는 서버를 구성해야 했습니다.

이 때문에 이전에는 홈서버가 아닌 VPS를 임대하여 사용해 봤지만, 원할한 사용을 위한 구성을 하려고 하면 지불해야 하는 비용이 적지 않게 계산되었습니다.

VPS 운영 비용 비교

단순하게 블로그만 운영을 한다면 가장 저렴한 VPS 1대만 호스팅해도 문제가 없겠지만, 클러스터를 구성해서 직접 여러 서버를 운영해보기 위해서는 상시적으로 여러 노드를 구성해야 하는데 이 때 필요한 숫자가 최소 3대가 됩니다.

한국 리전을 가지고 있는 Vultr VPS를 이용하면 노드 1대당 부가세 제외 6달러로 저렴하다 생각이 들긴 하지만 트래픽 제한과 CPU 부하에 대한 부담도 하지 않을수는 없었고, 그 보다 더 큰 문제는 Docker Swarm 위에서 영구 스토리지를 운영하는 방법이 내가 기대했던것과는 다르게 구성해야 했기에 한계를 느낄수 밖에 없었습니다.

결국 Kubernetes를 선택해야 했고 그중에서 가볍다는 K3S를 선택한다 해도 요구하는 노드 하나의 최소 스펙이 2cpu, 최소 램 2GB 이상이 되야 쓸만하다고 가이드 하고 있습니다.

따라서 VPS의 최소 사양이 높아지게 되고 그러면 Vultr를 기준으로 1노드가 대략 18달러 정도 이므로 최소 3대의 노드를 운영하려면 부가세 포함 월 약60달러 정도가 필요하게 된다는 결론에 도달합니다. 대략 1년간 운영 비용이 720달러 정도로 한화로 약 80~90만원 수준까지 나옵니다.

물론 해당 노드는 풀로드 시간에 대한 제한도 고려해야 합니다. 이를 AWS나 Azure로 올린다면 비용이 더 올라가겠지요.

2021년 10월 부터 Vultr에서는 무료였던 Snapshot 서비스를 백업용량에 따라 요금을 부과하기 시작하였습니다. 제 경우 몇가지 세팅을 백업 해뒀었는데 대략 2달러 정도 추가 청구 되더군요.

라즈베리파이 선정

K3S에 대해 알아보다가 유튜브에서 jeff GeerlingNetworkChuck의 라즈베리파이 클러스터 영상을 보게 됩니다.

아마도 이들의 영상을 보고 라즈베리파이4와 SSD 부팅이 되는것을 확인하지 않았다면 저는 이 클러스터 구성을 시도 하지 않았을 것 같습니다.

이전에도 라즈베리파이를 접한적은 있었지만 대부분은 단일 장치로 운영하거나, 아두이노와 연결해서 제어를 하기위한 용도 또는 SmartThings와 같은 IoT 제어를 위한 연결 서버로 활용하는 것만 봐왔었기에 이걸로 서버를 운영할거란 생각은 전혀 하지 못했었습니다.

하지만 관련 동영상과 기사를 읽어보고 나니 이전 모델에 비해 라즈베리파이4에서 성능이 비약적으로 발전한 것을 알 수 있었고 덧붙여 컨테이너 기술과 함께 클러스터를 구성해서 사용할 수 있다는 것이 저에게는 큰 매력으로 다가왔습니다. 무엇보다 ARM 계열 지원이 활발해진것이 궁극적으로 활용을 할 수 있는 배경이 된 것이겠죠.

아시다시피 라즈베리파이는 ARM 프로세서 입니다.

SSD 사용은 어떻게?

클러스터 노드를 라즈베리파이4로 사용하기로 결정했으니, SSD를 어떻게 연결시켜 사용해야 하는지, 성능은 어떻게 되는지 확인이 필요했습니다.

라즈베리파이4에서 USB부팅이 정식으로 지원되는 펌웨어가 2020년 9월 3일 버전이라고 합니다. 그리고 2020년 하반기 이후에 출시된 제품들은 펌웨어가 업데이트 되어 출시되었다고 합니다.

따라서 이전 구매자의 경우 USB 부팅을 이용하기 위해서는 펌웨어 업데이트가 필요한데, 다행히 국내에 들어온 8GB 버전은 업데이트가 되어서 들어왔기 때문에 펌웨어 업데이트에 신경을 쓸 필요가 없다고 합니다.

성능과 관련해서는 다음에 있는 몇 개의 기사를 참조했습니다.

위의 여러 기사를 읽다보면 M.2 SATA 방식의 SSD와 어댑터가 가격대비로 성능이 가장 좋은걸 알 수 있습니다. 일반적인 USB 메모리 형태 중에서 삼성 제품이 가장 성능이 좋지만, 그래도 M.2 NVME, M.2 SATA의 속도를 따라오지는 못하는 걸 알 수 있습니다.

클러스터 구성은 어떻게?

영상이나 기사를 보면 보통 4개나 8개를 하나의 세트로 클러스터 구성을 시작하는것 같습니다. 네 도커 스웜을 구성 할 때도 보통 안정적인 운영을 위해 3개의 마스터로 시작하도록 권장하는 것을 많이 봐 왔습니다. 쿠버네티스도 최소 3개를 기준으로 하는 것을 많이 본 듯 싶습니다.

아마도 중단 없는 업데이트와 만약의 사고에 대비해 보통 마스터 3, 워커 5 형태인 경우가 많았습니다. 추후에 필요시 워커 노드만 확장하는 형태로 갈테지요..

하지만 저는 아직 직접적인 운영을 해본 상태가 아니고 언제든지 서비스를 중단할 수 있는 홈랩으로 시작을 하기에 우선 마스터 1, 워커 3 구조를 취하기로 했습니다.

후에 만족여부에 따라 전체 노드수를 8개로 확장하면, 그때 워커 겸용 마스터 3, 워커 5의 구조를 취하고, 이후 12~16개 노드로 확장을 하게 되면 마스터 3, 워커 9~13 형태를 취할 예정입니다.

홈랩 클러스터로 8~16개 노드까지 확장을 할 지는 고민이 필요해 보입니다. 아마도 웹 크롤러와 머신러닝을 운영하게 되면 확장하지 않을까요?

현재로서는 추후 새로운 라즈베리파이5 등의 출시에 따라 추가되는 노드가 달라지지 않을까 생각도 듭니다. 또한 최근 저렴한 저전력 노트북이 많아져서 이를 클러스터에 포함할 생각을 하고 있기 때문에 형태는 많이 달라질수도 있을 것 같습니다.

어쨌든 제게 중요한 것은 전력 사용량이랍니다.

카테고리:

업데이트:

댓글남기기