이전에 AWS 서버 - Spring Boot 띄우기 (1) 에서 인스턴스를 생성했죠!
생성한 인스턴스 EC2에 접속을 해보겠습니다.
참고로
.pem 파일은 복원도 안되고, 재 다운도 안되니 소중히 다뤄주세요
$ chmod 400 {.pem}
$ chmod 400 privateKey.pem
$ ssh -i "{.pem}" {유저이름}@{퍼블릭 DNS | 퍼블릭 IP}
$ ssh -i "private.pem" ubuntu@ec2-0-00-000-000.ap-northeast-2.compute.amazonaws.com
$ ssh -i "private.pem" ubuntu@0.00.000.000
AWS에서 제공하는 가상 서버(EC2)에 접속을 하였습니다.
자바 버전은 Spring boot 빌드 버전에 맞게 다운 받아주시면 됩니다.
Spring boot Project 안에 .gradle 에서 버전을 확인하세요.
저는 Spring boot 3.0 버전 이상을 사용해서 자바 17을 다운하겠습니다.
보통 2. 버전은 자바 8이나 11로 다운하시면 됩니다.
$ sudo apt-get update
$ sudo apt-get install openjdk-17-jdk
다시 개발 환경(Window)으로 돌아와서 .jar 파일을 생성해줍니다.
저는 인텔리제이를 사용해서 생성하겠습니다.
gradle 터미널을 열어서 boot jar 실행합니다.
아래와 같이 하시면 됩니다.
터미널 클릭!
Run Anything 검색창에 bootjar 검색 후 실행
좌측 프로젝트 폴더 build -> libs -> .jar 파일이 생성됩니다.
.jar 파일을 복사해서 EC2로 접속이 가능한 .pem 파일이 있는 폴더로 이동합니다.
git bash를 열어서 아래 명령어를 입력합니다.
$ scp -i ms.pem -P 22 {.jar} ubuntu@{ip}:{dir}
$ scp -i ms.pem -P 22 Example-0.0.1-SNAPSHOT.jar ubuntu@{ip}:{dir}
EC2 서버에서 .jar를 실행합니다.
( 실행 명령어는 동일합니다.) -> java -jar {???-0.0.1-SNAPSHOT}.jar
정상적으로 실행되는 것을 확인할 수 있습니다.
TIP : FileZilla를 다운 받아서 GUI 환경에서도 옮길 수 있습니다!
사실 .jar는 상시 구동되어야 서비스를 할 수 있겠죠?
그래서 .jar를 백그라운드로 실행해보겠습니다.
( EC2 우분투 접속 종료되어도 계속 실행된다. )
$ nohup java -jar {filename}.jar &
본래 두 개의 명령은 따로 실행이 가능하지만, 보통 조합으로 많이 사용한다.
$ ps -ef (| grep 프로그램명)
$ kill -9 <PID(프로세스 아이디)>
다음은 RDS 연동으로 가보자.