순간을 기록으로

[GCP] GCP를 이용해서 메이븐 프로젝트를 배포하기 본문

Development/Cloud

[GCP] GCP를 이용해서 메이븐 프로젝트를 배포하기

luminous13 2022. 5. 10. 22:23

안녕하세요. 이번 시간에는 GCP를 이용하여 메이븐 프로젝트를 배포하는 방법을 배워보겠습니다. 아래의 설명은 저의 프로젝트 명, 저의 깃허브 주소 등을 기준으로 설명되어 있으니 직접 해보신다면 본인의 프로젝트명, 본인 깃허브 등으로  진행해주시면 되겠습니다.

 

1. 메이븐 프로젝트를 jar파일로 만들기

  • 오른쪽 위 Maven 클릭하기
  • cpu -> Lifecycle -> deploy 더블 클릭하기
  • 왼쪽 target 디렉토리 안에 .jar 파일이 생성됩니다.
    • 만약 정상적으로 생성이 안된다면 프로젝트를 우클릭해서 reload from disk를 클릭하면 정상적으로 생성됩니다.

2.GCP 인스턴스에서 jar파일을 다운받을 수 있도록 Github에 올리기

jar 파일을 원격 저장소에 올린 상태

 

  • 로컬에 mkdir deployTest 디렉토리 생성
  • 디렉토리 안에 파일명.jar 저장하기
  • git init으로 deploy 디렉토리를 깃 관리 상태로 만든다.
  • github에서 디렉토리 deployTest를 생성한다.
  • 로컬 브랜치 이름이 'master'로 되어 있어서 git branch -M main 명령어를 입력하여 main으로 바꿔준다.
  • git add 파일명.jar
  • git commit -m '파일명.jar 추가'
  • git remote add origin <레포지토리 주소>로 로컬 디렉토리와 원격 디렉토리를 연결해준다.
  • git pushi origin main으로 로컬 커밋을 원격 저장소로 올려준다.

3.GCP 인스턴스에 접속해서 깃허브에 올린 jar파일을 내려받기

 

우선 GCP에서 아래와 같이 설정을 하고 VM인스턴스를 생성합니다.

  • 인스턴스명: cpu-instance-1
  • 리전: 서울
  • 머신: e2-micro
  • 부딩디스크: CentOS7
  • 방화벽: HTTP/HTTPS 허용체크

 

인스턴스가 생성된 모습

인스턴스가 생성되었습니다. 이제 SSH를 눌러 인스턴스에 접속합니다.

인스턴스에 접속했다면 레드햇 계열 리눅스 패키지(프로그램) 설치 관리 도구인 yum을 이용해서 java와 wget을 설치하겠습니다. 참고로 wget은 HTTP 통신 FTP 통신을 이용해 서버에서 파일이나 컨텐츠를 다운로드할 수 있게 해주는 소프트웨어입니다. wget를 설치함으로써 깃허브에 올렸던 파일을 서버에서 다운로드 받을 수 있습니다. 중간에 y/n가 나오면 y를 입력하고 엔터를 누릅니다.

 

  • sudo yum install wget
  • sudo yum install java

다운이 완료되면 깃허브에 올린 프로젝트에 들어가서 jar 파일 링크 주소를 복사합니다. 그리고 서버 터미널에 다음 명령어를 입력합니다.

  • wget <jar파일 링크 주소>

 

 

ls를 입력하면 jar 파일이 다운로드 받아진 것을 확인할 수 있습니다.

 

 

4.자바 명령어로 jar파일 실행시키기

jar 파일을 실행하기 위해 다음 명령어를 입력합니다. 

  • sudo java -jar 파일명.jar

명렁어를 입력하면 jar 파일이 실행되면서 애플리케이션이 실행됩니다. 웹브라우저에서 확인해보겠습니다.

 

서버에서 애플리케이션을 실행한 모습

 

5.웹브라우저에서 확인해보기

웹브라우저에서 확인하기 위해서는 외부IP가 필요합니다. 다시 GCP VM인스턴스로 돌아와 외부IP를 복사하고 브라우저에 입력합니다. 그리고 기다리면 정상적으로 요청에 대한 응답을 받을 수 있습니다.

 

 

추가로 서버에서 해당 요청을 처리하는데 어느 정도 시간이 걸리는지 확인할 수 있습니다. F12를 눌러 개발자 도구를 엽니다. 단순히 새로고침만 해도 요청이 다시 보내지고 걸린 시간을 확인할 수 있습니다.

 

MD5 해시연산을 100만번하는 url로 요청을 보내면 대략 800ms(0.8초)가 나오는 것을 확인할 수 있습니다.

 

 

반면에 단순히 문자열만 반환하는 url로 요청을 보내면  대략 38ms가 걸리는 것을 알 수 있습니다.

 

 

즉 MD5 해시연산 100만 번은 (854-38) = 816ms가 걸리는 것을 확인할 수 있습니다.

 

오늘은  GCP에 cpu-bound 애플리케이션을 배포하는 방법과 연산이 많을 경우 처리하는 데 얼마나 시간이 걸리는지 확인하는 방법에 대해 알아봤습니다. 다음 시간에는 애플리케이션 성능 측정 도구(Artillery)를 이용하여 위 애플리케이션의 성능을 측정해 보겠습니다.

Comments