로컬 PC

# ---------백엔드 JAR 빌드---------
# 프로젝트 루트에서
./mvnw clean package -DskipTests

서버

# ---------기본 업데이트---------
sudo dnf update -y

# ---------Redis6 설치 & 실행---------
# 설치
sudo dnf install -y redis6

# 부팅 시 자동 시작
sudo systemctl enable redis6

# 지금 즉시 시작
sudo systemctl start redis6

# 상태 확인
sudo systemctl status redis6

# 동작 확인(PONG 나오면 OK)
redis6-cli ping

# ---------Java 17 설치---------
sudo dnf install -y java-17-amazon-corretto
java -version

# ---------앱 디렉토리 준비---------
sudo mkdir -p /opt/mpx-backend
sudo chown ec2-user:ec2-user /opt/mpx-backend

로컬 PC

# ---------JAR 파일 전송---------
scp -i "/c/Users/KimSangMin/git/miniPX/mpxLive2026.pem" target/MPX-0.0.1-SNAPSHOT.jar ec2-user@#{SERVER-IP}:/home/ec2-user/

# ---------MPX3---------
scp -i "C:\Users\KimSangMin\git\miniPX\ignore/mpx2026_3.pem" target/MPX-0.0.1-SNAPSHOT.jar ec2-user@43.202.50.109:/home/ec2-user/

서버

# 파일 이동
sudo mv /home/ec2-user/MPX-0.0.1-SNAPSHOT.jar /opt/mpx-backend/backend.jar

# ---------환경변수 설정---------
# 환경변수 파일을 만들어 systemd / 수동 실행 모두에서 재사용
sudo mkdir -p /opt/mpx-backend/env
sudo vi /opt/mpx-backend/env/mpx-backend.env

환경변수 파일(실제 값 넣기)

# ===== Spring Profile =====
SPRING_PROFILES_ACTIVE=prod

# ===== DB (필수) =====
MPX_DATABASE_URL=#{DATABASE_URL}
MPX_DATABASE_USERNAME=#{DATABASE_USERNAME}
MPX_DATABASE_PASSWORD=#{DATABASE_PASSWORD}

# ===== Redis =====
REDIS_HOST=localhost
REDIS_PORT=6379

# ===== OpenAI (필수: 사용 시) =====
OPENAI_API_KEY=#{OPENAI_API_KEY}

# ===== JWT =====
JWT_SECRET=#{JWT_SECRET}

서버

# ---------환경변수 파일 권한 잠그기---------
sudo chown ec2-user:ec2-user /opt/mpx-backend/env/mpx-backend.env
sudo chmod 600 /opt/mpx-backend/env/mpx-backend.env

# ---------수동 실행으로 테스트---------
sudo systemctl stop mpx-backend
cd /opt/mpx-backend
set -a
source /opt/mpx-backend/env/mpx-backend.env
set +a
java -jar /opt/mpx-backend/backend.jar

# ---------다른 SSH 열어서 테스트---------
curl http://localhost:8080/

# 성공 시 Ctrl + C로 끄고, 다음 단계 진행

서버

# ---------service 파일 생성---------
sudo vi /etc/systemd/system/mpx-backend.service

service 파일

[Unit]
Description=MPX Spring Boot Backend
After=network.target redis6.service

[Service]
User=ec2-user
WorkingDirectory=/opt/mpx-backend
EnvironmentFile=/opt/mpx-backend/env/mpx-backend.env
ExecStart=/usr/bin/java -jar /opt/mpx-backend/backend.jar
SuccessExitStatus=143
Restart=always
RestartSec=5
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

서버

# ---------환경변수 적용---------
sudo systemctl daemon-reload
sudo systemctl enable mpx-backend
sudo systemctl start mpx-backend
sudo systemctl status mpx-backend

# ---------환경변수 확인---------
sudo systemctl show mpx-backend | grep -E 'SPRING_PROFILES_ACTIVE|MPX_|REDIS_|OPENAI'

# ---------실행 로그 확인---------
journalctl -u mpx-backend -f
  • 이후에는 서버 재부팅 / 서비스 재시작 시 자동 로드

수동 실행 스크립트 생성

# ---------실행 스크립트 만들기---------
sudo vi /opt/mpx-backend/start.sh

실행 스크립트

#!/bin/bash
set -a
source /opt/mpx-backend/env/mpx-backend.env
set +a
exec java -jar /opt/mpx-backend/backend.jar

서버

# ---------권한 부여---------
sudo chmod +x /opt/mpx-backend/start.sh

# ---------스크립트 실행---------
sudo systemctl stop mpx-backend
./start.sh

재배포

로컬

# ---------백엔드 JAR 빌드---------
# 프로젝트 루트에서
mvnw clean package -DskipTests

# ---------JAR 파일 전송---------
scp -i "C:\Users\KimSangMin\git\miniPX\ignore\mpx2026_3.pem" target/MPX-0.0.1-SNAPSHOT.jar ec2-user@43.202.50.109:/home/ec2-user/

서버

# ---------서버 재가동---------
sudo systemctl stop mpx-backend
cd /opt/mpx-backend
mv backend.jar backend-$(date +%Y%m%d-%H%M%S).jar
sudo mv /home/ec2-user/MPX-0.0.1-SNAPSHOT.jar /opt/mpx-backend/backend.jar
sudo chown ec2-user:ec2-user /opt/mpx-backend/backend.jar
sudo chmod 644 /opt/mpx-backend/backend.jar
sudo systemctl start mpx-backend

# 상태 확인
sudo systemctl status mpx-backend

# 실시간 로그 확인 (에러 여부 체크)
journalctl -u mpx-backend -f

오류해결

  • [20260326] back-end 최초 배포해도 접속 안 되길래 재배포 하니까 잘 되더라…

태그:

카테고리:

업데이트: