Side-project : AWS EC2에 Spring project 배포하기(2) - SSH에 접속해 프로젝트 배포하기

우진·2023년 6월 12일
0
post-thumbnail

👾 AWS EC2

https://aws.amazon.com/ko/ec2/?nc2=h_ql_prod_fs_ec2

들어가기 앞서 현 프로젝트는 jsp가 아닌 thymeleaf, maven이 아닌 gradle 빌드툴을 사용하고 있으니 참고하시길.


(1) 📁 Install Git

이전 포스팅에서 생성한 EC2 ubuntu 서버에 접속하기 위해 git bash를 사용할 것이다. 다운 받아주자.
https://git-scm.com/downloads


(2) 📁 Connect to an EC2 instance remotely

EC2에 인스턴스를 생성할 때 다운받은 .pem 파일이 필요하다.

파일이 있는 디렉토리로 이동해 마우스 우클릭 > Git Bash Here를 클릭한다. 창이 뜨면 아래와 같이 입력한다.

$ ssh -i {키 페어 이름}.pem ubuntu@{탄력적 IP}

접속이 거부된다면 보안 그룹의 인바운드 규칙을 다시 살펴보도록 하자. 종종 내 IP가 변경되는 경우가 있다.


위와 같이 뜨면 접속에 성공한 거다!


(3) 📁 Install Java

$ sudo apt update
$ sudo apt install openjdk-{원하는 java 버전}-jdk
$ java -version

마지막 명령으로 설치된 버전을 확인하고 넘어간다.


(4) 📁 Clone Git Project

$ sudo git clone {Repository url}.git
$ ls

마지막 명령으로 레포가 잘 클론됐는지 확인한다. ls 명령어는 해당 디렉토리 경로에 있는 파일 내역을 보여준다.


(5) 📁 Add Properties File

진행에 앞서 application.properties 파일로 설정정보를 관리하고 있는지 확인해야한다. .yml 파일을 사용할 수도 있고, 내 프로젝트와 구성이 다를 수도 있다. 아래를 참고.

내 github에는 application.properties 파일만 올라가 있다. 나머지 설정파일들은 public repo에 올리면 안되는 민감정보가 들어가 있어 .gitignore 처리해줬다.

< application.properties >

#IMPORT
#다른 설정파일 임포트
spring.profiles.include=file, aws

#FILE-UPLOAD
spring.servlet.multipart.maxFileSize=10MB
spring.servlet.multipart.maxRequestSize=10MB

#JPA
spring.jpa.properties.hibernate.show_sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.use_sql_comments=true
logging.level.org.hibernate.type.descriptor.sql=trace

< .gitignore >

HELP.md
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

### STS ###
...

### IntelliJ IDEA ###
application-aws.properties
application-file.properties

.idea
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/

### NetBeans ###
...

### VS Code ###
...

당연하게도 public repo를 클론한 EC2 인스턴스에는 application-aws.properties
, application-file.properties 파일이 들어있지 않은 상태이다. 이대로 빌드를 하고 실행해도 제대로 실행되지 않을 것이다. 이제 두 파일을 수동으로 추가해줘야한다.

cd 명령어로 해당 디렉토리로 이동해준다.

$ cd {repository 이름}/{project 이름}/src/main/resources
$ vim {properties 파일 이름}.properties
  1. vim 명령어로 파일을 처음 생성하면 아무 내용이 없는 파일이 열릴 것이다.
  2. 여기에 해당 properties 파일의 내용을 복사/붙여넣기 해준다.
  3. 이후 esc 를 눌러 편집에서 빠져나온 다음,
  4. :wq (저장, 종료)를 입력하고 enter를 누르면 끝!

위 과정을 필요한 만큼 반복해준다. 모두 끝났다면 ls 명령어로 해당 디렉토리에 파일이 잘 들어가 있는지 확인한다.


(6) 📁 Build And Run Project

일반적으로 {repository 이름}/{project 이름}/ 경로에 grdalew 파일이 있을 것이다. 해당 디렉토리로 이동한다.

  • cd {경로}/: 해당 경로로 이동
  • cd ..: 상위 폴더로 이동


이전 단계에서 바로 진행중이라면 위 이미지를 참고해 경로를 옮긴다.

// Build
$ sudo chmod +x gradlew
$ ./gradlew clean build -x test

// Run
$ find ./* -name "*jar"
$ nohup java -jar {jar 파일 이름} &

// Check
$ curl http://localhost:8080

Run 단계에서 find ./* -name "*jar" 를 실행하면 아래와 같이 뜬다. 이중 실행 jar 파일은 plain이 붙지 않은 파일이다.

무사히 실행됐다면 curl 명령어로 프로젝트 창을 켜보자.

위처럼 작성한 화면 HTML이 출력되면 끝이다! git bash 를 종료시키고 웹에서 http://{탄력적 ip}:8080 로 이동해보자.


(7) 📁 Use

profile
백 개발을 시작한 응애개발자

0개의 댓글