본문 바로가기

시스템 디자인

넷플릭스가 여러 데이터센터에 걸쳐 데이터를 다중화 하는 방법

 

가용성과 cross-region 배포

  • 넷플릭스는 99.99%의 가용성을 달성하기 위해 인스턴스나 Availability Zone(AZ)만 다양화 하는 것이 아니라 AWS Region도 다양화하였다.

 

  •  

상태/데이터 비동기 지역 간 복제

  • 우선 카산드라 클러스터의 데이터 일관성과 속도는 충분하다고 판단함. 100만개의 다른 리전에 있는 레코드를 운영 수준의 부하를 유지하면서 500ms만에 모두 읽을 수 있었음.
  • 추가적으로 카산드라 클러스터 앞에 Memcached 레이어를 두기도 하고, Memcached에만 존재하는 계산된 데이터를 사용하기도 하였음.
  • multi-regional Active-Active 환경에서 memcached를 사용할 땐 캐시를 데이터가 일관되고 또 정확하게 관리하는 것이 어렵다.
  • 이를 해결하기 위해서 memcached에 대해 multi-master replication을 구축하기보다 EvCache client원격 캐시 무효화 기능을 추가하였다.
  • 한 리전에 쓰기가 일어날때면 SQS를 통해 다른 리전에 해당 항목을 무효화 하는 메시지를 보내는 것이다.
  • 이렇게 하면 다른 지역에서 그 항목을 읽을 때 연산을 다시 하거나 Cassandra로 전송되어 업데이트되고, 그에 따라 로컬 캐시도 업데이트된다.

참고 자료