Pi-Server 만들기 1편: 아키텍처 굽기와 SSH 연결
Raspberry Pi 5로 24시간 개인 서버를 만드는 과정 — 아키텍처 설계와 SSH 연결 자동화(초기 설정).
🧠 Pi-Server 만들기 1편: 아키텍처 굽기와 SSH 연결
1. 이 프로젝트를 시작한 이유
라즈베리파이 서버 프로젝트의 시작은 단순한 ‘취미’가 아니다. 내가 하고자 하는 건 크롤링 블로그, 자동매매, Termux와 Tasker 연동까지 고려한 일종의 개인 인프라 구축이다. 즉, 이 Pi 서버는 내가 앞으로 만들 모든 시스템의 기초 인프라이자, 실험 공간이다.
전역 후에는 이를 확장해서 클라우드 기반 컴퓨팅 시스템을 만들 계획이 있다. 그 기반 기술을 미리 익혀 두는 건 전역 후에도 자산이 된다고 생각했다. 게다가 부대 안에서는 코드 공부는 가능하지만, 라즈베리파이 본체는 반입이 불가능하니까 부대 안에서도 사용 할 수 있게 만들기로 했다. (제한시간: 32시간)
그리고 솔직히 말해서, 집에 Raspberry Pi 5라는 고성능 ARM 머신이 놀고 있는데… 그걸 그냥 둘 수가 없었다. “24시간 돌아가는 내 서버”라는 말이 너무 달콤하게 들렸다.
2. 이번 프로젝트의 목표 (제한 시간: 32시간)
이번 미션은 명확하다.
- 언제 어디서든 원격 접속 가능한 Raspberry Pi 서버 구축
- 하드웨어 복구 기능 및 안정성 확보 (전원 차단 후 자동 재부팅 포함)
- 보안 강화 — 외부 노출 환경에서 안전하게 운영
단순히 “라즈베리파이를 켰다!” 수준이 아니라, 진짜 24시간 돌아가는 개인 서버를 목표로 했다.
3. 준비물
- Raspberry Pi 5 — 집에서 놀고 있던 고성능 ARM 머신
- 18650 셀 4개짜리 UPS HAT (알리발) — 전원 안정화 및 UPS 기능용
- 18650 삼성 셀 4개 — 정품 배터리 권장
- Pi 5용 써멀패드 / 쿨러 / 방열판 — 발열 관리 필수
4. OS 선택: Raspberry Pi OS Lite
이번 서버의 목적은 “항상 어디서든 접속할 수 있는 환경”이지, GUI가 필요하지 않다. 그래서 Raspberry Pi OS Lite (CLI 전용 버전) 을 사용했다.
이유:
- 개발은 GitHub Codespaces 등에서 하고, 실제 구동만 Pi에서 하면 됨.
- Pi의 리소스를 GUI에 쓰는 건 낭비.
- 무선 환경에서는 2.4GHz의 안정성을 우선시했고, GUI를 2.4GHz로 커버하기엔 무리가 있음.
요약: “최소한의 자원으로 최대한의 안정성”을 위해 Lite 버전 선택.
5. 로컬 SSH 연결 과정
라즈베리파이는 기본적으로 첫 부팅 시 SSH가 비활성화되어 있다. 이를 활성화하는 간단한 방법은 SD카드의 boot 파티션에 빈 파일 이름 ssh 를 넣는 것이다.
1
2
# SD카드의 boot 파티션 안에서
touch /boot/ssh
처음엔 Windows PowerShell로 시도했지만 네트워크 상의 기기 확인 과정이 번거로워서 Ubuntu로 전환했다. Ubuntu에서 nmap을 이용하면 같은 네트워크 내 장치의 IP를 빠르게 파악할 수 있다.
1
2
3
sudo apt update
sudo apt install -y nmap
sudo nmap -sn <REDACTED_LOCAL_NET>
IP를 찾은 뒤에는 다음처럼 접속한다:
1
2
ssh pi@<REDACTED_LOCAL_IP>
# 기본 비밀번호: raspberry
6. SSH 자동 부팅 설정
SSH가 잘 작동하면, 재부팅 시 자동으로 SSH가 켜지도록 서비스 등록을 해둔다.
1
2
sudo systemctl enable ssh
sudo systemctl start ssh
이제 Pi를 재부팅해도 SSH로 자동 접속 가능하다. (이 설정은 이후 ttyd, cloudflared 같은 외부 접근 도구를 붙이는 데 필수적이다.)
7. 다음 단계(예고)
여기까지로 OS 설치 → SSH 활성화 → SSH 자동부팅까지 마무리했다. 다음 편에서는 웹 터미널(ttyd) 설치, Cloudflare Tunnel 연동, Zero Trust 인증 등 외부에서 안전하게 접속할 수 있는 환경을 만든다. 특히 군대에서도 스마트폰 하나로 서버를 조작할 수 있도록 설정할 예정이다.
부록: 유용한 커맨드 (요약)
- SSH 파일 생성 (SD 카드, 부팅 전):
1
touch /boot/ssh
- 네트워크 스캔 (Ubuntu):
1
2
sudo apt install -y nmap
sudo nmap -sn <REDACTED_LOCAL_NET>
- SSH 서비스 활성화:
1
2
sudo systemctl enable ssh
sudo systemctl start ssh