[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 클라이언트
'⏳ Time Log > 1. One Day (Daily · TIL)' 카테고리의 다른 글
| Day 57 (1/8) - [AWS 기초] 리눅스 쉘(Shell) 표준 입출력 및 필수 명령어 요약 (0) | 2026.02.27 |
|---|---|
| Day 56 (1/7) - AWS 서버 자동화 배포 및 Crontab 무중단 재시작 스크립트 구현 (0) | 2026.02.23 |
| Day 54 (1/5) - [AWS & Git] 리눅스 vi 에디터 및 권한 관리 핵심 명령어 (0) | 2026.02.23 |
| Day 52 (12/31) - [AWS 기초] 우분투(Ubuntu) EC2 인스턴스 가이드 (0) | 2026.02.23 |
| Day 50 (12/29) - 개발 일지: Spring AOP 심화 및 부트 환경 구축 (0) | 2026.02.23 |