Netflix에서의 CockroachDB 사용기
- 2008년 온프레미스 데이터 센터 이슈로 3일 장애가 있었음 - 2010년 온프레미스에서 AWS로 마이그레이션 진행 - 2014년 기존에는 오라클 DB를 사용했지만 여러 지역으로 확장하기 위해 "data everywhere"를 달성하기 위해 Cassandra 도입 2019년 당시에 Cassandra를 잘 활용하고 있긴 했지만 제한된 transaction 기능과 secondary indice 사용이 까다로웠습니다. 그렇다고 AWS Aurora를 사용하기에는 single-writer때문에 확장성 이슈가 있었다고 합니다. 그래서 확장, transaction 지원, 직접 관리할 수 있는 환경, SQL 사용여부 등을 고려했을때 CockroachDB를 도입했습니다. 2020년부터 CockroachDB를 사용하기 시작했고, Netflix만의 커스텀 기능들 (인증, 로깅, CDC integration)이 필요해서 fork를 해서 구성했습니다. 직접 AWS EC2 인스턴스들에 Jenkins/Spinnaker 등을 활용해서 빌드하고 배포한다고 합니다. 현재 100+ prod cluster, 150+ test cluster들이 있고 대부분 하나의 region에 3개의 AZ로 구성되어있다고 합니다. 서비스중에서는 Cloud drive, data mesh, device management platform, Mastro (workflow orchestrator) 등에서 사용된다고 합니다. 이 서비스들에 대한 내용도 넷플릭스 테크 블로그 글에 있으니 참고하셔도 좋을 것 같습니다. 국내에서는 데브시스터즈에서 CockroachDB를 활용하고 있다고는 듣기는 했는데 기업들에서 어떤 문제들이 있고 어떤 병목들이 있기에 CockroachDB 사용을 고려하고 실제로 사용하게 되는지 조금이나마 알 수 있었습니다. 이 유투브 영상을 발견하게 된 것은 "How Netflix engineers choose their tech stack"라는 제목에 이끌려 들어간 블로그 글에서 보게 되었는데 사실상 CockroachLabs에서 홍보와도 같은 글이었습니다 😅 해당 블로그 글도 공유합니다. https://www.youtube.com/watch?v=7tnIcs-pi4k https://www.cockroachlabs.com/blog/persistence-as-a-service-at-netflix/