설치가 완료되었다면 인스턴스의 Java 버전을 8로 변경해야합니다. 다음 명령어를 입력 후 인스턴스에 적용할 java 버전의 번호를 입력합니다.
sudo /usr/sbin/alternatives --config java
자바 버전 선택
필자의 경우 방금 설치한 java 버전만 있고, Selelction이 1로 지정되어 있으므로 입력창에 1을 입력합니다.
설정이 완료되면 서버의 java 버전을 확인합니다.
java -version
자바 버전 확인
설정한 Java 버전이 조회된다면 스프링 부트 jar 배포에 대한 기본적인 준비는 끝났습니다.이제 배포를 해봅시다!
4. Git 설치 및 Clone
프로젝트 파일이나 빌드된 파일을 AWS 서버로 전송 해야합니다. 이 과정에 대해 채택할 수 있는 방법은 FTP가 될수도 있지만 필자의 경우 Git Clone을 통해 프로젝트 파일을 AWS 서버에서 받은 후 서버 내에서 빌드를 하는 방식을 채택했습니다.
다음 명령어를 입력해 AWS 서버에 git을 설치 및 확인합니다.
sudo yum install git // git 설치
git --version //git 설치(버전) 확인
git 설치버전 확인
설치가 완료되면 clone 될 디렉토리를 생성한다. 필자의 경우 홈 디렉토리 기준으로 "app" 폴더를 생성하여 그 안에 git에서 clone한 소스를 넣겠습니다.
mkdir ~/app //app 폴더생성
폴더 생성이 완료되면 본인의 깃허브 웹페이지에서 주소를 복사합니다.
Clone할 url 복사
AWS 서버에 다음 명령을 입력하여 clone을 진행합니다.
git clone 복사한 주소
clone이 정상적으로 완료되면 app 폴더 안에 프로젝트 소스들이 들어갔을겁니다. 이제 배포를 진행할 차례입니다.
5. 배포
프로젝트 경로로 들어가 다음 명령어를 입력해 jar 빌드합니다.
./gradlew bootjar
build가 완료되면 자동적으로 build/libs 폴더 내에 "프로젝트 명/버전.jar" 형식으로 파일이 생성됩니다. 배포는 간단합니다. 이 파일을 실행시켜주면 됩니다. 스프링 부트는 jar 파일 빌드 시 tomcat 서버가 내포된 형태로 빌드되기 때문에 별도의 tomcat 서버가 필요없습니다.
java -jar jar파일 명
jar 파일 실행
배포가 완료되었습니다. 배포된 서버로 접속하기 위해 '퍼블릭 DNS:포트'를 입력해봅시다.
퍼블릭 DNS는 AWS 인스턴스 상세정보로 들어가면 확인할 수 있으며 포트는 배포 로그의 마지막 부분에서 확인할 수 있습니다.
퍼블릭 DNS
짜잔~ 다음과 같이 정상적으로 접속이 되었습니다.
배포된 어플리케이션 접속 성공 화면
만약 접속이 되지 않으신다면 AWS내에 설정한 보안 그룹에 해당 포트가 오픈되어있는지 확인해봅시다. 필자의 경우 해당 포트가 열려있지 않아 최초에 접속이 되지 않았습니다.
인스턴스 세부정보 > 보안 > 인바운드 규칙에 8090포트를 추가해줍시다.인바운드 규칙 추가
6. 마치며...
Git 연동 및 클론, 빌드, AWS 배포를 해보았습니다. 되게 간소하게(?) 진행했지만 AWS 서버에 배포를 해본건 처음이라 감회가 새로웠다. 다음 목표는 Jenkins를 연동하여 git commit이 있을 때 자동으로 AWS 서버에 수정된 코드가 배포되도록 하는 것이다. 이 작업이 끝나면 본격적인 서버 로직을 작업할것이다