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 서버연동
* 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 서버의 부하를 줄일 수 있는 로드밸런서로 활용할 수 있다.
'👩🏻💻 Programming > SpringBoot' 카테고리의 다른 글
SpringBoot에서 Naver API 연동하기 (2) | 2021.12.08 |
---|---|
Spring Boot와 Exception 처리 (0) | 2021.12.07 |
블루그린배포와 서버 부하분산을 위한 네트워크 (0) | 2021.11.07 |
Authorization 매커니즘 (0) | 2021.10.17 |
Authentication 메커니즘 (0) | 2021.10.17 |