넷플릭스의 클라우드 마이그레이션 작업은 2008년 8월에 시작됐다. 당시 데이터베이스 손상으로 3일간 DVD 배송이 지연되는 문제를 겪은 후, 신뢰성 높고 수평 확장이 가능한 클라우드 내 분산 시스템으로 이전해야 할 필요성을 체감했기 때문이다. 넷플릭스는 최고의 확장성을 보장하고 광범위한 서비스와 기능을 제공하는 아마존 웹 서비스(AWS: Amazon Web Services)를 클라우드 제공업체로 선정했다.
고객 관련 서비스를 포함한 대부분의 넷플릭스 시스템은 2015년 이전에 클라우드로 마이그레이션을 완료했다. 이후 데이터 관리의 모든 측면과 결제 관련 인프라에 대한 보안성과 견고성을 갖춘 클라우드 시스템 구축 작업을 충분한 시간을 두고 진행했다. 7년간의 노력 끝에 넷플릭스는 2016년 1월 초 클라우드 마이그레이션 작업을 최종 완료했으며, 스트리밍 서비스에 사용하던 마지막 데이터 센터도 운영을 종료하게 됐다.
클라우드 마이그레이션을 통해 넷플릭스는 많은 이점을 누리게 됐다. 2008년 대비 스트리밍 서비스 이용 회원 수가 8배 증가했으며, 지난 8년간 월간 스트리밍 시간이 1천 배 가량 증가하는 등 회원들의 서비스 이용도 더욱 활발해졌다.
넷플릭스 서비스 역시 빠른 속도로 진화함에 따라, 많은 리소스를 차지하는 새로운 기능이 다수 도입되고 데이터 사용량도 지속적으로 증가해 왔다. 넷플릭스의 기존 데이터 센터는 이러한 급성장을 지원하기 어려웠을 것이다. 클라우드의 탄력성 덕분에 이제 수천 개의 가상 서버와 페타바이트(1PB=1024TB)급 저장 용량을 불과 몇 분 내에 추가할 수 있게 됐다. 넷플릭스는 지난 1월 130개 이상의 국가에 추가로 서비스를 확장하며 글로벌 인터넷 기반 TV 서비스 기업으로 발돋움했다. 이에 전 세계에 분산된 AWS 클라우드 지역을 기반으로 글로벌 인프라를 유연하게 활용하고 그 역량을 확대할 수 있게 됐으며, 언제 어디서나 더 편안하고 즐겁게 콘텐츠를 스트리밍할 수 있는 환경이 조성됐다.
현재 넷플릭스는 비즈니스 로직, 분산 데이터베이스, 빅 데이터 처리 및 분석, 추천, 코드 변환 등 넷플릭스 애플리케이션을 구성하는 수백 가지 기능을 위해 필요한 확장성 있는 컴퓨팅 및 스토리지를 모두 클라우드 기반으로 사용하고 있다. 동영상은 회원들이 각자의 기기에서 효율적으로 콘텐츠를 즐길 수 있도록, 세계 곳곳에 분산된 넷플릭스 오픈 커넥트(Netflix Open Connect)라는 콘텐츠 전송 네트워크를 통해 전달된다.
서비스 가용성 역시 대폭 증가했다. 과거 데이터 센터를 이용하던 시절에는 서비스 중단이 빈번하게 발생했지만, 마이그레이션 이후 전반적인 가용성이 꾸준히 증가해 서비스 가용성 목표인 99.99%에도 더욱 가까워졌다. 클라우드를 기반으로 이중화 구성을 통해 신뢰성 높은 서비스를 구축할 수 있다. 이중화와 점진적 축소 운영 원칙을 아키텍처에 적용하고 시미안 아미(Simian Army)를 사용한 정기적 제작 훈련을 통해, 회원들의 스트리밍 서비스 이용에 영향을 끼치지 않고도 클라우드 인프라와 사내 시스템에서 발생하는 장애를 해결하는 것이 가능해졌다.
뿐만 아니라 스트리밍에 소요되는 클라우드 비용이 데이터 센터 운영비용의 극히 일부에 불과해 비용 절감 효과까지 얻게 됐다. 클라우드의 탄력성 덕분에 인스턴스 유형의 조합을 지속적으로 최적화하고 대용량 버퍼를 유지할 필요 없이 공간을 확장 및 축소할 수 있게 된 것이다. 대규모 클라우드 생태계에서만 가능한 규모의 경제 효과도 누릴 수 있게 되었다.
클라우드 마이그레이션 과정에서 넷플릭스는 수많은 어려운 결정을 내려야만 했다. 가장 쉬운 방법은 데이터 센터의 모든 시스템을 그대로 AWS에 옮겨 놓는 것이지만, 그렇게 되면 데이터 센터가 지닌 문제와 한계점을 그대로 옮기는 것밖에 되지 않는다. 그렇기 때문에 넷플릭스는 클라우드 네이티브(cloud native) 방식을 채택해 모든 기술을 재구축하고 운영 방식을 근본적으로 재설계했다. 아키텍처 면에서는 하나의 거대한 앱을 수백 개의 마이크로 서비스로 이전하고, NoSQL 데이터베이스를 사용하여 데이터 모델을 비정규화했다. 예산 승인, 중앙화된 릴리스 관리, 하드웨어 프로비저닝 주기를 도입해 지속적인 콘텐츠 전달이 가능해졌으며, 느슨하게 결합된 데브옵스(DevOps: 개발운영) 환경에서 엔지니어링 팀이 셀프서비스 툴로 독립적인 결정을 내릴 수 있게 되면서 혁신이 가속화됐다.
넷플릭스가 클라우드 네이티브 기업으로 변신하는 데는 많은 시간과 노력이 필요했지만, 클라우드 마이그레이션을 통해 세계적인 인터넷 기반TV 서비스 기업으로서 지속적인 성장을 이뤄나갈 토대를 마련할 수 있었다.
필자: 유리 이즈라일예브스키(Yury Izrailevsky) 클라우드&플랫폼엔지니어링 부사장