Justin의 개발 로그

11. 스프링부트로 웹 서비스 출시하기


EC2 인스턴스가 재기동 될 때 서비스가 자동으로 실행되도록 하는 방법 입니다.

관련 소스는 GitHub 에 있습니다. 


CodeDeploy-Agent 구동


/etc/init.d/codedeploy-startup.sh

sudo service codedeploy-agent start



CodeDeploy Agent 설치는 아래 링크의 6-3-6. 참고

https://justinadpark.tistory.com/7?category=739024



Spring Web Service 자동 실행

/etc/init/spring-webservice.conf


description "Hello spring webservice"


# Start when the system is ready to do networking.

start on started elastic-network-interfaces


# Stop when the system is on its way down.

stop on shutdown


#respawn

script

    exec su --session-command="/bin/su - ec2-user /home/ec2-user/app/nonstop/execute-spring-webservice.sh"

end script


실행 쉘

/home/ec2-user/app/nonstop/execute-spring-webserivce.sh


#!/bin/bash


BASE_PATH=/home/ec2-user/app/nonstop

BUILD_PATH=$(ls $BASE_PATH/spring-webservice/build/libs/*.jar)

JAR_NAME=$(basename $BUILD_PATH)


echo "> build 파일명: $JAR_NAME"


JAR_NAME1=set1-spring-webservice.jar

JAR_NAME2=set2-spring-webservice.jar


DEPLOY_PATH=$BASE_PATH/jar/


#jar Symbolic link

ln -Tfs $DEPLOY_PATH$JAR_NAME $DEPLOY_PATH$JAR_NAME1

ln -Tfs $DEPLOY_PATH$JAR_NAME $DEPLOY_PATH$JAR_NAME2



echo '-------------------------------' >> /home/ec2-user/app/nonstop/start.log

date >> /home/ec2-user/app/nonstop/start.log

echo 'Starting spring-webservice' >> /home/ec2-user/app/nonstop/start.log


USER=ec2-user

JAVA=/usr/bin/java

PROFILE1=set1

PROFILE2=set2



echo "/bin/su - $USER $JAVA -jar -Dspring.profiles.active=$PROFILE1 $DEPLOY_PATH//$JAR_NAME1 &" >> /home/ec2-user/app/nonstop/start.log

nohup $JAVA -jar -Dspring.profiles.active=$PROFILE1  $DEPLOY_PATH/$JAR_NAME1 &


sleep 20


echo "/bin/su - $USER $JAVA -jar -Dspring.profiles.active=$PROFILE2 $DEPLOY_PATH/$JAR_NAME2 &" >> /home/ec2-user/app/nonstop/start.log

nohup $JAVA -jar -Dspring.profiles.active=$PROFILE2  $DEPLOY_PATH/$JAR_NAME2 &


profile

Justin의 개발 로그

@라이프노트

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!