Cosmos DB란?

2025. 4. 24. 10:14·데이터베이스
728x90
반응형
SMALL

Azure Cosmos DB는 Microsoft Azure에서 제공하는 완전 관리형 NoSQL 데이터베이스 서비스입니다. 글로벌 분산 아키텍처를 바탕으로 뛰어난 확장성과 고가용성을 제공하며, 다양한 API를 통해 여러 형태의 데이터 모델을 지원하는 것이 특징입니다.


Cosmos DB의 특징

1. NoSQL 기반 멀티 모델 지원

Cosmos DB는 단일 데이터베이스 서비스 내에서 여러 데이터 모델을 지원합니다. 대표적으로는 문서형(Document), 키-값(Key-Value), 그래프(Graph), 컬럼형(Column-Family) 데이터 모델이 있으며, 각각의 모델에 적합한 API를 제공합니다.

2. 다양한 API 호환성

Cosmos DB는 다음과 같은 API를 통해 다양한 쿼리 언어를 사용할 수 있도록 지원합니다:

  • SQL API: Cosmos DB 전용 SQL 쿼리 언어를 사용. 기본 API이며 JSON 문서를 대상으로 SQL 스타일 쿼리 가능
  • MongoDB API: MongoDB 클라이언트와 호환되며, 기존 Mongo 쿼리 및 도구 사용 가능
  • Cassandra API: Cassandra Query Language(CQL) 사용 가능
  • Gremlin API: 그래프 기반 쿼리를 위한 Gremlin 쿼리 지원
  • Table API: Azure Table Storage와 호환되는 API

3. 글로벌 분산 및 자동 복제

Cosmos DB는 데이터베이스를 전 세계 여러 Azure 리전에 자동으로 복제할 수 있으며, 멀티마스터(Multi-master) 구성을 통해 읽기/쓰기 작업을 모든 리전에서 수행할 수 있습니다. 이를 통해 낮은 지연 시간과 높은 가용성을 실현할 수 있습니다.

4. JSON 기반 저장 구조

Cosmos DB는 데이터를 JSON 문서 형태로 저장합니다. 따라서 다양한 구조의 데이터를 유연하게 저장하고, 쿼리를 통해 필요한 필드만 가져오는 방식으로 효율적인 데이터 처리가 가능합니다.

5. 빠른 응답 시간과 SLA 제공

Cosmos DB는 99.999%의 가용성과 10ms 이하의 읽기/쓰기 지연 시간을 SLA(Service Level Agreement)로 보장합니다. 이는 실시간 처리 및 대규모 IoT, 로그, 기상 데이터와 같은 고속 데이터 처리 환경에서 유리합니다.


기본적으로  NoSQL 하면  MongoDB가 많이 떠오를 수 있다. 아래의 표를 참고해 차이점을 분석해보자. 

Cosmos DB vs MongoDB

항목 Cosmos DB MongoDB
데이터 모델 JSON 기반 문서형 외 다양한 모델 지원 JSON 기반 문서형
API SQL, MongoDB, Cassandra, Gremlin, Table MongoDB 고유 API
호환성 MongoDB API 호환 (버전 3.6 수준) 완전한 MongoDB 기능 지원
글로벌 복제 기본 제공, 다중 리전 지원 MongoDB Atlas에서 별도 설정 필요
쿼리 언어 SQL 스타일 또는 Mongo 쿼리 Mongo 쿼리 언어 (MQL)
과금 방식 RU/s (Request Unit per second) 기반 용량 및 인스턴스 기준

마무리

Azure Cosmos DB는 대규모 분산 시스템과 빠른 데이터 처리가 필요한 환경에서 매우 유용한 선택입니다. MongoDB API와의 호환성을 통해 기존 MongoDB 환경을 쉽게 마이그레이션할 수 있으며, 다양한 API와 글로벌 분산, 낮은 지연 시간 등의 장점으로 최신 클라우드 애플리케이션에서 활용도가 매우 높습니다.

728x90
반응형
LIST

'데이터베이스' 카테고리의 다른 글

[MSSQL] MSSQL 기초 사용법 (쿼리, 테이블 만들기, 트랜잭션)  (0) 2025.06.20
[데이터베이스] MSSQL이란? 마이크로소프트 SQL 서버 개념과 특징 정리  (0) 2025.06.20
[데이터베이스] 데이터베이스 Index(인덱스)란?  (0) 2025.03.16
[데이터베이스] 오라클 공간함수 (SDO_GEOMETRY)  (2) 2025.02.07
[데이터베이스] Redis란?  (1) 2025.02.06
'데이터베이스' 카테고리의 다른 글
  • [MSSQL] MSSQL 기초 사용법 (쿼리, 테이블 만들기, 트랜잭션)
  • [데이터베이스] MSSQL이란? 마이크로소프트 SQL 서버 개념과 특징 정리
  • [데이터베이스] 데이터베이스 Index(인덱스)란?
  • [데이터베이스] 오라클 공간함수 (SDO_GEOMETRY)
junhyeokkk
junhyeokkk
나의 개발자 성장기
  • junhyeokkk
    백엔드 개발자 준혁의 성장일지
    junhyeokkk
  • 전체
    오늘
    어제
    • 분류 전체보기 (59)
      • Flutter (13)
      • 개발환경구축 (3)
      • HTTP (0)
      • CS지식 (5)
      • 코딩테스트 (10)
      • JAVA (7)
      • 데이터베이스 (7)
      • Node.js (9)
      • TypeScript (1)
      • Azure (3)
      • Git (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    cosmos db
    DART
    개발자
    Java
    azure
    nodejs
    개발자준비
    node.js
    Flutter
    코딩테스트
    db
    라이브러리
    js
    프로그래머스
    백엔드개발
    알고리즘
    CS지식
    RDBMS
    마이크로소프트sql
    Typescript
    programmers
    백엔드개발자
    자바
    데이터베이스
    sql튜토리얼
    MSsql
    디자인패턴
    Microsoft
    백엔드
    node
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
junhyeokkk
Cosmos DB란?
상단으로

티스토리툴바