유튜브는 그 많은 동영상을 어떻게 저장할까?

Kyu0·2022년 2월 28일
0

0. 궁금증의 시작

요즘 침착맨 채널의 동영상들을 보면서 드는 생각이 있다.

아니, 유튜브는 이 많은 동영상을 어떻게 저장하고 있는거지?

2020년 2월 기준, 유튜브에는 매 분마다 500 시간 분량의 동영상이 업로드 되고 있다고 한다. (출처)
이를 컴퓨터 저장공간으로 환산하면 아래와 같다. (720p 기준)

시간저장공간
1 min약 955GB
1 hour약 56TB
1 day약 1.3PB
1 month약 38.5PB
1 year약 465PB

1분만 지나도 1 테라 바이트가...😱

따라서 나는 유튜브에서는 탁월한 압축 알고리즘을 이용해 효율적으로 저장하고 전송할 것으로 예상했다.

1. 찾아보기

결론은 이 링크7. Data Storage – How Does YouTube Stores Such An Insane Amount Of Data? 항목을 보면 된다.

내 예상과 달리 압축을 한다는 말은 없고 GFS(Google File System)과 BigTable을 이용해 warehouse-scale(창고 규모)의 데이터 센터에 있는 하드 드라이브에 분산 저장한다고 나와있다.

여기서 GFS란 구글에서 개발한 distributed file system(분산 파일 시스템)이다. 말 그대로 파일을 분산해서 저장하는 시스템...이라고 하면 왜 분산해서 저장하느냐? 라는 의문이 생길 수 밖에 없다.

2. 분산 파일 시스템에 대해서

출처 : osu.edu
오늘날 PC 하드디스크의 용량은 보통 1 TB를 사용한다. 그에 반해 읽기/쓰기 속도는 100 MB/sec 수준이기 때문에 1 TB의 데이터를 읽으려면
1TB ÷ 100MB/sec ≈ 10000 sec ≈ 166.7 min ≈ 2.7 hour
약 2시간 42분 정도가 소요된다.

이 때, 1 TB의 파일을 100 MB 단위로 쪼개어 100 개의 하드디스크에 저장한 뒤 병렬 처리하면 1 초만에 읽을 수 있게 되는 것이다.

이 이상의 분산 파일 시스템에 대한 사항은 본 주제에서 벗어난다고 생각해 생략하도록 한다.

3. 느낀 점

처음 내가 의문을 가졌던 대용량 데이터의 효율적인 저장 방식에 대해서는 다소 심심한 답변을 찾았지만, 대용량 데이터를 효과적으로 처리하는 방법에 대해 알아보면서 전공 수업 내용을 복습하게 되었다.

추가로 이 링크3.1 Master-Slave Replica 항목도 나름 흥미를 끌었다.
현재 다니는 회사에서도 Main DB와 Replica DB가 구성되어 있지만 위의 문서에 나온 것과는 달리 로드 밸런싱의 목적보다는 데이터 백업, Main DB 손상 방지를 위해 아래처럼 구성했다고 교육받았기 때문이다.

DB 에서의 로드 밸런싱 문제는 생각해본 적이 없었기 때문에 신박했다.
끝.

profile
개발자

0개의 댓글