Azure Storage Account와 Cosmos DB

김규원·2025년 10월 27일

클라우드

목록 보기
11/17
post-thumbnail

스토리지 계정(Azure Storage Accounts)

  • Azure Storage Account는 Microsoft Azure에서 클라우드 데이터를 저장하고 관리하기 위한 기본 단위
  • 안전하고 확장 가능하며 다양한 데이터 유형에 적합한 저장 서비스를 제공
  1. 확장성 및 가용성
    : 대규모 데이터를 처리할 수 있는 확장 가능한 저장소를 제공하며, 높은 가용성과 복원력을 보장합니다.
  2. 다양한 데이터 유형 지원
    : 구조적, 비구조적 데이터 및 반구조적 데이터를 저장할 수 있습니다.
  3. 보안 및 규정 준수
    : 데이터 암호화, 액세스 제어, 보안 인증 등 다양한 보안 기능을 제공하며, 산업 표준 규정을 준수합니다.
  4. 전 세계 복제 옵션
    : 데이터 손실 방지를 위해 지역 복제(LRS), 지리적 복제(GRS), 읽기 전용 지리적 복제(RA-GRS) 등의 복제 옵션을 제공합니다.
  5. 유연한 요금제
    : 사용량 기반 과금 모델로 비용 효율성을 극대화합니다.

종류

Blob Storage

  • 대규모 비구조적 데이터(이미지, 동영상, 로그 파일 등)를 저장하는 데 적합하며, 데이터 계층화(Hot, Cool, Archive)를 지원합니다.

블록 blob

  • Blob의 최대 크기 4.7TB
  • 자주 변경되지 않는 대형의 특정 이진 개체를 저장하는 데 가장 적합
  • 각 개별 블록은 최대 100MB의 데이터를 저장 가능
  • 블록 BLOB에는 최대 5만 개의 블록이 포함

페이지 blob

  • 최대 8TB의 데이터를 저장
  • 고정된 크기의 512 바이트 페이지 모음으로 구성
  • 가상 머신용 가상 Disk Storage 구현에 사용

추가 blob

  • 최대 크기는 195GB를 약간 초과
  • 추가 작업을 최적화하는 데 사용되는 블록 BLOB
  • 각 개별 블록은 최대 4MB의 데이터를 저장
종류특징용도최대 크기
Block Blob (블록 Blob)파일을 블록 단위로 나눠 저장자주 변경되지 않는 대형 파일 저장 (예: 이미지, 동영상)4.7TB
Page Blob (페이지 Blob)512바이트 페이지 단위로 저장가상머신 디스크(VHD)처럼 자주 읽고 쓰는 랜덤 액세스약 8TB
Append Blob (추가 Blob)항상 파일 끝에 데이터를 추가로그 파일처럼 연속적인 기록에 최적화195GB+

File Storage

  • 완전 관리형 SMB(Network File Share) 프로토콜을 통해 파일을 공유하고 애플리케이션과 통합할 수 있습니다.
  • 클라우드에서 파일 공유를 만들어 인터넷이 연결된 곳이라면 어디에서든 파일 공유에 액세스

Queue Storage

  • 클라우드 애플리케이션에서 메시지 기반 작업 흐름을 구현하기 위한 큐 메시징 서비스를 제공합니다.

Table Storage

  • 구조화된 데이터 저장에 적합하며, 스키마 없는 NoSQL 저장소를 지원합니다.

Disk Storage

  • Azure Virtual Machine(VM)에 연결된 디스크를 저장하는 데 사용되며, 고성능 SSD와 HDD 옵션을 제공합니다.

Azure Cosmos DB

  • 다중 모델 NoSQL DBMS(데이터베이스 관리 시스템)
  • Cosmos DB는 분할된 문서 집합으로 데이터를 관리
  • 실시간 액세스로 읽기 및 쓰기 대기 시간이 짧음
  • Azure 스케일링과 스토리지 기능을 활용

사용 사례

웹 및 소매

  • 데이터 엔지니어는 Azure Cosmos DB의 다중 마스터 복제 모델과 Microsoft의 성능 약정을 사용하여 전 세계 어디에서나 10ms 미만의 응답 시간을 달성하는 웹 및 모바일 애플리케이션을 지원하는 데이터 아키텍처를 구현할 수 있습니다.

게임

  • 데이터베이스 계층은 게임 애플리케이션의 중요한 구성 요소
  • 최신 게임은 모바일/콘솔 클라이언트에서 그래픽 처리를 하지만 클라우드에 의존하여 게임 내 통계, 소셜 미디어 통합 및 최고 점수 리더 보드와 같이 사용자 정의되고 개인화된 콘텐츠를 제공

