IT 프로그래밍-Server

AWS를 이용하여 백엔드 서버 배포하기[4/4]

godsangin 2020. 2. 28. 19:11
반응형

자 오늘은 마지막으로 Git으로부터 AWS EC2 레포지토리로 받아온 .jar파일을 영구적으로 실행하고, 내 Rest API가 정상적으로 작동중인지 확인하는 실습을 진행해 보도록 하겠습니다.

 

자, 첫번째로 gradle을 통해 빌드한 .jar파일이 있는 /build/libs/ 디렉토리로 이동합니다.

리눅스 명령어를 알고 계신다면 cd, ls명령어를 다들 알고 계실 것입니다.

이제 .jar파일을 실행시키기 위해서 nohup이라는 명령어를 사용할 것입니다. 

nohup은 프로그램을 사용자가 터미널을 종료하더라도 영구적으로 실행시키고 해당 로그를 새로운 파일로 작성할 수 있는 명령어입니다.

nohup에 대해서는 아래 블로그를 참고해 주시길 바랍니다.

https://jasontody.tistory.com/113

 

nohup 사용법, nohup 명령어

이럴 때 nohup을 사용하면 사용자가 터미널을 종료해도 프로그램이 계속 살아있게 된다. 1. Nohup * 정의 : 리눅스, 유닉스에서 쉘스크립트파일(*.sh)을 데몬형태로 실행시키는 프로그램 * Nohup은 리눅스에서 쉘..

jasontody.tistory.com

위의 그림처럼 nohup java -jar [빌드된 프로젝트 이름] & 명령어를 입력해 주시면 됩니다.

&를 입력하는 이유는 이 명령을 백그라운드로 실행시키기 위함입니다. 아마도 명령이 완료되면 터미널이 해당 명령에 대한 프로세스로 이동하면서 입력이 불가능한 상태가 될 것입니다. Ctrl + C 로 빠져나오도록 합시다.

다음으로 내 프로세스가 정상적으로 실행되었는지 확인할 것입니다.

ps -ef 명령어를 실행합니다. 결과값으로 다음과 같은 현재 실행중인 프로세스 목록이 쭉~나올 것입니다. 내가 Ctrl + C를 통해 중지했던 명령 또한 nohup + &명령어를 통하여 백그라운드에서 실행중인 것을 알 수 있습니다. 

자 그럼 이제 실행된 서버가 제대로 API호출을 수행하는지 확인해볼까요 ??

일반 URL로 접근해보겠습니다. 

YourAWSendpoint:8080/YourAPICall 로 URL을 입력해보겠습니다.

응답을 하지 않는 현상이 발생하였습니다.. 왜일까요?

그것은 바로 나의 EC2 레포지토리의 보안그룹 설정 문제 때문입니다.(문제가 발생하지 않는 경우는 모든 트레픽에서 접근을 허용한 경우입니다.)

 

AWS의 EC2 레포지토리로 이동하여 보안그룹 탭으로 들어갑니다.

그리고 해당 보안그룹의 인바운드 규칙을 위와 같이 편집합니다.(모든 트레픽 - 위치 무관)

 

보안그룹 수정을 완료하고 나니 API호출이 정상적으로 수행되는 것을 확인할 수 있습니다.

 

이제 AWS를 통한 Spring boot Rest API실습은 마무리하도록 하겠습니다. 간단한 데이터 저장, 요청에 대한 서버가 필요하다면 이번 실습에서 진행하였던 방식으로 서버를 연동해도 좋을 것이라고 생각합니다. 제가 다음으로 서버에 대해서 공부할 부분은 트레픽이나 동시접속 처리에 관한 내용입니다. 그럼 다음시간에도 유익한 정보를 들고 만나뵙도록 하겠습니다. 감사합니다.