[reinvent 2024] Amazon S3를 사용하여 Netflix에서 미디어 스토리지 확장 및 진화
Summary
Netflix는 스튜디오 애플리케이션을 통해 이미지, 비디오, 텍스트 등 페타바이트 규모의 멀티미디어 데이터를 생성하고 Amazon S3에 안전하게 저장합니다. 이번 세션에서는 미디어 스토리지 계층의 진화와 자산의 액세스 제어 및 수명 주기 관리 방식을 다룹니다. 또한, 확장성 문제를 해결하며 미디어 파트너와 애플리케이션에 최적화된 기능을 추가한 사례를 소개합니다.
리인벤트 2024 테크 블로그의 더 많은 글이 보고 싶다면?
Overview
들어가며
넷플릭스 미디어 저장소 및 데이터 관리 개요
넷플릭스는 클라우드 기반 스튜디오 인프라를 통해 전 세계의 아티스트들이 협업할 수 있는 환경을 제공합니다. 콘텐츠 제작 과정에서 데이터는 카메라 촬영 이후 여러 번 변한되며, AWS S3에 최종 저장되기까지 업로드와 다운로드가 빈번히 발생합니다. 넷플릭스는 이러한 전 세계적으로 분산된 데이터 흐름을 지원하기 위해 고성능, 고효율의 미더 클라우드 인프라를 구축했습니다.
C 노드 구조 및 데이터 관리 개요
Content Drive는 넷플릭스의 데이터 관리 핵심으로, AWS S3 위에 구축된 파일-폴더 메타데이터 추상화 계층입니다. Content Drive는 계층적 트리 구조를 통해 파일과 폴더를 저장하며, 이를 “C 노드”라 부릅니다.
C 노드는 다음과 같은 유형으로 구분됩니다.
- 루트/작업공간 노드 : 사용자 데이터의 최상위 네임스페이스를 제공합니다.
- 폴더 노드 : 단순 컨테이너 역할을 합니다.
- 파일 노드 : 실제 데이터와 연결된 리프 노드입니다.
- 시퀀스 노드 : 수백만 개의 파일을 포함할 수 있는 특수 노드입니다.
- 스냅샷 노드 : 불변성을 보장하는 서브트리 컨테이너입니다.
이 노드 구조는 데이터의 복잡한 Lifecycle을 효율적으로 관리하며, 각 노드는 고유한 UUID와 메타데이터 정보를 통해 관리됩니다.
사용자 워크플로우 및 데이터 관리 과정
넷플릭스는 콘텐츠 드라이브를 통해 아티스트와 애플리케이션 간의 매끄러운 작업 환경을 제공합니다. 아티스트는 로컬 워크스테이션에서 작업 파일을 Content Drive로 드래그 앤 드롭하며, Content Drive는 이를 S3로 전송하는 과정에서 다음 기능을 제공합니다.
- 동적 전송 토큰 생성 : 전송을 수행할 권한을 부여합니다.
- 파일 및 폴더 알림 제공 : 업로드 완료 시점 등을 사용자에게 알립니다.
- 전송 세션 추적 : 데이터 전송의 성공 여부를 검증합니다.
이러한 작업 과정을 통해서 아티스트는 로컬 환경과 유사한 인터페이스에서 데이터를 관리하며, 팀 내 협업 또한 용이합니다.
콘텐츠 Lifecycle 관리의 필요성
콘텐츠는 생성, 활성, 전환, 아카이브, 삭제의 단계를 거칩니다.
- 생성 단계 : 데이터가 시스템에 처음 진입하는 단계로, 태그 및 메타데이터가 추가됩니다.
- 활성 단계 : 가장 많은 사용자 상호작용이 이루어지는 동적 상태의 단계입니다.
- 전환 단계 : 분석 및 정책 기반으로 더 비용 효율적인 스토리지 계층으로 이동합니다.
- 아카이브 단계 : 데이터의 장기 보존 단계로, 주로 Amazon Glacier를 활용합니다.
- 삭제 단계 : 데이터의 안전한 제거를 위해 체크성 검증 및 정확성을 유지합니다.
넷플릭스는 이러한 Lifecycle 관리를 통해 스토리지 비용을 최적화하고 데이터 보존 요구를 충족시키고 있습니다.
넷플릭스의 미디어 관련 시스템
Content Drive는 넷플릭스 미디어 관리의 중심으로, AWS S3를 기반으로 확장 가능성과 효율성을 극대화한 시스템입니다. 2024년 10월 기준, 약 145억 개의 C 노드와 848K의 작업 공간이 있으며, 주당 5천만 개의 새로운 노드가 생성됩니다. 이러한 시스템은 다양한 제작 부서와 후반 작업팀이 UI 페이지에 매일 액세스하며, 콘텐츠 관리와 제작을 지원하고 있습니다.
또한, Content Drive는 REST 및 GraphQL 계층을 통해 파일 및 폴더 작업을 처리하며, 액세스 제어, 데이터 전송, 지속적 메타데이터 관리, 고성능 트랜잭션 등을 제공합니다. P90 지연 시간을 0.5초 이하로 유지하며, 데이터 규모가 증가하더라도 성능을 유지하기 위해 지속적으로 최적화 작업을 진행하고 있습니다.
결론
세션을 들으면서 클라우드 인프라를 설계할 때 사용자 중심으로 접근하는 게 얼마나 중요한지 다시 한 번 느꼈습니다. Content Drive가 아티스트들의 작업을 지원하면서 팀 간 협업을 원활하게 하고, 동시에 데이터를 효율적으로 관리한 사례는 실제 업무에서도 충분히 적용할 수 있는 좋은 케이스를 제공하였습니다.
또한, 넷플릭스가 데이터 삭제나 아카이브 같은 Lifecycle을 얼마나 꼼꼼하고 체계적으로 수행하는지를 보면서 데이터 관리의 중요성을 다시 생각하게 되었습니다. 이번 세션은 단순히 기술을 배우는 걸 넘어, 클라우드 환경에서 데이터 관리 전략을 새롭게 바라보게 해준 좋은 기회였습니다.