본문 바로가기

Programming

라즈베리파이로 집에서 서버 구축하기 1. 준비단계

0. 서론

원래 저는 aws의 프리티어로 웹 서버를 하나 가지고 있었습니다. 포트폴리오 용도로 활용할 개인 홈페이지도 운영하고 프로젝트 개발할 때 테스트 서버로도 쓰기 위해서 만들어 뒀는데, 정작 개인 홈페이지는 손도 못 대봤고 대신 학기 중에 과제할 때 서버로선 종종 썼습니다. 없을 떈 필요성을 별로 못 느꼈는데, 한번 써보고 나서부턴 "없으면 아쉽다"라는 느낌을 많이 받게 되었습니다.

문제는 그 프리티어 기간이 지난달로 만료가 되어서, 이번 달부터 과금이 되기 시작한 것입니다. 가격이 싸다면야 그냥 쓰겠는데 24시간 풀가동을 전제하면 월에 약 8000원.. 1년이면 9만원이 넘는다는 계산이 나왔습니다. 예전에 웹 호스팅을 받아서 쓸 시절엔 1년에 5천원을 냈었는데.. 차이가 너무 크게 다가왔죠. (물론 500mb 저장공간 제공하는 웹 호스팅을 받는 것과, 8gb의 공간과 고객이 자유자재로 뭐든 손 댈 수 있는 클라우드를 비교하는 것부터가 웃기긴 합니다만) 사실 계정을 하나 더 만들면 해결될 일이긴 합니다만, 그렇게 넘어가도 해가 지날때마다 다시 마이그레이션을 거쳐야할 테고.. 장기적으로 봐서 본가에서 서버를 돌리기로 결정했습니다.

라즈베리 파이는 영국에서 개발된 소형 컴퓨터입니다. 보드 자체로만 구매하면 4.5만 정도 하는데, 그런데도 성능 자체는 꽤 준수하고, 라이트 버전이긴 하지만 마인크래프트(!)도 돌릴 수 있습니다. 이 뛰어난 가성비 덕에 지금은 임베디드 환경에서도 많이 쓰이고 있고, 오픈소스 진영에서 지원해주는 소프트웨어도 많아서, 우리같은 일반인들도 튜토리얼만 잘 따라하면 혼자서 cctv를 만들거나, 키오스크를 만들거나, 드론 등도 만들 수 있습니다.

여하튼, 그래서 이번에 서버를 돌리는 장비로 라즈베리 파이를 선택했습니다. 한 10년 전쯤만 해도 집에서 개인 서버를 돌리려면 덩치 큰 컴퓨터 하나 사다가 어딘가에 짱박아두고 돌려야 했었는데, 이젠 저렴하게 카드 크키만한 보드 하나 사서 똑같은 걸 할 수 있다니 기술의 발전이 놀라울 따름입니다.

1. OS 선택

라즈베리파이 재단에서는 라즈비안(raspbian)이란 OS를 권장하고 있습니다. 워낙 인기가 많은 보드이니만큼 라즈베리파이에 탑재할 수 있는 OS는 종류가 꽤 됩니다. 다만 프로세서가 arm 계열이라서 일반 데스크탑에서 자주 쓰이는 OS가 그대로 들어가진 않고, 라즈베리파이에 맞도록 조정이 된 OS들이 들어갑니다. 페도라를 수정한 피도라, 우분투의 포크인 우분투 마테 등이 이에 해당하죠. 안드로이드도 들어갑니다.

