(5. REST API 서버 구동을 위한 EC2 사전 작업) - hoho4190/aws-ec2-cicd-with-github-actions Wiki

이 단계에서는 REST API 서버를 aws-cicd라는 서비스로 등록하여 배포 시 REST API 서버를 재시작하기 편하게 할 예정

  • 배포 받을 소스 경로: /home/ec2-user/workspace/aws-cicd
  • REST API 서버 서비스 등록 경로: /opt/aws-cicd

로 할 예정

5.1. open JDK 설치 및 환경 변수 설정

sudo yum upgrade
yum list java*jdk-devel
sudo yum install java-1.8.0-openjdk-devel.x86_64
sudo update-alternatives --config java

java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-1.amzn2.0.1.x86_64/jre/bin/java)

/etc/profile에 추가

JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-1.amzn2.0.1.x86_64"

/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-1.amzn2.0.1.x86_64/jre/bin/java에서 뒤에 /jre/bin/java전까지 경로

source /etc/profile

5.2. REST API 서버 설정

5.2.1. 서버 실행 폴더 생성

sudo mkdir -p /opt/aws-cicd
sudo chown -R $USER:$USER /opt/aws-cicd

배포받은 jar 파일을 /opt/aws-cicd/app.jar로 심볼릭 링크를 만들어서 서비스로 등록할 예정

# 우선 배포 받을 파일이 없기 때문에 임시로 생성해서 심볼릭 링크 생성
mkdir -p /home/ec2-user/workspace/aws-cicd/build/libs
touch /home/ec2-user/workspace/aws-cicd/build/libs/aws-cicd.jar
ln -s /home/ec2-user/workspace/aws-cicd/build/libs/aws-cicd.jar /opt/aws-cicd/app.jar

5.2.2. 서비스 생성

sudo vi /etc/systemd/system/aws-cicd.service
[Unit]
Description=Service Description
After=syslog.target network.target

[Service]
ExecStart=/bin/bash -c "exec java -jar -server -Dspring.profiles.active=prod /opt/aws-cicd/app.jar"
Restart=on-failure
RestartSec=1

User=ec2-user
Group=ec2-user

[Install]
WantedBy=multi-user.target
# 서비스 리로드
sudo systemctl daemon-reload

# 서비스 확인
systemctl -t service list-unit-files | grep aws-cicd

# 서비스 enable 
sudo systemctl enable aws-cicd
# 서비스 disable 
sudo systemctl disable aws-cicd

# 서비스 명령어들
sudo systemctl start aws-cicd
sudo systemctl restart aws-cicd
sudo systemctl stop aws-cicd
systemctl status aws-cicd