👩🏻‍💻 Programming/SpringBoot

DNS 매핑 및 웹 서버 연동

한국의 메타몽 2021. 11. 7. 21:12

 

DNS & HOST

 


DNS는 도메인 네임 시스템, 즉, 도메인 이름을 뜻한다. 예를들어 네이버는 www.naver.com이 DNS이다.

IP를 기억하기 쉽게 하기 위해 사람에게 친숙한 영단어로 도메인 네임을 구축한다.

(DNS) www.naver.com -> (IP) 220.95.233.172

 

HOST는 쉽게 말하면 컴퓨터 한 대를 뜻하는데, 예를들어 스케일 아웃 방식으로 여러대의 서버를 구축하고 업로드 API를 10개 구축했을때, 업로드 API 01, 02, 03 ... 이런식으로 운영이 될 것이다. 이때 IP만으로 여러개의 API를 관리하면 번거로우므로, HOST도 같이 활용하는 것이다.

test1.api.org
test2.api.org
test3.api.org 
...

 

DMZ Zone 내부에서는 이렇게 DNS와 HOST로 소통이 이루어진다.

 

 

맥북에서 호스트 설정

 

맥북기준으로  sudi vim /private/etc/hosts로 접속한 다음, hosts 파일 내부에 127.0.0.1 myapi.test.com을 작성한다.

 

그런다음 localhost:8080이 아닌 hosts파일 내부에 작성한 myapt.test.com으로 들어가면 정상적으로 작성된 문자열이 반환된다.

 

 

 

 

DNS 매핑 시 웹서버를 이용한 API 서버연동

 

Port:80 -> 웹서버, Port:8080 -> API 서버

* IANA(Internet Assigned Numbers Authority)는 Port 넘버를 관리하는 기관

 

여기서 Port:80이 WellKnown Port에 해당된다.

일반적으로 1024 미만 (0~1023)의 포트를 Well-known Port라고 하며, 이 포트에 접근할때는 관리자 권한이 필요하다.

 

최근에는 NGNIX를 통한 Reverse Proxy를 이용하거나 Apache의 Reverse Proxy를 이용해 웹서버의 DNS이름을 설정하고, 웹서버(ex : Port:80으로 연결됨)와 API서버(ex : Port:8080으로 연결됨)를 이어줘서 서비스를 제공한다. 이렇게하면 API서버에 Root권한(Admin 권한)을 주지 않아도 안정적으로 운영할 수 있으며, 결정적으로 WAS 서버의 부하를 줄일 수 있는 로드밸런서로 활용할 수 있다.