aws에서는 우분투를 이용해 서버를 돌렸으므로, 웬만하면 라즈베리파이에도 우분투를 넣고 싶었습니다. 그래서 우분투 마테를 생각해 봤었는데, 하필이면 제가 구매한 라즈베리 파이 3B+는 가장 최신 보드고, 프로세서로는 armv8을 쓰고 있어서 라즈베리파이 시리즈 중에선 유일하게 64비트 보드이며, 그래서 아직까진 3B+에 맞춰서 나온 우분투 마테는 없었습니다. 우분투 위키(http://wiki.ubuntu.com)를 찾아보니, 라즈베리파이 2용으로 나온 우분투 코어 이미지에서 부트로더만 수정하면 3B+에서도 돌아간다고는 하던데.. 실제로 시도해봤을 땐 부팅 중간에 에러가 나서 실패했고 또, 이렇게 비공식적인 OS를 쓰면 나중에 업데이트할 때 곤란한 상황이 오지 않을까 싶어서 얌전하게 라즈비안을 선택했습니다.

앞서 말했듯이 라즈비안은 재단에서 권장하고 있는 OS이며, 데비안을 베이스로 한 리눅스입니다. 덕분에 우분투와 겹치는 면이 많아서 적응 자체는 크게 어렵지 않았습니다. 제가 선택한 라즈비안은 최신버전 Stretch이며, 버전도 가장 최소한의 기능만 들어간 Stretch Lite로 정했습니다. 이 Lite에서는 GUI가 없으며, 오로지 키보드로 텍스트 조작만 가능합니다.

2. 주문

주문은 메카솔루션(http://mechasolution.com )에서 했습니다. 1년 넘게 사용하고 있는 쇼핑몰인데, 모바일에서도 결제 좀 하게 해줬으면 좋겠습니다.

구매한 품목은 다음과 같습니다

1) 라즈베리파이 3B+

가장 최신식 모델입니다. 3B때에 비해서 네트워크 기능이 향상되었고, 프로세서가 Armv8로 바뀌었다고 합니다.

2) 아크릴 겹층 쿨러 케이스

일단 케이스 없이 라즈베리파이를 돌리면 불안하기도 하고, 발열 부분도 해결해야하니 이번에 아예 쿨링이 되는 케이스를 샀습니다. 5v짜리 쿨링팬이 딸려오므로, 라즈베리파이의 GPIO에 연결하면 라즈베리파이가 돌아가는 동안 계속해서 쿨링이 됩니다.

3) 2.5A 마이크로 5핀 충전 케이블

라즈베리파이는 구형 스마트폰이 쓰던 마이크로 5핀 규격을 사용합니다. 단, 그렇다고 스마트폰 충전기를 꽂으면 난감한게, 재단에서는 2.5A 충전기를 사용하도록 권장하는데, 상용 스마트폰 충전기는 대부분 이 기준보다 아래입니다. 그래서 아예 라즈베리파이에 같이 끼워서 파는 경우도 많습니다.

4) microSD 16gb

라즈베리파이의 OS는 micro SD에 저장된 데이터로 돌아갑니다. usb 포트에 외장하드 같은걸 연결해서 저장소를 확장할 순 있지만, 결국 OS를 돌리긴 위해선 SD카드가 필요합니다. SD카드로는 샌디스크의 10클래스 SDHC를 구매했습니다. 가격이 4천원밖에 안하길래 순간 눈을 의심했습니다. 아무리 그래도 그렇지 플래시 메모리 시장이.. 중간에 갑자기 쇼트나서 데이터가 날아가지만 않기를 바랄 뿐입니다.

3. 설치

쿨링팬 장착은 위에 사진으로 나왔으니 간단하게 설명하겠습니다. GPIO의 5v핀과 gnd핀에 각각 빨간선, 검은선을 연결하면 됩니다. GPIO의 핀 구성이 궁금하신 분은 여기를 참조하시면 됩니다. 참고로 USB 포트가 아래에 있다고 가정하고 보셔야 합니다.

쿨링팬을 나사로 고정하고, 랜 포트에 랜선을 연결합니다. 최초 설정은 라즈베리파이를 직접 조작해야 하므로, HDMI선도 모니터에 연결하고, 키보드도 USB에 연결하는 게 좋습니다.

