스토리지 계정(Azure Storage Accounts)

- Azure Storage Account는 Microsoft Azure에서 클라우드 데이터를 저장하고 관리하기 위한 기본 단위
- 안전하고 확장 가능하며 다양한 데이터 유형에 적합한 저장 서비스를 제공
- 확장성 및 가용성
: 대규모 데이터를 처리할 수 있는 확장 가능한 저장소를 제공하며, 높은 가용성과 복원력을 보장합니다.
- 다양한 데이터 유형 지원
: 구조적, 비구조적 데이터 및 반구조적 데이터를 저장할 수 있습니다.
- 보안 및 규정 준수
: 데이터 암호화, 액세스 제어, 보안 인증 등 다양한 보안 기능을 제공하며, 산업 표준 규정을 준수합니다.
- 전 세계 복제 옵션
: 데이터 손실 방지를 위해 지역 복제(LRS), 지리적 복제(GRS), 읽기 전용 지리적 복제(RA-GRS) 등의 복제 옵션을 제공합니다.
- 유연한 요금제
: 사용량 기반 과금 모델로 비용 효율성을 극대화합니다.
종류
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 애플리케이션 마이그레이션
- 관계형 데이터 모델이 필요한 애플리케이션
- 쿼리와 트랜잭션이 필요한 시스템
데이터 마이그레이션 도구를 사용하여 다음을 비롯한 다양한 원본에서 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 기반으로 데이터를 처리하는 코드를 작성하면 일괄성 및 응답 속도에 대한 고민 등 많은 부분이 해결
- 단 비용적인 문제가 있기 때문에 광범위하게 사용하기 보다는 꼭 필요한 요소에 제한적으로 사용