일반적인 www.mystyle.com 주소를 도메인 이름이라고 하며, DNS는 도메인 이름을 IP로 변환하여, 브라우저가 인터넷 자원을 이용할 수 있도록 한다.
스케일 아웃 방식을 사용하여 서버가 여러대가 있다면, 각 서버는 ip, servername(host, hostname)을 가진다. 도메인이 같은 경우, host 이름을 다르게 설정하여 각각 구체적인 서버에 접근할 수 있도록 한다.
ex) hostname.domain.com
IANA가 port 번호를 관리하는데, 80은 HTTP 전송을 위한 포트로 정해져 있다.
구체적으로 정해져 있는 포트와 역할은 well-known이라고 하고 다음 문서에서 확인 가능하다.
https://ko.wikipedia.org/wiki/TCP/UDP%EC%9D%98_%ED%8F%AC%ED%8A%B8_%EB%AA%A9%EB%A1%9D
well-known 포트들은 어느 환경(linux)에서도 구애받지 않고 모두 공통으로 적용된다.
mac, linux의 경우 80포트를 사용하기 위해서 Root 권한을 가져야 한다.
권한이 있는 유저로 실행(admin 권한으로 실행하면 admin 권한이 탈취당할 경우 보안 이슈가 발생한다.)
-> 따라서, client에는 web server에 80 포트를 열어주고, 내부에는 8080 포트를 사용하여 예방한다.
정적 자원을 빠르게 로딩하기 위해서 web server를 이전에 사용했다.
요즘에는 webserver와 api server를 같은 물리적 공간에 두고, 보안을 위해서 web server를 80 포트로 설정한다.
따라서, api server에 admin 권한이 없어도, web server를 통해서 접근이 가능하다. (ngnix)
DNS로 web server가 요청을 받고, api server까지 그 요청을 전달하는 방식이다.
.(점)이 2개일 때는 문제가 없다. 하지만 .(점)이 3개일 때 HTTPS 설정을 할 수 없으므로 유의한다.
DNS와 가상 아이피인 vip를 연결해주면, myapi.fast.com으로 요청을 했을 때, vip가 Load Balancing을 통해 각 서버에 요청을 전달한다. L7 스위치가 protocol을 이해할 수 있는데, api가 제대로 응답하는지 검사를 한다.(health check)
여러개의 api 서버를 가지고 있는 내부 서버망이 1개 뿐 아니라, 여러개가 구성될 수 있는데, 각 서버망은 모두 vip를 가지고 있어서, DNS로 연결된 도메인 이름을 통해서 접근이 가능하다.
'Spring > Spring Cloud' 카테고리의 다른 글
메세지 큐 (0) | 2021.11.07 |
---|---|
샤딩 (0) | 2021.11.07 |
웹서비스 확장전략 (0) | 2021.11.07 |