[AWS] EC2 스프링 부트 jar 실행하는 방법

시스템이 제대로 구축된 회사는 운영팀, 인프라팀, 개발팀이 다 따로 있어서 개발자는 코딩만 하면 끝이지만 작은 회사는 개발자가 세 가지를 모두 다 해야 하는 상황이 생긴다. 아주 깊게는 아니더라도 어떤 방식으로 돌아가는지 큰 그림을 이해하고 있는 게 중요하다.



환경 준비 (Environment Setup)

jar를 실행하기에 앞서 EC2 환경을 준비해봅시다. EC2 instance를 만드는 방법은 AWS 공식 문서가 아주 잘 되어있으니 참고하면 됩니다. OS는 Amazon Linux 기준으로 작성되었다.

AWS EC2 인스턴스 만들기 공식 문서: https://docs.aws.amazon.com/efs/latest/ug/gs-step-one-create-ec2-resources.html


OS 업데이트

sudo yum update -y


자바 8 설치

sudo yum install java-1.8.0-openjdk -y

이유는 잘 모르겠지만 자바 7을 삭제해주어야 자바 8이 정상적으로 실행된다.

sudo yum remove java-1.7.0-openjdk -y



apache httpd 설치

sudo yum install httpd -y



마리아 디비 설치

sudo yum install MariaDB-server MariaDB-client



httpd.conf

80 포트로 요청이 들어왔을 때 spring boot jar가 실행 중인 8080 포트포워딩을 해줄 수 있도록 /etc/httpd/conf/httpd.conf 파일에 아래 내용을 추가

<VirtualHost *:80>
 ServerName fwantastic.com
 ServerAlias www.fwantastic.com
 ProxyPreserveHost on
 ProxyRequests Off
 ProxyPass / http://localhost:8080/
 ProxyPassReverse / http://localhost:8080/
</VirtualHost>


실행

설치가 모두 끝났으니 이제 실행해보자.


httpd 실행

service httpd start


스프링 부트 jar 실행

nohup (no hangup) 커맨드를 사용하면 ssh 접속이 끊긴 이후에도 백그라운드에서 jar가 계속 돌아간다.

nohup java -jar /path/to/jar/fwantastic.jar &




application.properties 파일을 따로 사용하고 싶은 경우

nohup java -jar -Dspring.config.location=/path/to/property_file/application.properties /path/to/jar/fwantastic.jar &