반응형
서버 원격 접속

- 우선 라즈베리파이 서버에 접속한다.
- IP를 모를 경우 공유기 사이트에 접속하여 확인하면 된다.
JDK 설치
# 패키지 갱신
sudo apt update
sudo apt install -y wget gnupg software-properties-common
# 최신 OpenJDK 버전 갱신
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt update
# JDK 설치
sudo apt install -y openjdk-21-jdk
# 버전 확인
java -version
- 참고로 라즈베리파이는 디스크로 SD 카드를 사용하는데, 읽기 / 쓰기 작업이 많아지면 SD카드의 수명이 줄어든다고 한다.
- 외장하드가 읽기 / 쓰기 작업에 더 강하기 때문에 외장하드를 연결해서 쓰는게 더 좋다고 한다.
- 원래 메모리를 마운트해서 메모리에서 읽기 / 쓰기 작업을 처리할까 생각했는데 데이터가 휘발되는 것이 맘에 안 들어 다시 수정했다.
공개키-개인키쌍 생성 및 공개키 등록
# 공개키-개인키쌍 생성
ssh-keygen -t rsa -b 4096 -f ~/.ssh/my_rpi_key
# ssh 원격 접속
ssh brobro332@라즈베리파이IP
# 공개키 등록
mkdir -p ~/.ssh
sudo vi ~/.ssh/authorized_keys
- 라즈베리파이 OS 설치 시 접속을 위한 공개키는 주지만 개인키를 주지 않았다.
- 그렇기 때문에 로컬 PC에서 위 명령어를 입력하여 공개키-개인키쌍을 생성하고, 공개키를 라즈베리파이 서버에 등록하자.
- 개인키는 잃어버리지 말고 로컬 PC에 소중하게 보관해두자.
도커, 도커 컴포즈 설치
# HTTPS용 인증서, 다운로드 도구, GPG 키 처리 도구 설치
sudo apt update
sudo apt install -y ca-certificates curl gnupg
# 도커 GPG 공개키 등록
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# 저장소 등록
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu jammy stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 도커 설치
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 설치 확인
docker --version
docker compose version
- 도커의 GPG 키 설정하여 APT가 해당 패키지가 신뢰할 수 있는 출처에서 왔는지 검증할 수 있도록 해야 함
sudo snap install docker # version 27.5.1
sudo apt install docker-compose # version 1.29.2-6
- docker-compose up -d 명령어가 안 먹어서 위 명령어로 버전을 업그레이드 하였다.
방화벽 설정
sudo apt update
sudo apt install ufw -y
sudo ufw allow 8080
sudo ufw allow 8081
sudo ufw allow 8082
sudo ufw allow 22
sudo ufw enable
도커 컴포즈 파일 및 프로젝트 파일 원격 전송
- 본인은 파일질라를 통해 파일을 전송했다.
- 간단한 과정이므로 생략한다.
도커 컴포즈 파일 실행 및 프로젝트 실행
# 도커 컴포즈 파일 백그라운드 실행
docker-compose up -d
# Jar 파일 백그라운드 실행 및 로그 파일 생성
nohub java -jar samsami-hub-0.0.1-SNAPSHOT.jar > app.log 2>&1 &
# 실행 중인 프로젝트 PID 확인
ps aux | grep samsami-hub-0.0.1-SNAPSHOT.jar
# 프로젝트 로그 확인
tail -f app.log
# 도커 컴포즈 실행 프로세스 및 볼륨 다운
docker-compose down -v
# 백그라운드에서 실행 중인 프로젝트 다운
kill -9 12244
- 위 명령어에서 12244는 PID에 해당하는 숫자이다.


- 외부에서 API 요청도 잘 되는 걸 확인할 수 있다.
- 다만 프로젝트 내 CORS 설정이나 서버 방화벽 설정 등 보안 설정은 다시 해야 할 듯
- 현재 원격 접속 → 도커 컴포즈 파일 전송 → Jar 파일 전송 → 실행 과정을 통해 배포하는데, 추후 해당 과정을 깃허브 액션을 통해 자동화해보려고 한다.
- 일단 그동안 손도 못 댄 나머지 개인 프로젝트 화면부터 개발해야 한다. 😭
이미지 출처
Raspberry Pi
영국의 Raspberry Pi Foundation에서 교육용 프로젝트의 일환으로 개발된 저가형 싱글보드 컴퓨터 .
namu.wiki
'개발' 카테고리의 다른 글
멋쟁이사자처럼부트캠프 백엔드 부트캠프 플러스 (3) | 2025.04.08 |
---|---|
[미해결] 다른 서비스의 DB 데이터를 통합 조회할 수 있을까? (2) | 2025.04.02 |
이미저를 통해 라즈베리파이5에 우분투를 설치해보자 (2) | 2025.03.14 |
라즈베리파이5 언박싱 및 케이스 조립 (1) | 2025.03.14 |
젠킨스로 CI/CD 파이프라인을 구축해보며 남은 것들 (6) | 2025.01.19 |