클라우드응용SW개발

[Cloud] 5주차-2. Azure Cosmos DB 개념

tryinto_gmlt 2026. 4. 7. 21:30

⭐ Azure Cosmos DB

Microsoft에서 제공하는 전 세계적으로 분산된 다중 모델 NoSQL 데이터베이스 관리 시스템(DBMS)

NoSQL: 정해진 테이블 구조 없이 유연하게 데이터를 저장하는 데이터베이스

특징

  • JSON 기반 데이터 저장
    • 구조를 미리 정의하지 않아도 됨
    • 필요에 따라 key-value를 자유롭게 추가하거나 변경 가능
  • 다중 모델 지원
    • 다양한 API를 통해 여러 데이터 모델을 지원 (문서, 그래프 등)
  • 문서 단위 관리
    • 데이터는 컨테이너 내부에 JSON 문서 형태의 Item으로 저장
    • Partition Key를 기준으로 분산 저장되어 관리
  • RU(Request Unit)
    • Azure Cosmos DB에서 데이터베이스 작업의 비용을 측정하는 단위 (과금 단위)
    • 읽기, 쓰기, 쿼리 등 모든 작업은 RU를 기준으로 계산
    • 작업의 복잡도와 데이터 양에 따라 RU 사용량이 다름
    • 사용자는 초당 처리량을 RU/s (초당 Request Unit) 형태로 설정하여 프로비저닝 가능
    • Azure Portal에서 RU 사용량 모니터링 가능
  • 일관성 수준(Consistency Level) 설정 가능
    • 데이터가 여러 서버에 분산 저장될 때, 데이터의 일관성을 얼마나 유지할지 설정 가능
    • 서버마다 데이터 반영 속도 차이로 인해 일시적으로 데이터가 다를 수 있음
    • 일관성 수준에 따라 데이터 정확성과 성능 사이의 균형을 조절할 수 있음

장점

  • 글로벌 분산: 데이터를 여러 지역에 복제하여 전 세계 어디서든 빠르게 접근 가능
  • 낮은 지연 시간: 읽기 및 쓰기 작업이 빠르게 처리되어 실시간 서비스에 적합
  • 높은 확장성: Azure의 스케일링 기능을 활용하여 데이터 양이 증가해도 유연하게 확장 가능

주요 제약 조건

  • id
    • 각 데이터는 고유한 id를 가져야 함
    • 이를 통해 레코드를 유일하게 식별
  • Partition Key
    • 데이터를 분산 저장하기 위한 기준이 되는 값
    • Partition Key를 기준으로 데이터가 여러 파티션에 나뉘어 저장
    • 이를 통해 병렬 처리와 빠른 조회 가능

 

⭐ Cosmos DB API

  • NoSQL API: JSON 문서 형태로 데이터를 저장하고 SQL 유사 쿼리를 사용하는 기본 API
  • MongoDB API: MongoDB와 호환되어 기존 MongoDB 애플리케이션을 그대로 사용할 수 있는 API
  • Cassandra API: Apache Cassandra와 호환되는 컬럼 기반 데이터 모델을 지원하는 API
  • Gremlin API: 그래프 구조 데이터를 처리하기 위한 Gremlin 기반 API
  • PostgreSQL API: PostgreSQL과 호환되는 관계형 데이터베이스 API