티스토리 뷰

728x90

호스팅 업체는 다양하게 있지만 EC2에서 Vlutr를 사용하게 된 가장 큰 이유는 

서버비/비용이 저렴하기 때문이다. 

 

 

 

Vultr이라는 비교적 저렴한 가상 호스팅 사이트를 이용하여 

토이프로젝트 백엔드 서버를 구축했다.

vultr로 백엔드 서버를 구축하면서 공부한 내용과 나의 실수들을 작성하며 쉽게 복귀하고,

누군가에게 도움이 되었으면 하는 마음으로 작성해 본다.

 

 

이번 포스팅은 다음과 같은 목차로 진행한다.

🌠 목차
✅ Vultr 이용하기
    ㄴ 방화벽 설정
    ㄴ 가비아 dns 등록
    ㄴ 백엔드 배포

 

들어가기 전 나의 환경구성 정보

1. 맥북 프로 m1

2. JAVA 11

3. Querydsl, JPA

4. Springboot

5. gradle 3.x.x

6. 돈 없는 거지 

 

 

Vultr로 서버 생성하기


https://www.vultr.com/promo/try250/?service=try250&promo=FLYVULTR250&utm_source=google-apac-brand&utm_medium=paidmedia&obility_id=120041727576&utm_adgroup=Branded_Keywords&utm_campaign=Vultr_Branded_-_APAC_-_South_Korea_-_Search&utm_term=vultr&utm_content=590845138007&gclid=CjwKCAjwvpCkBhB4EiwAujULMpmKYkX6OxxQxioH7ZYWM8EQFFTI1qC_Ma43UV50iBOCfCVBn1_M2hoCL5MQAvD_BwE 

 

SSD VPS Servers, Cloud Servers and Cloud Hosting

Vultr Global Cloud Hosting - Brilliantly Fast SSD VPS Cloud Servers. 100% KVM Virtualization

www.vultr.com

 

vultr 사이트에 가입하면 프로모션으로 한 달 동안 250달러 정도의 서버 비용을 제공해 준다.

 

 

Vultr로 인스턴스 

이 글을 보는 독자들이 어느 정도 지식이 있는지 모르기에 최대한 풀어서 설명한다.

 

인스턴스란 가상의 서버를 말한다.

나의 노트북에서 스프링을 띄울 때 localhost:8080으로 접근하면 내가 개발한 페이지를 볼 수 있는 것처럼 

인스턴스(미국에 있는 가상의 노트북)를 돈을 지불하고 원격으로 사용한다고 이해하자.

인스턴스에서 스프링부트 접근 시 localhost:8080로 실행이 되지만,

실제 외부에서 내 스프링부트 개발 페이지로 접근할  인스턴스의 IP 혹은 도메인으로 접근할 수 있다.

 

Vultr로 인스턴스  가격 및 생성하기

cloud compute를 이용하자

가장 저렴하다.

젤 우측에 있는 Regular Performance를 선택하자 

다양한 서버 Location이 있지만 한국으로 선택하자

Server Image는 어떤 리눅스 버전으로 구성할 것이냐는 뜻이다.

 

나의 경우는 Ubuntu를 이용했다. 

23년 6월 기준   22.10 x64 버전을 선택했다.

여기서 25GB SSD를 선택하면 

인스턴스의 미용이 6달러 정도로 배포할 수 있다.

 

 

생성된 인스턴스

대략 2분 정도 기다리면 Running 상태로 변경된다.

 

 

1. Label 이름을 알기 쉽게 변경할 수 있다.

2 IP 주소를 이용하여 터미널에서 ssh root@IP번호로 접근할 수 있다.

   ㄴ ex) ssh root@192.1123.123.123

 

만약 ssh 접근이 안된다면 

방화벽 설정을 해줘야 한다.

 

 

방화벽 설정

1. settings로 넘어와서 FireWall을 클릭하여 방화벽 설정을 진행하자

2. Protocol SSH에서 MyIP를 클릭해서 현재 IP만 SSH에 접근할 수 있도록 한다.

3. 0.0.0.0/0은 오픈이니 설정 x 

4. wifi가 변경되면 IP가 변경되니, 매번 설정해 주거나 자주 가는 카페의 IP를 등록해 두자.

 

 

 

SSH 접근하여 방화벽 설정하기 및 스프링부트 실행 


방화벽 설정 

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables-save | sudo tee /etc/iptables/rules.v4

root 계정으로 접근한 뒤

다음 명령어를 이용하여 80, 8080, 443 포트를 모두 열어준다.

 

IP:8080으로 스프링 부트 화면 확인 

ex) 192.168.123.123:8080 

 

* 여기서 내가 삽질한 부분

Settings 보면 Reverse DNS가 있는데 이 도메인이 Vultr에서 제공해 주는 무료 도메인인 줄 알고 

hellomyteam.vultr.com:8080으로 계속 접근을 시도했는데 안 됐음..;;;

이 부분에 대해선 나도 잘 모르므로 아는 사람은 댓글 달아주시면 감사하겠습니다..

그냥 IP로 접근하면 잘 된다.

 

스프링부트 띄우기

ssh로 접근해서 

다음과 같은 절차를 따른다.

 

0. sudo apt update
1. java -version
2. git -v

나의 경우는 java -11 버전을 이용했다.

 

스프링부트 깃 클론하기

 

다음과 같이 명령어를 치자 git clone -b [클론 할 브런치명] --single-branch [깃주소]

ex) git clone -b releaseTest --single-branch https://github.com/test/test.git

 

그러고 git ID와 git PW를 입력하면 되는데 

여기서 ID는 git Id를 입력하면 되지만, PW는 repository의 토큰 값을 입력해야 한다!

 

잘 pull 받았다면 다음 절차를 따르도록 한다.

cd 레포지토리명

gradle 빌드

./gradlew build

 

*  Querydsl을 이용하여 개발했다면 컴파일하고 gradle 빌드 진행

./gradlew clean compileQuerydsl

 

compileQuery시 오류가 나면 다음 명령어를 입력한다.

chmod +x ./gradlew

 

빌드된 폴더로 이동 

cd build/lib

 

생성된 jar 파일 확인 

 

jar 파일 배포

nohup java -jar hellomyteam-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev &

1. 나의 경우는 nohup을 이용해서 배포했고,

2. active =dev로 개발 서버 배포를 진행했다. active는 옵션이다.

 

tail -f nohub으로 빌드 상태 확인

tail -f nohub

 

여기까지 잘 따라왔다면 스프링부트는 

내 IP:8080로 접근할 수 있음

ex) 192.168.123.123:8080

ex) 192.168.123.123:8080/login.jsp

 

DNS 설정 

192.168.123.123:8080/로 접근하기 싫다면 

1. Network 탭에서 DNS를 클릭하여 가비아에서 구매한 도메인을 등록하면 된다.

2. 가비아에서 NS 레코드를 설정해야 줘야 하는데 값은 Vultr에서 제공하는 ns 레코드 이름을 넣으면 된다.

 

* 해당 부분 잘 안되면 구글링 해보면 바로 나옵니다.

 

 

 

 

내용이 잘못되었거나, 도움이 되었다면 댓글 부탁드립니다.

포스팅에 큰 힘이 됩니다!

 

728x90
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday