지난 포스팅에 이어, 이번 포스팅에서는 실제 생성한 인스턴스를 바탕으로 우분투 콘솔에 접속하고 빌드를 통해 서버를 띄우고 접속해보도록 하자.
EC2 Ubuntu 콘솔 접속
지난 포스팅에서 인스턴스를 생성할 때 함께 생성했던 "키 페어"를 잘 보관하는 것이 중요하다고 했었는데, 해당 파일을 보관해둔 폴더로 이동해주자.
(1) chmod 400 '키페어파일'
(2) ssh -i '키페어파일' ubuntu@인스턴스 공개 IP 주소 명령어를 통해 우분투 콘솔 접속
(3) Ubuntu Console에 git, jdk , mysql server (필요한 경우) 설치
// apt-get 업데이트
sudo apt-get update
// git 설치 및 확인
sudo apt-get install get
sudo apt install git
git --version
// Java (jdk 설치)
sudo apt-get install openjdk-11-jdk
java --version
// Mysql
sudo apt-get install mysql-server
mysql --version
(4) Github에서 SSH KEY 생성하기
cd ~/.ssh
ssh-keygen -t rsa -C Github계정 메일
위 명령어를 통해 .ssh 디렉토리에서 키페어를 생성하게 되고, id_res.pub 파일이 생성된다.
이후 cat id_rsa.pub 명령어를 통해 파일 내용을 출력한 후에 해당 내용을 깃허브 ssh에 저장하도록 하자.
github --> setting --> SSH and GPG Keys 탭으로 이동 후 new SSH Key 버튼 클릭
이후 새로운 SSH 키를 생성하여 복사했던 id_rsa.pub 값을 넣어주면 된다.
(5) git clone 하기
깃허브 레포지토리로 이동 후 code 버튼 --> SSH 탭을 누르고 나온 주소를 복사하자.
이 복사한 값을 EC2에 접속한 터미널에서 git clone 할 디렉토리로 이동후 클론을 진행하자.
파일 빌드 및 실행시키기
(1) ./gradlew clean build
./gradlew clean build 명령어를 통해 프로젝트 파일을 빌드한다.
(2) 빌드 파일 생성 확인
빌드가 성공적으로 끝나면 build -> libs 디렉토리가 새롭게 생기고 해당 디렉토리로 이동해서 ls 명령어를 입력해보면,
jar 파일이 생성된 것을 확인할 수 있다.
(3) 빌드 파일 실행
java -jar [jar 파일] 명령어를 입력하면 해당 빌드 파일을 실행하여 우리의 프로젝트 서버가 실행되게 된다.
참고 : 백그라운드 실행
nohub java -jar aws-0.0.1-SNAPSHOT.jar&
nohub 명령어 뒤에 &를 붙이면 백그라운드에서 실행한다는 의미로 EC2 콘솔 접속을 끊더라도 실행 파일을 계속 실행하라는 명령이다.
명령어를 실행시켜도 스프링 부트가 실행되고 있다는 로그가 나오지 않아 실행되는지 잘 모르겠다면 우선 ls 명령어로 libs 디렉토리에
nohub.out 파일이 생성되었는지 확인하고
cat nohub.out
명령어로 nohub.out 파일을 출력하면 로그가 나오는 것을 확인할 수 있다.
이후, 현재 실행된 jar 파일을 끄고 싶다면
jobs 명령어를 통해 실행중인 작업을 확인하고, 포트를 통해 작업중인 PID를 따와서 Kill 명령어로 작업을 종료해주면 된다.
브라우저 URL로 접속하기
다음과 같이 접속이 되는 것을 확인할 수 있다.
- 본인은 첫 AWS 인스턴스 생성 시 리전을 서울로 설정하지 않아 호스트 주소가 다름
출처
ec2 스프링 빌드 시 멈춤 현상 해결법
스프링 빌드를 하는데 빌드 시간이 1초씩 늘어나는게 아니라 10초 이상씩 늘고, 빌드도 안되길래 여러번 껐다 켰다 반복해서 빌드를 해봤는데 소용없었다 free tier로 ec2를 이용하면 ram이 1기가라
jjong2.tistory.com
SpringBoot 프로젝트 EC2 배포하기
깃헙에 있는 프로젝트를 AWS EC2에 git clone을 통해 내려받아 jar 파일 빌드를 해보겠습니다.(EC2 인스턴스는 우분투로 진행합니다. 또한 따로 배포 시스템을 구축하지 않고 수동으로 배포하는것만
velog.io