archive

스프링 프로젝트 EC2에 배포, 포트포워딩, 도메인 적용 본문

STUDY/Spring

스프링 프로젝트 EC2에 배포, 포트포워딩, 도메인 적용

seonyounggg 2021. 2. 17. 14:30

스프링 프로젝트를 배포하기 위해서는 실행 파일(*.jar)이 필요하다.

IntelliJ기준 우측 Gradle탭에서 위 사진의 build를 선택하면

Gradle이 알아서 빌드를 시작하여 jar 파일을 생성한다.

build/libs 하위에 파일이 생성되었다.

이 파일을 준비된 서버에 옮겨준다. (filezilla, winSCP 등 이용)

 

jar파일을 실행하기 위해 버전에 맞는 open jdk를 설치해줘야 한다.

sudo apt-get update
sudo apt-get install openjdk-8-jdk
java -version

그 후 실행해보면 아래와 같이 서버가 돌아간다.

이 때 웹으로 접속하기 위해서

HTTP 기본 포트인 80번, 현재 웹 서버가 돌고 있는 8080번 포트를 열어줘야한다.

인스턴스의 인바운드 규칙을 아래와 같이 수정해준다.

 

설정해준 후 8080포트로 접속해보면 해당 서버에 잘 배포된 것을 확인할 수 있다.

서버를 종료할때는 Ctrl + C 를 누르면 된다.

 

URL의 8080을 없애기 위해서는

http의 기본 포트인 80포트로 요청이 들어왔을 때 8080포트로 포트포워딩해줘야한다.

 

리눅스 자체에서 제공되는 포트포워딩 기능을 사용해보자.

서버를 중단시키고 아래 명령어를 입력한다.

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

다시 ip주소로 접속을 해보면 8080을 생략하여도 동일하게 접속이 잘 되는 것을 확인할 수 있다.

 

현재 상태에서는 SSH 연결을 끊으면 서버도 함께 종료된다.

SSH접속을 끊어도 서버가 계속 돌도록 설정해보자.

nohup java -jar myselectshop-0.0.1-SNAPSHOT.jar &

기존 명령어 앞 뒤에 위와 같이 붙이고 엔터를 치면

nohup: ignoring input and appending output to 'nohup.out'

위와 같은 문구가 프롬프트에 뜬다.

다시 한 번 엔터를 쳐주면 서버가 돌아간다.

 

SSH 연결을 끊어도 서버가 항상 돌아가는 것을 확인할 수 있다.

종료하려면, 해당 프로세스의 PID를 찾아서 kill하면 된다.

아래 링크의 방법과 동일하다.

 

Port 8080 was already in use 오류 해결법 (mac OS)

IntelliJ를 기준으로 tomcat 서버는 기본적으로 8080포트 위에서 작동한다. 그런데 RUN시킨 서버를 정상적으로 종료되지 않은 상태에서 프로그램이 종료된 경우, 프로그램 상에서 서버를 STOP시킬 수도

seonyounggg.tistory.com

다음으로 도메인을 구매하여서 적용해보자.

DNS설정 > 레코드 설정에서 아래와 같이 작성해준다.

설정한 도메인으로 접근이 가능하게 된다. (적용되는 데 약간 시간이 걸린다.)

 

Comments