AWS 서버에 슈랭크 배포하기

송준희·2021년 1월 11일
0

SSURank

목록 보기
1/3

이전까지는 슈랭크를 배포할 서버로 헤로쿠를 이용했다.
헤로쿠에 git 브랜치를 push하면 자동으로 실행됐기 때문에 편했지만
heroku에 로그인을 하면 원래 있던 git repository로 돌아갈 수 없는 문제가 있었다. (방법을 모름)
그래서 헤로쿠에 배포할 때마다 기존 repository를 삭제하고 깃클론을 다운받아 cmd로 헤로쿠에 배포하기를 반복했다.

클라이언트에서 테스트를 하기에는 문제가 없었지만
헤로쿠 특성 상 특정 시간동안 사용자가 서비스를 이용하지 않으면 휴면상태가 되고
휴면상태에서 다시 서버를 가동하는데 20초 이상의 시간이 걸렸기 때문에
헤로쿠 서버를 이용하여 실제로 릴리즈하기에는 문제가 있었다.
그래서 슈랭크를 실제 배포할 땐 AWS의 ec2 인스턴스를 이용하기로 결정했다.

AWS ec2 인스턴스 생성하는 방법은 유튜브나 다른 블로그들에 많은 자료가 있고
졸업작품으로 오픈스택을 접해봤기 때문에 따라하는데 크게 어려운 점은 없었다.

ec2 인스턴스를 생성하고나서 슈랭크를 실행하는데에 필요한 주변 환경 설정부터 해야했다.
과정은 다음과 같다.

  1. java jdk, jre 1.8 버전 설치
  2. mysql 5.7 버전 설치
  3. local과 ec2 사이에서 파일을 전송하기 위한 ftp 설정
  4. 슈랭크 배포

1번부터 3번까지는 구글링을 통해서 쉽게 해결할 수 있기 때문에 설명은 생략한다.
마지막 4번 서버에 배포하는 방식은 크게 2가지로 나뉜다.

war 파일로 배포하기

이 방식은 ec2 인스턴스에 설치된 tomcat을 이용하여 war 파일을 실행하는 방식이다. /var/lib/tomcat8/webapps 위치에 war 파일을 업로드한 뒤 tomcat을 시작하면 자동으로 배포되어 프로그램이 실행된다. 재배포도 webapps의 war파일만 교체하고 tomcat을 재시작하면 되기 때문에 이 방법을 사용하려고 했다. intellij 에서 war 파일을 만들었는데 잘못 만들었는지.. 실행이 되지 않았다. 아마 war 파일을 만드는 과정에서 문제가 있었던 것 같다.


jar 파일로 배포하기

이 방식은 spring boot에 탑재된 tomcat을 이용하여 jar 파일을 실행하는 방식이다.
spring boot에서 bootJar을 통해 jar 파일을 생성하고 ec2 인스턴스에서 nohup java -jar 프로젝트명.jar & 명령어를 통해 백그라운드에서 서버를 구동할 수 있다. 이 방법을 사용하면 ec2 인스턴스에 tomcat을 설치하지 않아도 서버를 실행할 수 있는 장점이 있다. 재배포할 경우 기존에 백그라운드에서 실행되고 있던 jar 파일을 kill -9 pid 명령어로 중단하고 새로운 jar 파일을 nohup 명령어로 실행하면 된다.


다음번엔 서버가 다운됐을 때 원인을 어떻게 분석하고 어떤 조치를 취했는지 설명하는 글을 작성해야지.
profile
오늘 달리면 내일 걸을 수 있다!

0개의 댓글