Cosmos DB 아키텍처

Azure Storage 개발

Shahzad Mian

Content developer, DataCamp

Azure Cosmos DB

Azure_Cosmos_DB.svg.png

Azure Storage 개발

문제점

Cosmos DB 문제

Azure Storage 개발

Cosmos DB란?

 

CosmosDB

  • 멀티 모델, 전역 분산 NoSQL 데이터베이스.
  • NoSQL: 유연한 폴더형 저장.
  • 다양한 API와 데이터 형식 지원.
  • 유연한 메뉴처럼 API를 선택:
    • SQL(Core): JSON 문서.
    • MongoDB: Mongo 개발자용.
    • Cassandra: 와이드 컬럼 데이터.
    • Gremlin: 그래프 관계.
    • Table API: 키-값 저장.
Azure Storage 개발

개발자를 위한 Cosmos DB

  • 개발자 중심으로 설계.
  • 자동 인덱싱: 스키마 관리 불필요.
  • 빠른 쿼리.
  • 5가지 일관성 수준: Strong ~ Eventual.
  • 성능과 일관성의 트레이드오프.
    • Strong: 모두가 즉시 같은 내용을 봄.
    • Eventual: 나중에 일치.

 

강한/최종 일관성

Azure Storage 개발

스케일링과 처리량(RU/s)

프로비저닝 모드

  • 초당 요청 단위(RU/s) = Cosmos DB의 성능 화폐.
  • 읽기, 쓰기, 쿼리마다 RU/s를 소모합니다.
  • 고정 프로비저닝 또는 자동 크기 조정 선택.
Azure Storage 개발

스케일링과 처리량(RU/s)

스케일링

  • 초당 요청 단위(RU/s) = Cosmos DB의 성능 화폐.
  • 읽기, 쓰기, 쿼리마다 RU/s를 소모합니다.
  • 고정 프로비저닝 또는 자동 크기 조정 선택.
  • 자동 크기 조정은 수요에 따라 자동으로 조절됩니다.
Azure Storage 개발

탄력적 스케일과 파티셔닝

  • Cosmos DB는 파티셔닝으로 확장합니다.
  • 각 컨테이너는 파티션 키를 사용합니다.
  • 키는 관련 데이터를 함께 묶습니다.
  • 예: Cipher Coffee는 주문에 /customerId를 사용합니다.
  • /customerId를 파티션 키로 쓰면 한 고객의 주문이 같은 파티션에 저장됩니다.
  • 데이터가 늘어도 쿼리는 빠릅니다.
  • 핫 파티션: 불균형한 부하로 성능 저하.

탄력적 스케일과 파티셔닝

Azure Storage 개발

전역 분산

  • 데이터를 손쉽게 어느 Azure 지역으로든 복제.
  • 체크박스만 선택, 추가 설정 없음.
  • 한 지역 장애 시 트래픽 자동 우회.
  • 다운타임 없음, 데이터 손실 없음.
  • 예비 카페가 즉시 고객을 받는 것과 같습니다.

전역 분산

Azure Storage 개발

모니터링과 비용 최적화

  • Azure Portal에서 성능을 모니터링합니다.
  • RU/s, 지연 시간, 요청 요금 등 지표를 확인.
  • 자동차 계기판처럼 속도와 연료를 확인.
  • Cipher Coffee 엔지니어가 이 지표를 분석했습니다.
  • 처리량을 동적으로 조정해 비용을 절감했습니다.

모니터링

Azure Storage 개발

연습해 봅시다!

Azure Storage 개발

Preparing Video For Download...