웹, 앱

[웹서버] 라즈베리파이 서버 구축 A to Z (1) - 라즈베리파이 설정

Hyun-danpung2 2022. 7. 26. 11:41
728x90
반응형

서론

졸업작품에서 웹서버를 구축해야하는데 AWS, NCP, Oracle 등등 의견이 나왔고 비교 분석까지 해봤다. 그런데 개인 프로젝트에서 순수 자바로만 작업해본 덕에 프레임워크의 유용함을 깨달았던 기억 때문에, 라즈베리파이를 통해 직접 서버를 구축하고 배포해보는 경험도 도움이 될 거 같아서 반도체 이슈 때문에 학교에서도 사용하지 못했던 라즈베리파이 20만원(...)을 들여 구매했다. 이걸로 웹서버, DB서버 등을 구축할 예정이다.

환경

- 라즈베리파이4 모델 B
- RASPBERRY PI OS (32-BIT)
- Nginx
- Tomcat8

- mariaDB
- React
- Springboot

1단계: 라즈베리파이에 운영체제 설치


먼저 SD 카드에 운영체제 이미지를 써줘야한다. 처음에는 centOS를 사용하려고 했으나, 최신 버전이 아니라는 오류가 발생하는데 최신 버전의 이미지를 찾을 수 없어서 라즈비안으로 진행하기로 했다. 이미지가 있다면 다른 운영체제를 사용해도 무방하다.

1. SD 카드를 초기화 시켜준다. https://www.sdcard.org/downloads/formatter/

 

SD Memory Card Formatter | SD Association

Watch our video on how to use the SD Memory Card Formatter SD Memory Card Formatter 5.0.2 for SD/SDHC/SDXC The SD Memory Card Formatter formats SD Memory Card, SDHC Memory Card and SDXC Memory Card (respectively SD/SDHC/SDXC Cards) complying with the SD Fi

www.sdcard.org


2. SD 카드를 데스크탑/랩탑에 연결해준다.

3. 다음 두 가지 중 한 가지를 선택하여 SD 카드에 이미지를 쓴다.
3-1. https://www.balena.io/etcher/

 

balena - The complete IoT fleet management platform

Infrastructure and tools to develop, deploy, and manage connected devices at scale. Your first ten devices are always free.

www.balena.io

3-2. https://www.raspberrypi.com/software/

 

Raspberry Pi OS – Raspberry Pi

From industries large and small, to the kitchen table tinkerer, to the classroom coder, we make computing accessible and affordable for everybody.

www.raspberrypi.com


3-1의 경우


3-2의 경우

(운영체제는 본인이 원하는 것으로 선택하면 된다)

select target, 저장소 선택에서는 SD카드를 선택해준다.

4. SD카드에 이미지 쓰기를 완료했으면 라즈베리파이에 SD카드를 연결하고 부팅해준다. 그럼 자동으로 운영체제가 설치된다.

2단계: ssh 설정

나는 모니터를 계속 물려놓는게 아니라 맥북으로 ssh를 통해 제어하려고 했다. 라즈베리파이는 외부에서 원격으로 제어하는게 일반적이라고 한다. 그래서 ssh 설정을 해줘야했다.

1. 아래 명령어로 raspi-config에 들어간다.

sudo raspi-config

3 Interface Options으로 들어간다.

I2 SSH에 들어간다.

enable 해준다.

2. 나는 추가적으로 ufw를 사용해서 포트를 관리해주고 있다. 아래 명령어로 ufw를 설치해준다.

sudo apt-get install ufw

ufw를 설치하면 모든 포트가 닫힌다고 한다. ssh는 22번 포트를 사용하니까 아래 명령어로 포트를 허용해준다.

sudo ufw allow 22

이외에도 원격제어에 사용되는 3389포트, 웹에 사용되는 80포트 등을 열어줄 수 있다. 포트를 막고 싶으면 아래 명령어를 사용하면 된다.

sudo ufw deny 3389

현재 설정된 상태를 보고 싶으면 아래 명령어를 사용하면 된다.

sudo ufw status


3. 같은 공유기를 사용하고 있는 경우, ifconfig 명령어로 확인한 ip주소를 이용해 ssh 접속을 할 수 있다.

ssh 사용자이름@ip주소

사용자이름은 라즈베리파이 설정창에서 확인할 수 있다. 위 명령어로 접속을 시도하면 비밀번호를 치라고 나오는데 시키는대로 비밀번호를 치면 ssh 접속이 된다.

4. 다른 공유기(외부 또는 핫스팟)를 사용하고 있는 경우, 라즈베리파이가 연결된 공유기의 설정 페이지로 들어가서 포트포워딩을 해줘야한다. 나는 kt 공유기를 사용중이고, 회사마다 공유기 설정 페이지가 다르므로 검색 후 접속해서 포트포워딩을 해준다. 포트포워딩이란, 공개 ip와 포트를 통해 접속할 때, 특정 포트로 접속시켜주는 것이다.

예를 들어 외부에서 8888포트를 통해 ssh 연결을 하고자 한다면 외부포트는 8888 내부포트는 22, 그리고 내부 ip 주소는 ifconfig 명령어로 확인할 수 있는 ip주소로 설정해준다.
공개ip:8888 로 접속 시 내부ip:22로 연결되도록 하는 작업이다. 공개ip는 내 ip 찾기 검색을 통하거나 공유기 설정 페이지에서 확인할 수 있다.
(외부포트를 동일하게 22로 설정한 경우 -p 22는 생략해도 된다)

ssh 사용자이름@공개ip -p 포트번호

 

728x90
반응형