개발/AWS

aws배포하기 6 (기본) 재배포하기

Ridiss 2022. 11. 9. 08:05

재배포를 하려면

 

하나의 배포 스크립트를 만들어주면 좋음.(최초:최초배포프로세스, 두번째이상:재배포 프로세스)

----------------------------------------------

deploy.sh (배포)

 

redeploy.sh (재배포)

재배포 스크립트 작성

----------------------------------------------

1. 기존서버를 중지시켜야함 

spring-stop.sh ->실행권한줌

------------------------------

echo "Springboot Stop..."

SPRING_PID=$(pgrep -f v1-0.0.1-SNAPSHOT.jar)

echo $SPRING_PID

kill -9 $SPRING_PID

 

2. aws-v1 폴더를 통째로 삭제 (-rf를 해야 강제로 삭제)

rm -rf /home/ubuntu/aws-v1

 

3. git clone 다운

git clone https://github.com/codingspecialist/aws-v1.git

 

GitHub - codingspecialist/aws-v1: ec2 서버에 스프링부트 프로젝트 배포하기

ec2 서버에 스프링부트 프로젝트 배포하기. Contribute to codingspecialist/aws-v1 development by creating an account on GitHub.

github.com

 

4. gradlew 실행 권한주기

cd /home/ubuntu/aws-v1

chmod u+x gradlew

 

5. 빌드하기

./gradlew build

 

6. jar를 실행

nohup java -jar /home/ubuntu/aws-v1/build/libs/v1-0.0.1-SNAPSHOT.jar 1>log.out 2>err.out &

 

7. cron으로 자동 재시작

 

deploy.sh

----------------------------------------------------

echo "cron apply"
crontab -l > crontab_new
echo "* * * * * /home/ubuntu/cron-restart/spring-restart.sh" 1>>crontab_new
crontab crontab_new
rm crontab_new

 

**이 배포의 문제점은 2~7번을 행하는 동안 서버는 멈춰있다는게 문제

이걸 해결해야함**

 

기본 배포 완료.

 

두번째 배포방법의 목표 : 스크립트 작성으로 배포 자동화, 재배포 자동화

로컬 -> 깃에 프로젝트올림

로컬 -> ec2에 배포파일 전송

ec2 -> 전송받은 배포파일 실행