Google / Facebook / etc와 같은 사이트는 어떻게됩니까? 요청이 너무 많아도 DDOS를받지 않습니까?


14

내가 이해하지 못하는 것 :

(수십 또는 수백 명) 수천 명의 사람들이 동시에 facebook.com 또는 google.com과 같은 사이트에 연결하려고합니다.

내가 이해 한 바에 따르면 모두 동일한 초기 서버에 연결해야 합니다 (DNS는 동일한 IP를 많은 서버에 반환하기 때문에 모든 요청이 동일한 대상 목적지로 이동하기 때문에).

따라서 단일 머신 / 라우터는 다른 머신으로 요청을 전달하더라도 모든 초기 요청을 처리해야합니다.

이 일이 발생했을 때 어떻게 단일 장치에 과부하가 걸리지 않습니까?


8
DNS에 대한 귀하의 가정이 잘못되었습니다 : en.wikipedia.org/wiki/Round-robin_DNS
Der Hochstapler

@OliverSalzburg : 링크 주셔서 감사합니다. 도움이됩니다.
user541686

답변:


20

이러한 결과를 달성하는 방법에 대한 세부 사항은 복잡하지만 모두 동일한 서버에 연결한다는 점에 대한 이해가 잘못되었습니다. http://highscalability.com/ 에는 일부 확장 성 솔루션이 어떻게 사용되는지에 대한 참조 작업이 있습니다.

그들은 공용 IP 주소가 동일하게 보이더라도 클라이언트가 연결하는 "단일"서버 이상을 가지고 있습니다. 예를 들어 Google은 애니 캐스트 주소 지정을 사용하여 사람들을 안내하며 일반적으로 고객이 요청할 때 하나의 주소 만 반환하더라도 각 클라이언트에 대해 하나의 IP 주소 만 가지고 있지 않습니다.


오류를 지적 해 주셔서 +1 감사합니다. 그래도 도움이 될 수는 없습니다. 후속 요청이 매번 다른 서버로 이동하면 서버는 어떻게 다른 서버 세션을 계속합니까? 또는 머신 별 / 세션 별 랜덤 성이 있습니까? (모두 백엔드에서 동기화한다고 생각하지만 수백만 명의 사용자에 대한 정보를 보유한 수천 대의 서버를 동시에 동기화하는 것은 매우 느린 것 같습니다.)
user541686

1
대답은 복잡하고 구현에 달려 있지만 한 가지 방법은 실제로 TCP 연결을 만들지 않고 패킷을 올바른 대상으로 보내는 시스템 풀을 갖는 것입니다. 작은 방법에 대해서는 F5 및 기타로드 밸런서 공급 업체를 찾으십시오. 구글은 그들이 만든 것을 사용한다고 생각합니다.
다니엘 피트 먼

분할 세션 방법론을 사용할 수도 있습니다. 사용자와 서버가 직접 연결된 세션과 사용자와 논리 서비스 간의 "마스터 논리 세션"이 있습니다. 사용자가 다른 서버로 이동하면 해당 서버는 논리 서비스에 대해 동일한 마스터 논리 세션을 재개합니다.
David Schwartz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.