앞선 글에서 스왑 메모리는 근본적인 해결이 될 수 없음을 밝혔다. 당연히 더 요금을 내면 해결할 수 있는 일이다. 하지만 웹을 배포하려는 내 목적 상, 다른 사람들처럼 사용하는 시간 대에만 켜고 사용하지 않을 때는 끄는 식으로는 운용할 수가 없다. 애초에 귀찮으니 만큼 그렇게 번거롭게 하고 싶지 않았다.
어떻게든 1GB의 메모리로 해결해보려고 했으나, 지인에 의해서 라즈베리파이4를 사용해 해결할 수 있었다. 현재 서버는 공용으로 사용되고 있기 때문에, 내 소유가 아니지만, 그 때의 경험으로 인해 내 공구(?) 상자에서 숙면을 취하던 라즈베리파이4를 깨우기로 결정했다. 이번 글에서는 라즈베리파이를 사용해서 서버를 구축하는 과정을 보이고자 한다.
일단 라즈베리파이의 SD 카드에 ubuntu의 최신 버전을 설치해주도록 하자. 라즈베리파이3이 최신이던 시절에는 ubuntu는 공식적으로 지원해주던 것이 아니었지만, 이제는 홈페이지 상에서도 사용할 수 있게 되었다.
아래 링크를 클릭하여 라즈베리파이 SD 카드에 넣을 우분투를 설치해주자.
설치를 하게 되면 위처럼 파일이 생성될 텐데, 이 파일은 압축된 파일이므로 압축을 해제하자. windows에서는 압축을 해제할 수 없기 때문에, 7zip과 같이, 압축을 해제하기 위한 별도의 소프트웨어를 설치하도록 하자.
해제를 하고 나면 우측과 같이 ubuntu image file이 설치된다.
이번에도 역시나, 라즈베리파이에서 공식적으로 제공하는 imager를 사용할 것이다.
imager는 단순 file인 OS를, SD 카드에 설치해주는 역할을 한다.
사실 ubuntu를 다운로드하지 않고서, Pi Imager에서 ubuntu를 설치할 수 있지만, 그럼에도 설치하도록 하자. 온라인에서 설치하려고 하면 속도가 오래 걸리기 때문에, 따로 따로 설치해주는 것이 시간 절약에 도움이 된다.
설치가 100% 완료되면 SD 카드를 라즈베리파이에 꽂아주는 것만으로도 완료된다.
라즈베리파이에 전원을 공급해주고, 노트북에 랜선을 이용하여 연결해주자.
나의 경우에는 2019 gram 노트북을 사용 중인데, 여기에는 랜선을 꽂는 곳이 없다. 다이소에 가면 저렴한 가격에 USB와 랜선을 연결하는 기가비트가 있으므로, 사용하면 좋겠다.
랜선을 연결하고 나면 제어판에서 네트워크 및 인터넷에서 어댑터 옵션 변경에 들어간다. 아래와 같이 되어 있다. 위에는 이더넷 2라는 것이 떠 있는데, 저것이 라즈베리파이다. 당장 뜨지 않더라도 당황하지 말고 어댑터 옵션 변경에 들어간다.
들어가면 아래와 같이 WI-FI와 이더넷 2등이 있다. -사실 지울 필요가 있었냐 싶냐만은 뭐가 노출되면 위험한지 아닌지 몰라서 일단 왠만하면 가려놓았다- 이더넷은 허브로 이어지는 내부 통신망을 의미하는데, 아직 라즈베리파이에 접근할 방법이 없기 때문에 와이파이에 연결된 노트북의 인터넷을, 이더넷을 통해서 라즈베리파이가 공유할 수 있도록 설정해주고자 한다.
다음과 같이 다른 네트워크 사용자가 접근할 수 있도록 체크해주고, 홈 네트워크에 라즈베리파이에 해당할 이더넷을 연결해주자. 어떤 것이 라즈베리파이인지 모르겠다면 랜선을 잠깐 뺐다 껴보자. 사라지는 게 라즈베리파이다. 대부분의 경우에는 노트북에 연결된 이더넷이 있을 리 없으니, 이더넷은 하나만 있다 생각해도 되겠다.
아마 이 상태로도 동작할 수 있을지 모르겠지만, 노트북에서 라즈베리파이에 접근하는 데 실패할 수도 있다. 그럴 경우에는 아래처럼 해보자.
설정에 보면 서비스들이 있다. 사실 FTP, FILE 등 프로토콜을 의미한다. ( 왜인지 모르지만 나한테는 다 숫자로 설정되어 있었다. ) 저것들을 모두 체크한 다음, 편집에 들어가서 192.163.137.1을 입력하고 확인을 눌려주자.
192.168.137.1는 일반적으로 내부 네트워크의 외부 게이트웨이이다. 이제 192.168.137.2 ~ 192.188.137.255까지의 모든 기기들이, 해당 게이트웨이를 통해서 접근이 가능하다고 한다. 사실, 게이트웨이에 대한 내용은 작성자도 잘 알지 못한다. 추후 알게 되면 내용을 추가하겠다. 현 시점에서 내가 알고 있는 것은 192.168.137.2를 통해 라즈베리파이에 접근할 수 있다는 점이다. 아마, 다른 기기들이 연결됨에 따라 이더넷 내에서 순차적으로 IP를 할당받게 될 것인데, 필요하다면 이 IP를 고정으로 할당하는 방법도 있다.
ssh ubuntu@192.168.137.2
CMD 창에서 위 명령어를 입력함으로써, 라즈베리파이를 접속할 수 있다. 만약 라즈베리파이가 접속되지 않는다면 이더넷 내에 다른 기기들이 있기 때문일 것이다. 이 경우에는 고정된 IP를 할당해주거나, IP 값이 무엇인지 알아내야 한다. 대개는 없을 거라 생각되기 때문에 생략한다.
초기 ID와 비밀번호는 ubuntu, ubuntu이다. 이것을 입력한다. 그러면 곧장 새 비밀번호를 할당해달라고 나올텐데, 지시에 따라 새 비밀번호를 정해주자. 그 다음에는 리눅스 명령어와 같이 sudo passwd를 사용하여 root 계정의 비밀번호를 설정하고 들어가자.
계속해서 이더넷을 이용해 라즈베리파이에 들어갈 수는 없는 노릇이다. 카페에 가거나, 학교에 가거나, 회사에 가거나, 어쨌든 장소를 옮길 때마다 라즈베리파이를 함께 들고 다니려면 고생 꽤나 할 법 하다. 따라서 집에 있을 공유기에 라즈베리파이를 연결하고, 노트북이 아닌 공유기의 이더넷에 들어가게 만들자.
안타깝게도 작성자는 SKT기 때문에 다른 통신사의 관리자 페이지에 대해서 알지 못한다. 하지만 공유기에는 관리자 페이지에 들어갈 수 있도록 마이크로 웹 서버가 있기 때문에 ( 너무 옛날 공유기라면 없을 수도 있다. ), SKT 기준으로 아래 IP를 브라우저에 입력해서 들어가주면 된다.
192.168.35.1
해당 페이지로 들어가면 관리 > 커넥션 관리에 연결된 기기 목록을 볼 수 있는데, 여기에 내 ubuntu가 뜨게 만들 것이다. 이 연결된 기기 목록은 테이블 형식으로, IP 주소도 가지고 있는데, 이게 공유기 내에서 갖게 될 IP이므로, 이것을 통해 라즈베리파이에 접근하게 될 것이다.
# ssh ubuntu@192.168.137.2
ssh ubuntu@새로_받을_IP_주소
아래의 순서대로 따라해보자.
1. 앞서 노트북에 연결했을 것이다.
2. sudo apt-get install network-manager를 입력한다.
3. sudo nmtui를 입력한다.
여기까지 작업했다면 이미 와이파이가 연결되어 있어야 하겠지만, 불운하게도 그렇지 않다면 따로 설정을 해주자.
wifis:
wlan0:
dhcp4: true
optional: true
access-points:
"ssid":
password: "password"
ssid는 휴대폰으로 와이파이를 잡으려고 할 때 나오는 코드 ( 와이파이 이름 ) 이고, password는 와이파이 비밀번호이다. 그렇지만 눈대중으로 적지 말고, 공유기의 마이크로 웹 서버에 들어가서 확인해서 적어주도록 하자. 여기까지 완료했다면 sudo reboot 명령을 통해 라즈베리파이를 재부팅한다.
이후 재부팅이 된 후에, 공유기의 웹 서버 커넥션 관리의 테이블에 ubuntu라는 이름이 새로 연결될 것이다. 여기까지 했다면 모든 준비가 끝났다. 이제부터 카페나 다른 공간에서도 자유롭게 서버를 관리할 수 있는 것이다!
멀티탭에 라즈베리파이 전원을 연결해놓고, 안쓸 때는 그냥 꺼버렸다. 다시 켜는 데에도 2~3분은 걸릴 수 있으니, 껐다 켰더니 IP 주소가 바뀐 거 아닌지, 겁먹거나 하진 말자.