저번 글의 경우 RDS를 생성하였고 이제 SpringBoot에 연결 후 EC2를 사용해 배포해보도록 하자.
참고로 localhost자리에 엔드포인트 값만 넣어주면 바로 연동이 된다. 프로젝트에서 RDS가 연동이 잘 된 것을 확인했다면 바로 EC2에 배포를 시작해보자. RDS를 만드는 것보다 훨씬 간단하기 때문에 차근차근 따라온다면 어려울 게 없다.
위 준비사항이 완료되었다면 AWS EC2 인스턴스를 생성하자, AWS EC2는 가상의 컴퓨터라고 생각을 하면서 진행하면 이해하기 훨씬 도움될 것이다.
AWS -> EC2로 들어가 인스턴스 시작을 눌러주면
위와 같이 인스턴스를 생성하는 페이지로 이동한다. 이름은 자신이 원하는 대로, 우리는 Amazon Linux를 사용한다 -> 프리티어도 지원 가능!
인스턴스 유형은 기본값으로 두고 새 키 페어 생성을 해서 자신이 잘 보관해주자! 매우 중요한 파일이기 때문에 사라지면 곤란하다..
보안 그룹은 저번 편에서 우리가 미리 생성해두었기 때문에 생성해두었던 보안 그룹을 선택하도록 하자. 그 외에는 기본값으로 두고 인스턴스 생성!
인스턴스 상태가 위와 같이 실행 중이면 정상적으로 실행되고 있는 것이다. 이제 우리는 터미널에서 생성한 AWS EC2 인스턴스로 접속해줄 것이다. (약간 컴퓨터에 접속한다고 생각하자)
// 권한을 pem 파일에 부여
$ chmod 600 ***.pem
// ssh 접속하기
$ ssh -i /Users/유저명/Desktop/testserver.pem ec2-user@{할당받은 public IP 주소}
경로의 경우 mac이라면 pem 파일을 option+cmd+c 하면 경로 복사가 되니 참고하도록 하자.
정상적으로 접속했을 시 터미널에 위와 같이 뜰 것이고 처음이기 때문에 가상의 컴퓨터에 git과 java를 설치하도록 하자.
$ sudo yum install -y git
$ git --version
자신이 진행한 프로젝트에 jdk 버전을 맞춰서 설치해주도록 하자
$ wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm
$ sudo rpm -ivh jdk-17_linux-x64_bin.rpm
$ sudo alternatives --config java
$ java -version
완료되었다면 push 해둔 프로젝트를 가져와야 하기 때문에
$ mkdir {아무거나 폴더명}
$ cd {만든 폴더}
$ git clone {git 주소}
새로만든 폴더에 자신의 프로젝트를 clone 해준다.
$ cd {clone한 프로젝트로 이동}
$ sudo chmod 777./gradlew
$./gradlew build
다음 clone한 프로젝트 폴더로 이동하여 빌드 실행 권한을 주고 프로젝트를 빌드 한다.
$ cd build
$ cd libs
$ java -jar 자신의 프로젝트. jar
위와같이 libs 폴더로 이동한 다음 jar 파일을 실행해주면 서버가 가동되기때문에 배포까지 완료된다.
$ nohup java -jar 자신의 프로젝트.jar &
이 부분에서 nohup으로 실행해주면 프로세스를 죽이지 않는한 컴퓨터를 끄거나 터미널을 닫거나 해도 꺼지지 않는다.
이때 서버를 종료하기 위해서는
$ ps -ef
커맨드를 통하여 프로세스를 조회한 후 백그라운드에서 돌아가고 있는 jar파일의 pid 번호를 확인하고
$ kill -9 {pid번호}
로 종료한다.