URL이 특정 서버의 IP 주소로 어떻게 확인됩니까?

URL이 특정 서버의 IP 주소로 어떻게 확인됩니까?

DNS가 URL 이름을 IP 주소로 변환한다는 것은 이해하지만 Google과 같은 일부 웹사이트에 200,000개 이상의 서버가 있는 데이터 센터가 있는 경우 DNS가 어떻게 하나의 특정 서버의 IP 주소를 찾는지 이해가 되지 않습니다.

답변1

설명하는 내용을 로드 밸런싱 DNS라고 합니다. 다양한 유형의 로드 밸런서가 있으며 가장 간단한 것은 라운드 로빈(Round Robin) 로드 밸런싱입니다. 이 링크에는 좋은 설명이 있습니다.라운드 로빈 DNS. 이 방법은 하나의 서버 및/또는 네트워크가 자체적으로 처리할 수 없는 큰 로드 및/또는 과도한 트래픽이 있는 경우에 자주 사용됩니다.

라운드 로빈로드 밸런싱은 클라이언트 요청을 서버 그룹에 분산시키는 가장 간단한 방법 중 하나입니다. 그룹의 서버 목록으로 내려가면 라운드 로빈 로드 밸런서는 클라이언트 요청을 각 서버에 차례로 전달합니다. 목록의 끝에 도달하면 로드 밸런서는 루프백하여 목록 아래로 다시 이동합니다(다음 요청을 첫 번째 나열된 서버로 보내고 그 다음 요청을 두 번째 서버로 보내는 방식).

라운드 로빈 로드 밸런싱의 주요 이점은 구현이 매우 간단하다는 것입니다. 그러나 많은 라운드 로빈 로드 밸런서는 모든 서버가 동일하다고 가정하기 때문에 트래픽이 항상 가장 정확하거나 효율적으로 분산되는 것은 아닙니다. 즉, 현재 실행 중이고 현재 동일한 로드를 처리하며 동일한 스토리지 및 컴퓨팅 용량을 가지고 있다고 가정합니다. 라운드 로빈 알고리즘에 대한 다음 변형은 추가 요소를 고려하여 더 나은 로드 밸런싱을 가져올 수 있습니다.

가중 라운드 로빈— 사이트 관리자가 선택한 기준에 따라 각 서버에 가중치가 할당됩니다. 가장 일반적으로 사용되는 기준은 서버의 트래픽 처리 용량입니다. 가중치가 높을수록 서버가 수신하는 클라이언트 요청의 비율이 커집니다. 예를 들어, 서버 A에 가중치 3이 할당되고 서버 B에 가중치 1이 할당된 경우 로드 밸런서는 서버 B에 1개의 요청을 보낼 때마다 서버 A에 3개의 요청을 전달합니다.

동적 라운드 로빈— 서버의 현재 로드 및 유휴 용량에 대한 실시간 데이터를 기반으로 각 서버에 동적으로 가중치가 할당됩니다.

다른 방법도 있지만 이것이 내부적으로 무슨 일이 일어나고 있는지에 대한 적절한 이해를 제공할 것이라고 생각합니다.

답변2

그렇지 않습니다.

당사의 웹 브라우저는 IP 주소로 여러 요청을 보낼 수 있지만 각 연결에서 동일한 서버와 통신하고 있다는 보장은 없습니다. 실제로는 그렇지 않을 가능성이 높습니다. 단일 IP 주소는 네트워크 토폴로지의 위치에 따라 다른 호스트로 라우팅될 수 있습니다. 애니캐스팅네트워크에서 "가까운" 서버에 따라 다수의 서버로 라우팅되는 하나의 IP 주소를 광고하는 널리 사용되는 방법입니다. 네트워크에 분산되어 있는 훨씬 단순화된 경계 라우터는 IP 주소 ABCD에 도달할 수 있다고 광고하고 ISP는 요청을 가장 가까운 라우터로 라우팅한 다음 해당 요청을 호스트로 전달합니다. 해당 IP 주소 뒤의 호스트는 아마도 들어오는 요청을 서버 팜에 전달하는 로드 밸런서일 것입니다. 네트워크 주소 변환을 통해 동일한 단일 IP 주소에서 나온 것처럼 보이는 서버에서 응답이 반환됩니다.

관련 정보