충전기를 꽂으니 쿨링팬이 아주 잘 돌아갑니다. 소음이 심하지 않을까 걱정했는데 생각보다 팬이 약하게 돌아서 소음이 잘 들리진 않습니다. 이제 세팅은 끝났으니 다음 포스트에선 라즈비안을 설치하고 간단한 설정을 해보도록 하겠습니다.

  • 익명 2018.12.29 19:34 댓글주소 수정/삭제 댓글쓰기

    저걸로 마인크래프트 최신버전 24시간서버 정말 가능한가요?

    • 본문에서 말한 마인크래프트는 서버가 아니라 클라이언트 이야기였지만, 검색해보니 서버도 가능은 한 것 같습니다. 그러나 어디까지나 "가능"만한 이야기이고, 성능은 별로 좋지 못하다는 평이 많으니 이왕 시도하실 거라면 라즈베리파이보다 성능이 더 좋은 제품군을 찾아보시는 걸 추천합니다. 저는 게임 서버가 아니라 웹 서버를 돌리기 위해서 라즈베리파이를 구매했습니다.

  • 저걸로 바람의나라 최신버전 24시간서버 정말 가능한가요?

  • 위아베어 2019.07.07 18:24 댓글주소 수정/삭제 댓글쓰기

    그럼 라즈베리파이로 나만의 클라우드 스토리지 구축이 가능한건가요? 그러니까 네이버 클라우드 같으면서
    나 혼자서만 쓸 수 있는

    • 구글 드라이브 같은 스토리지형으로 사용하는 것도 물론 가능합니다. 흔히 그런 경우는 NAS라고들 부르죠. 아주 간단하게는 라즈베리파이에 외장하드를 연결하고 ftp 서버를 설치하는 방식도 있고, owncloud같은 것들을 설치하면 스마트폰 앱과 연동해서 사용하는 것도 가능합니다.
      다만, 말씀드리고 싶은 것은 라즈베리파이는 어디까지나 가성비가 좋은 보드이기 때문에, 만일 고화질 동영상 스트리밍 등에 사용하고 싶으시다면 라즈베리파이는 크게 추천 드리지 않습니다. (최근에 버전 4로 올라가면서 성능 개선이 상당히 되었다고 하는데, NAS에서의 성능 향상이 어느 정도 되었는지에 대해서 정확히 아는 바는 없습니다.) 고성능 NAS를 원하신다면 시놀로지 사의 다른 NAS를 구매하시거나, 라즈베리파이보다 성능이 더 좋은 오드로이드 등을 구매하시는 걸 추천드립니다.

  • 지나가다가 궁금한점이 생겨서 직접 댓글 남깁니다! 웹 서비스 하나 돌리기에는 충분한가요?? 아니면 그냥 혼자 스터디용으로 쓸만한가요?
    감사합니다!

    • 어느 정도의 웹서비스를 생각하시는지 달아주셨으면 더 알기 쉬웠을 것 같은데, 모두에게 공개하는 상용서비스를 돌릴만한 정도는 아닐 것 같습니다. 9월에 나올 4B+는 스펙이 많이 개선되니 어떨진 모르겠습니다만.. 저는 포트폴리오와 토이 프로젝트 3개 정도를 올려놓고 쓰고 있는데, 일 평균 트래픽이 굉장히 낮기 때문에 질문자 분이 원하시는 규모는 아닐 것 같습니다.

  • tyki 2019.09.09 14:19 댓글주소 수정/삭제 댓글쓰기

    안녕하세요! 혹시 REST API를 통해 데이터를 주고받는 목적으로 서버를 하나 상시 열어두려고 하는데 라즈베리파이로도 그만큼의 기능이 가능할까요?
    aws를 썼었는데 유지비가 계속 들어서 다른 방법을 찾고 있는 중입니다 ㅜㅜㅜ
    잘 알려지지는 않았지만 실제로 서비스가 되고 있는 부분에 넣을거라 사용량은 어느 정도 있을 거라고 짐작하고 있습니다