⏳ Time Log/1. One Day (Daily · TIL)

Day 55 (1/6) - Spring Boot 프로젝트 배포 및 원격 제어 도구 활용

this.Serena 2026. 2. 23. 04:26

[AWS CI/CD] Spring Boot 프로젝트 배포 및 원격 제어 도구 활용

한 줄 요약: EC2 환경 내 JDK 설치부터 프로젝트 빌드, nohup을 이용한 무중단 실행 및 Xshell/Xftp를 활용한 서버 제어 과정 정리

 

1. 인프라 환경 구성 및 소스 코드 빌드

  • 소스 코드 복제: git clone [저장소 URL] 명령어로 원격 저장소 프로젝트 파일 로컬 환경 다운로드
  • JDK 21 환경 구축: 최신 패키지 업데이트(sudo apt update) 진행 후 자바 21 버전 설치(sudo apt install openjdk-21-jdk -y) 완료 및 버전 검증(java --version)
  • 빌드 권한 및 실행: 디렉토리 이동(cd aws-v1) 후 chmod +x gradlew로 실행 권한 부여, ./gradlew clean build 명령어로 최종 빌드 파일(.jar) 생성

2. 애플리케이션 실행 및 백그라운드 무중단 구동

  • 네트워크 도구 준비: 프로세스 포트 확인 등을 위한 패키지 설치 (sudo apt install net-tools)
  • 기본 포그라운드 실행: build/libs 경로 이동 후 java -jar *.jar 명령어로 서버 정상 작동 여부 1차 테스트
  • nohup 무중단 서버 구동:
    • 명령어 구조: nohup java -jar v1-0.0.1-SNAPSHOT.jar 1>log.out 2>err.out &
    • 터미널 세션 종료 후에도 백그라운드에서 서버 유지
    • 표준 출력(1)은 log.out, 에러 메시지(2)는 err.out 파일로 완전 분리 저장

3. 리눅스 스케줄링(cron) 및 파일 관리

  • 기본 에디터 지정: select-editor 명령어를 통해 시스템 기본 텍스트 편집기(nano, vim 등) 설정
  • Nano 단축키: 에디터 내부 편집 모드 종료 및 탈출 시 Ctrl + X 입력
  • 배포 파일 복사: cp 명령어로 특정 경로의 쉘 스크립트(spring-stop.sh)를 현재 작업 디렉토리(.)로 이동
  • Tar 압축 병합: tar -cvf deploy.tar job.sh myScript.sh spring-stop.sh 실행으로 분산된 스크립트 파일들을 단일 아카이브 파일로 묶어 관리

4. 서버 원격 제어 및 파일 전송 클라이언트 (Xshell & Xftp)

  • Xshell 활용: AWS EC2 웹 콘솔의 불편함을 해소하는 강력한 원격 터미널 에뮬레이터
  • Xftp 활용: 터미널 환경에 구애받지 않고 마우스 드래그 앤 드롭으로 .tar 파일 등을 직관적으로 전송 가능한 GUI 기반 FTP 클라이언트