IoT 시나리오

  • 사물 인터넷(IoT) 디바이스로 알려진 센서 데이터를 생성하도록 수십만 개의 장치가 설계 및 판매
  • 데이터 엔지니어는 Azure IoT Hub와 같은 기술을 사용하여 실시간 데이터를 캡처하는 데이터 솔루션
    아키텍처를 쉽게 설계
  • Cosmos DB는 이 정보를 매우 빠르게 받아들이고 저장 가능

Cosmos DB API

  • NoSQL API
  • MongoDB API
  • Cassandra API
  • Gremlin API
  • PostgreSQL API

API for NoSQL (이전 SQL API)

• 특징:JSON 문서 저장
• SQL과 유사한 쿼리 언어 사용
• HTTP/HTTPS 엔드포인트를 통한 통신

API for MongoDB

• 특징:MongoDB와 호환되는 API
• 기존 MongoDB 애플리케이션과 호환
• 문서 기반 데이터 모델이 필요한 애플리케이션
• 실시간 분석 및 대시보드

Cassandra API

• 특징:Apache Cassandra와 호환되는 API
• 와이드 컬럼 데이터 모델 지원
• 용도:대규모 IoT 데이터 수집 및 처리
• 시계열 데이터 관리
• 고성능 로깅 시스템

Gremlin API

  • 그래프 데이터베이스 API
  • Apache TinkerPop Gremlin과 호환
  • 용도: 소셜 네트워크 분석
  • 추천 엔진
  • 복잡한 관계 모델링 (예: 공급망 관리)

PostgreSQL API

  • 특징:PostgreSQL과 호환되는 관계형 데이터베스
  • 용도: 기존 API PostgreSQL 애플리케이션 마이그레이션
  • 관계형 데이터 모델이 필요한 애플리케이션
  • 쿼리와 트랜잭션이 필요한 시스템

Cosmos DB Migration Tool을 사용한 데이터 로드

데이터 마이그레이션 도구를 사용하여 다음을 비롯한 다양한 원본에서 Azure Cosmos DB 데이터를 가져올 수 있음

  • JSON 파일
  • MongoDB
  • SQL Server
  • CSV 파일
  • Azure Table Storage
  • Amazon DynamoDB HBase
  • Azure Cosmos 컨테이너
  • HBase
  • Azure Cosmos 컨테이너

RU(Request Unit)

요청 단위(RU)

Azure Cosmos DB에서 모든 데이터베이스 작업(읽기, 쓰기, 쿼리 등)의 비용을 측정하는 단위

  • 예를 들어, 1KB 항목에 대한 포인트 읽기는 항상 1 RU의 비용이 발생

비용 측정

각 데이터베이스 작업은 그 복잡도와 데이터 양에 따라 필요한 RU 수가 다름

  • 간단한 읽기 작업은 적은 RU를 소모하지만, 복잡한 쿼리나 대량의 데이터를 쓰는 작업은 더 많은 RU를 필요로 함

RU의 사용 및 관리

  • 프로비전된 처리량
    : 사용자는 초당 RU 수(RU/s)를 프로비전하여 애플리케이션의 처리량 요구를 충족 가능
  • 이때 RU는 지정된 데이터 세트와 작업에 따라 결정
  • 프로비전된 처리량 모드에서는 초당 100 RU 단위로 조정이 가능
  • 모니터링: Azure Portal에서는 RU 사용량을 모니터링할 수 있는 도구를 제공
  • 이를 통해 애플리케이션의 성능을 최적화하고 비용 효율성 높이기 가능

Azure Cosmos DB의 일관성

  • 단일 지역 내에서 Cosmos DB는 서버 클러스터를 사용
  • 이 방법은 확장성과 가용성을 향상시키는 데 도움
  • 모든 데이터의 복사본은 클러스터의 각 서버에 보관
  • 이 비디오에서는 이것이 어떻게 작동하는지, 그리고 일관성에 미치는 영향에 대해 설명

요약

  • Cosmos DB는 속도를 보장 받을 수 있으며 다양한 API를 제공하기 떄문에 용도에 따라서 다양한 활용이 가능
  • Cosmos DB의 사용 요금은 RU에 의해서 결정

Cosmos DB의 활용

Azure Cosmos DB 사용조건

Azure Cosmos DB에서 NoSQL을 사용하여 Python 코드로 연결하는 과정:

1. 필수 조건

Azure 계정 및 활성 구독
Azure Cosmos DB for NoSQL 계정 Python 3.7 이상

2. 선택사항

Azure CLI 또는 Azure PowerShell

요약

  • Cosmos DB 기반으로 데이터를 처리하는 코드를 작성하면 일괄성 및 응답 속도에 대한 고민 등 많은 부분이 해결
  • 단 비용적인 문제가 있기 때문에 광범위하게 사용하기 보다는 꼭 필요한 요소에 제한적으로 사용
profile
행복한 하루 보내세요

0개의 댓글