반응형
유튜브 메타코딩님의 강의를 듣고 중요한 내용을 기록하고자 합니다.
(좋은 강의 감사합니다. 메타코딩님)
로컬 컴퓨터에서 개발한 서버 프로그램을 배포 환경에서 실행시키는 과정에 대해 기록하고자 합니다.
해당 방법은 CI/CD를 적용하지 않는 방법으로 다른 컴퓨터에 서버 프로그램을 돌리는 방법입니다.
Spring boot를 기준으로 작성합니다.
AWS 배포 과정 이해하기
1. JDK Install하기
java 파일을 실행시키기 위해서는 JDK를 설치해 주어야 합니다.
# apt 목록 업데이트
sudo apt update
# JDK 검색
sudo apt-cache search jdk | grep openjdk-17
# JDK 설치
sudo apt install openjdk-17-jdk
2. Github에 저장된 프로젝트를 다운합니다.
git clone "git project url"
3. gradlew 파일의 실행권한을 부여합니다.
실행 권한은 rwx 중 x에 해당하며 chmod 명령어를 통해 권한을 부여합니다.
chmod u+x gradlew
4. Springboot 프로젝트 빌드하기
# gradlew 파일 위치로 이동
./gradlew build
gradlew란
새로운 환경에서 프로젝트를 설정할 때 java나 gradle을 설치하지 않고 바로 빌드를 하게 해 줍니다.
5. ubuntu timezone 서울로 설정하기
# 현재 설정된 타임존 확인
timedatectl
# 타임존 검색
timedatectl list-timezones | grep Seoul
# Seoul로 타임존 설정하기
sudo timedatectl set-timezone Asia/Seoul
6. nohup으로 springboot 실행시키기 (*.jar 파일 실행)
# jar 파일이 있는 위치로 이동
cd build/libs
# jar 파일 실행
nohup java -jar *.jar 1 > log.out 2 > err.out &
Cron으로 서버 종료 및 재시작 하기 / Script -> Cron에 등록
cron 명령어란
- 주기적 실행 명령어
- 종료된 서비스를 자동으로 재시작할 수 있습니다.
- 리눅스 계열에서 특정 시간에 특정 작업을 하는 데몬 프로그램을 만들어 줍니다.
crontab 란
- cron이 언제, 무엇을 하는지 특정 파일에 저장합니다.
- 주기적으로 실행할 명령어 리스트
# crontab 편집하기
crontab -e
# crontab 작업 내용 확인하기
crontab -l
스크립트로 cron 등록하기
1. vi myScript.sh 생성
echo "crontab 등록 - spring restart ..."
crontab -l 1> crontab_new # crontab 작업 내용을 crontab_new에 기록
echo "* * * * * /home/ubuntu/cron-restart/spring-restart.sh" 1 >> crontab_new
crontab crontab_new # crontab 실행하기 -> 작성된 명령어 리스트들이 주기적으로 실행됨
rm crontab_new
1.2. myScript 실행권한 주기
chmod u+x myScript.sh
2. spring-restart.sh 생성
SPRING_PID = $(pgrep -f *-jar)
SPRING_PATH = "/home/ubuntu/aws-v1/build/libs/*.jar"
if [ -z "$SPRING_PID" ]; then
echo "종료된 상태"
echo "springboot 재시작 - $(date)" 1 >> /home/ubunut/cron-restart/spring-restart.log
nohup java -jar $SPRING_PATH 1 > log.out 2 > err.out &
else
echo "시작된 상태"
fi
2.2 spring-restart실행권한 주기
chmod u+x spring-restart.sh
반응형
'Linux' 카테고리의 다른 글
[Linux] AWS 사용을 위한 리눅스 기본 명령어 정리 (0) | 2024.01.07 |
---|---|
[Linux] nohup 사용법 및 표준 출력과 에러 로그 분리하 / AWS nohup으로 백그라운드 실행하기 & (1) | 2024.01.07 |