AWS

[AWS] aws에 프로젝트 배포 깔끔하게! 2탄 - 프로젝트 빌드해서 EC2에 올리고 실행

재원쓰 2023. 2. 27. 12:56

📖  2탄이다. 이번에는 본격적으로 프로젝트를 EC2 인스턴스에 올려서 실행시키고, 여기에다가 API 요청하기까지 해볼 것이다.

 

1. EC2에 접속한다.

 

2. 첫 인스턴스 실행 시에는 우분투 업데이트와 자바 설치를 진행한다.

$ sudo apt update
$ apt list openjdk-17*
$ sudo apt install openjdk-17*

(버전확인)
$ java -version

 

3. 스프링부트 프로젝트를 빌드한다. 우측 Gradle 탭에서 Build를 더블클릭하면 빌드가 진행되며, [build] > [libs] 폴더 안에 .jar 파일이 있는데, 이걸 인스턴스에 올리면 된다.

 

4. 빌드 파일 업로드한다. 파일질라를 주로 쓴다던데 나는 하란대로 해도 안먹히니 터미널에서 진행할 것이다.

EC2 말고 내 로컬 터미널에서 진행한다.

$ scp -i [pem파일경로] [업로드할 파일 이름] [ec2-user계정명]@[ec2 instance의 public DNS]:~/[경로]

ex)
scp -i 
/Users/jaewonee/Desktop/ola.pem 
/Users/jaewonee/Desktop/sparta/06_project/final-project/back/build/libs/sparta-0.0.1-SNAPSHOT.jar 
ubuntu@ec2-13-124-10-148.ap-northeast-2.compute.amazonaws.com:/home/ubuntu

scp -i sparta-ola.pem sparta/06_project/final-project/back/build/libs/sparta-0.0.1-SNAPSHOT.jar ubuntu@ec2-3-36-247-109.ap-northeast-2.compute.amazonaws.com:/home/ubuntu

 

5. 우분투에 있는 빌드파일을 실행한다. 그럼 우리가 익히 봤던 서버실행할 때 콘솔이 뜰것이다.

java -jar [빌드파일명]

예시)
java -jar sparta-0.0.1-SNAPSHOT.jar

 

6. 주소창에 DNS 주소와 8080 포트를 입력해 접속을 테스트해본다. 아래 스샷대로 나오면 연결이 된것이다. 

참고로 연결이 안된다면 보안그룹에서 8080포트를 열어주지 않은 것이다.

7. 하지만 터미널을 종료하면 서버가 꺼진다. 이건 명령어에 nohup을 추가하여 해결하면 된다.

nohup java -jar build/libs/demo-0.0.1-SNAPSHOT.jar &

 

8. 프로세스 종료는 kill을 사용하면 된다.

sudo kill -9 {PID}

- 만약 PID를 모른다면?

ps -ef | grep {실행시켰던 파일이름}

예시
ps -ef | grep java


참고

https://velog.io/@jonghyun3668/SpringBoot-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-EC2-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0#3-1-%EA%B9%83-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

 

SpringBoot 프로젝트 EC2 배포하기

깃헙에 있는 프로젝트를 AWS EC2에 git clone을 통해 내려받아 jar 파일 빌드를 해보겠습니다.(EC2 인스턴스는 우분투로 진행합니다. 또한 따로 배포 시스템을 구축하지 않고 수동으로 배포하는것만

velog.io