아시다시피 유튜브는 방대합니다. 비디오 당 최소 2MB를 스트리밍하는 수천 명의 동시 사용자가 있습니다. 분명히, 그것은 하나의 서버에 비해 너무 많은 트래픽이 될 것입니다.
하루에 40 억 개의 동영상을 제공 할 수있는 네트워킹 기술은 무엇입니까 ?
아시다시피 유튜브는 방대합니다. 비디오 당 최소 2MB를 스트리밍하는 수천 명의 동시 사용자가 있습니다. 분명히, 그것은 하나의 서버에 비해 너무 많은 트래픽이 될 것입니다.
하루에 40 억 개의 동영상을 제공 할 수있는 네트워킹 기술은 무엇입니까 ?
답변:
매우 간단한 설정에서 하나의 DNS 항목은 하나의 서버에 속하는 하나의 IP로 이동합니다. 전 세계의 모든 사람들이 단일 머신으로갑니다. 트래픽이 충분하면 YouTube 크기가되기 전에 처리하기가 너무 많습니다. 간단한 시나리오에서는로드 밸런서를 추가합니다. 로드 밸런서의 작업은 트래픽을 하나의 서버로 표시하면서 다양한 백엔드 서버로 트래픽을 리디렉션하는 것입니다.
YouTube만큼 많은 데이터를 사용하면 모든 서버가 모든 비디오를 제공 할 수 있기를 기대하기에 너무 많은 추가 계층이 있습니다 : sharding . 고려 된 예에서, 한 서버는 "A"로 시작하는 모든 것을 책임지고 다른 서버는 "B"등을 소유합니다.
그러나 결국 대역폭은 강렬 해지고 많은 데이터를 한 방으로 옮깁니다. 그래서 우리는 이제 대인기이므로, 그것을 그 방 밖으로 옮깁니다. 여기서 중요한 두 가지 기술은 Content Distribution Networks와 Anycasting 입니다.
전 세계적으로이 큰 정적 파일이 요청되는 곳에서는 호스팅 서버에 대한 직접 링크를 가리 키지 않습니다. 대신 내가하는 일은 내 CDN 서버에 연결하는 것입니다. 누군가 비디오를 보도록 요청하면 CDN 서버에 비디오를 요청합니다. CDN은 이미 비디오를 보유하고 있거나 호스팅 서버에서 사본을 요청하거나 나를 리디렉션합니다. 이는 네트워크 아키텍처에 따라 다릅니다.
그 CDN은 어떻게 도움이 되나요? 실제로 하나의 IP가 전세계 여러 곳에있는 많은 서버에 속할 수 있습니다. 귀하의 요청이 귀하의 컴퓨터를 떠나 ISP로 갈 때, 라우터는 해당 IP에 대한 최상의 경로 (가장 짧고, 가장 빠르며, 가장 저렴한 비용은 무엇이든) 매핑합니다. CDN의 경우 종종 가장 가까운 Tier 1 네트워크 또는 그 옆에 있습니다 .
그래서 YouTube에 비디오를 요청했습니다. 이에 저장된 실제 기계는 적어도이다 iad09s12.v12.lscache8.c.youtube.com
와 tc.v19.cache5.c.youtube.com
. 그것들은 내가보고있는 내 웹 페이지의 소스에 나타나며 어떤 형태의 인덱싱 서버에서 제공되었습니다. 이제 Maine에서 tc19 서버가 플로리다의 Miama에 있다는 것을 알았습니다. 워싱턴에서 tc19 서버가 캘리포니아 산호세에 있다는 것을 알았습니다.
대규모 사이트에는 여러 가지 기술이 사용됩니다.
www.youtube.com
-> 임의의 수의 IP 주소DNS를 살펴 보자.
www.youtube.com is an alias for youtube-ui.l.google.com.
youtube-ui.l.google.com has address 74.125.226.14
youtube-ui.l.google.com has address 74.125.226.0
youtube-ui.l.google.com has address 74.125.226.1
youtube-ui.l.google.com has address 74.125.226.2
youtube-ui.l.google.com has address 74.125.226.3
youtube-ui.l.google.com has address 74.125.226.4
youtube-ui.l.google.com has address 74.125.226.5
youtube-ui.l.google.com has address 74.125.226.6
youtube-ui.l.google.com has address 74.125.226.7
youtube-ui.l.google.com has address 74.125.226.8
youtube-ui.l.google.com has address 74.125.226.9
youtube-ui.l.google.com has IPv6 address 2001:4860:800f::88
따라서 www.youtube.com은 실제로 여러 IP 주소로 이동할 수 있습니다.
단일 IP는 여러 개의 자율 시스템 (인터넷의 네트워크)에서 동시에 처리 할 수 있습니다. 예를 들어 Google의 8.8.8.8
DNS 서버 뿐만 아니라 많은 루트 DNS 서버 가 전세계 여러 곳에서 애니 캐스트됩니다. 아이디어는 미국에 있으면 미국 네트워크에, 영국에 있으면 영국 네트워크에 접속한다는 것입니다.
에 www.youtube.com
있다고해서 모든 콘텐츠가 동일한 서버에서 제공되어야한다는 의미는 아닙니다. 오른쪽이 사이트에 정적 자원에서 제공하는 sstatic.net
대신 serverfault.com
.
예를 들어 Kaley Cuoco의 Slave Leia PSA 를 보면 미디어가에 의해 제공됨을 알 수 v10.lscache5.c.youtube.com
있습니다.
유튜브는 하나 이상의 인터넷 연결을 가지고 있습니다. 다른 모든 기술에도 불구하고 Youtube가 실제로 단일 사이트와 단일 서버 인 경우에도 이론 상으로는 비디오를 제공하는 다른 모든 단일 네트워크에 연결할 수 있습니다. 현실에서는 물론 불가능하지만 아이디어를 고려하십시오.
이러한 아이디어 중 하나 이상 (또는 그 이상)을 사용하여 컨텐츠 전달 네트워크 를 지원할 수 있습니다 . 더 알고 싶다면 해당 기사를 읽으십시오.
YouTube (일명 Google)에 서버가 하나만 있다고 상상하는 것은 잘못입니다. 이 정보 는 해당 서비스를 지원하는 시스템의 규모를 설명하는 데 도움 이 될 수 있습니다.
하나의 존재 지점 만 있더라도로드 밸런서와 같은 도구를 사용하여 하나의 이름 뒤에 IP가 하나 이상 있고 심지어 IP가있는 서버를 둘 이상 가질 수 있습니다.
그러나 구글은 굉장히 많은 존재감을 가지고 있으며, 인터넷상의 여러 곳에 동일한 IP를 게시하고 사람들이 가장 가까운 서버 풀로 라우팅하여 인프라를 뒷받침하는 기술인 애니 캐스트 (AnyCast)와 같은 툴을 사용한다.
네트워크 측면을 조금만 살펴 보겠습니다 .Google은 전 세계 73 개 고유 한 데이터 센터 (자체 포함하지 않음)에 PoP (Point of Presence)를 보유하고 있습니다. 그들은 69 개의 고유 한 인터넷 교환 의 회원입니다 . Google은 peeringdb에 나열된 다른 네트워크보다 많은 데이터 센터와 인터넷 교환 지점에 있습니다.
Google의 총 인터넷 교환 용량은> 1.5Tbps이며 1.5Tbps는 Google과 100Mbps 이상의 트래픽을 가진 네트워크에 예약되어 있지만 2-3Gbps 정도는 아닙니다. 당신이 가진 후 '충분한 볼륨을' , 당신은 개인 피어링 (PNI)로 이동합니다.
YouTube는 Internet Exchange 피어링 및 개인 피어링 (AS15169 포함) 외에도 대중 교통 네트워크 AS43515를 운영하며 유료 네트워크 / 오버플로 용 유료 네트워크 인 AS36040도 운영합니다. Google은 또한 ISP가 네트워크 내에서 훨씬 더 로컬로 배포 할 수 있도록 Google Global Cache 서버를 운영 합니다. (peeringdb, bgp.he.net의 데이터).
내 경험을 바탕으로 YouTube는 IP 지리적 위치 나 Anycast 이상의 것을 사용하여 비디오를 제공 할 위치를 선택했다고 생각합니다.
구글은 거대한 글로벌 백본 네트워크를 운영 하고 있으며 다크 파이버 를 보유하고 있으며 해저 케이블에 자금을 지원 하고있다 . YouTube가 생성하는 트래픽의 양은 엄청납니다! YouTube의 트래픽 양이 12Tbps 이상인 것 같습니다. Google은 모든 도메인 간 인터넷 트래픽의 7 % 이상 (10 % 이상)을 나타냅니다 .
따라서 네트워크 관점에서 실제로 YouTube에 맞게 확장하려면지면의 광섬유에서 WDM 기어 및 라우터에 이르기까지 네트워크에 막대한 투자를해야합니다. 콘텐츠와 네트워크를 가능한 한 사용자에게 가깝게 가져와야합니다. 이것은 일반적으로 피어링, IX 및 약간의 전송을 의미합니다. 트래픽을 최대한 고르게 분산하고 저렴하게 유지하기 위해 컨텐츠를 어디에서 얻을 수 있는지 지능적으로 사용자에게 알려야합니다. 물론 하루에 40 억 건의 뷰를 저장, 처리, 변환 및 제공 할 수있는 대규모 서버 인프라가 있어야합니다!
서버 측에 대해 궁금한 점이 있다면 최근에 릴리스 된 데이터 센터 이미지를 분석 하는 블로그 게시물 을 작성했습니다 .
대규모 시스템과이 회사에서 사용하는 기술에 대한 자세한 내용을 보려면 http://highscalability.com을 방문하십시오.
Google 또는 Akamai와 같은 대기업에는 항상 자체적으로 작성 / 생성 한 구성 요소가 있습니다. (예를 들어 Akamai는 서비스를위한 웹 서버를 개발했습니다)