self-hosted

집에서 서비스를 오픈 해보자 (3) | dns 연결하기

pepega 2024. 7. 9. 19:50

집에서 서비스를 오픈 해보자 (1) | 개요
집에서 서비스를 오픈 해보자 (2) | 서버 세팅하기
집에서 서비스를 오픈 해보자 (3) | dns 연결하기
집에서 서비스를 오픈 해보자 (4) | CI/CD 연동하기
집에서 서비스를 오픈 해보자 (5) | upptime 모니터링, status 페이지 추가하기
 
이전 포스팅에서는
Docker와 NPM(Nginx Proxy Manger)를 설치하여
실행 테스트를 진행해봤습니다.
 
이번 포스팅에서는
let's encrypt, free dns를 사용하여
서비스 -> nginx로 reverse proxy를 거는
npm 세팅을 하겠습니다.
 
 

0. 사전 작업

서버에 service container가 띄워져있어야 합니다.
포스팅 주제와는 조금 거리가 있으므로 넘어갔습니다.
 
필요한 경우
https://github.com/GHGHGHKO/klassic-quote-api/blob/master/docker-compose.yml
이 링크에 있는 docker-compose.yml 파일을 사용해도 됩니다.
 
 

1. free dns 발급받기

1-1. 아이피 주소 확인하기

네이버에 접속하여
내 아이피 주소라고 검색합니다.

우리집

이 주소를 활용할 계획입니다.
 

1-2. 아이피 주소로 subdomain 발급받기

https://freedns.afraid.org/
이 웹사이트에 회원가입을 합니다.
 

 
 
회원가입 후 Subdomains를 클릭합니다.
 

Add 버튼을 클릭합니다.
 

원하는 Subdomain이름을 적고
Destination에 집 아이피 주소를 입력합니다.
이후 Save! 를 클릭합니다.
 

1-3. Subdomain 연결 테스트하기

 
터미널을 열어서
아래 명령어를 입력합니다.

 
 
Address에 집 아이피 주소가 나오면 정상입니다.
Subdomain이 연결되는데에 10~15분 정도 조금 걸릴 수 있습니다.
안나오면 조금 기다려주세요.
 
 
 

2. 서비스 -> nginx로 reverse proxy 걸기

2-1. NPM 세팅

이전 포스팅에서 설치했던 NPM에 접속합니다.
 

 
Proxy Host에 접속합니다.
 

 
Add Proxy Host를 클릭합니다.
 
 

 
https://freedns.afraid.org/
 
Domain Names : 여기서 발급받은 domain name을 입력합니다.
Scheme : http를 선택합니다.
Forward Hostname / IP : service container가 설치된 서버의 로컬 IP를 입력합니다.
Forward Port : service container의 port 번호를 입력합니다.
 
 

 
우측에 SSL을 클릭 한 뒤
Request a new SSL Certificate를 클릭합니다.
 

 
Let's Encrypt Terms of Service을 승인 한 뒤
Save를 누르면 Let's Encrypt로 Https 인증이 완료됩니다.
 
 

2-2. Service Port Forwarding 하기

dns는 정상적으로 오픈되었으니
이제 서비스를 인터넷에 오픈해야 합니다.
 
이 글에서는 ipTIME을 사용하였습니다.

 
포트포워딩 설정에서
NPM이 설치된 서버의 IP와
80, 443 포트를 오픈합니다.
 
 

3. 서비스 오픈!

https://klassic-quote-api.mooo.com/v1/random-quote
 

 
 
정상적으로 오픈되었습니다.
 
 

 
이제 이 Diagram에서
User가 서비스에 접근하는 부분까지 구현을 완료했습니다.
 
다음 포스팅에서는
개발자가 Github에 코드를 push한 뒤
Github Actions을 활용하여 CI/CD를 진행하도록 하겠습니다.