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

2018. 12. 15. 00:26Programming

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에 연결하는 게 좋습니다.

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