본문 바로가기

인공지능,프로그래밍/MS Azure

Azure 스토리지 서비스 유형

Azure 스토리지 서비스 유형

1. Azure Blob Storage (Binary Large Object Storage)

정의: Azure Blob Storage는 Microsoft의 클라우드 기반 객체 스토리지 솔루션으로, 대량의 비구조화된 데이터(텍스트 또는 이진 데이터)를 저장하기 위해 최적화되어 있습니다.

특징:

  • 대규모 비구조화 데이터 저장에 적합
  • 전 세계 어디서나 HTTP/HTTPS를 통해 접근 가능
  • 최대 190.7 TiB까지의 데이터 저장 가능
  • 다양한 데이터 액세스 티어(핫, 쿨, 아카이브) 제공

Blob 유형:

  1. 블록 Blob: 텍스트와 이진 데이터 저장에 최적화. 개별적으로 관리할 수 있는 블록으로 구성
  2. 추가 Blob(Append Blob): 블록 Blob과 유사하지만 추가 작업에 최적화. 로깅 시나리오에 이상적
  3. 페이지 Blob: 임의 액세스 파일을 위한 스토리지로, Azure 가상 머신의 VHD 파일 저장에 사용

주요 사용 사례:

  • 웹 브라우저에 직접 이미지나 문서 제공
  • 분산 액세스를 위한 파일 저장
  • 비디오 및 오디오 스트리밍
  • 로그 파일 작성
  • 백업, 복구, 재해 복구 및 아카이빙을 위한 데이터 저장
  • 분석을 위한 데이터 저장

2. Azure Table Storage

정의: Azure Table Storage는 클라우드에서 비관계형 구조화 데이터(NoSQL 데이터)를 저장하기 위한 서비스로, 키/속성 저장소를 제공하며 스키마가 없는 설계를 특징으로 합니다.

특징:

  • 유연한 스키마리스(schemaless) 설계
  • 대규모 구조화된 데이터 저장에 적합
  • 테라바이트(TB) 규모의 데이터 처리 가능
  • 클러스터링된 인덱스를 통한 빠른 쿼리 지원
  • OData 프로토콜 및 LINQ 쿼리 지원

데이터 구조:

  1. 테이블: 엔티티 모음으로, 스키마를 강제하지 않음
  2. 엔티티: 속성의 집합으로, 데이터베이스 행과 유사 (최대 1MB)
  3. 속성: 이름-값 쌍으로, 각 엔티티는 최대 252개의 속성을 가질 수 있음

주요 사용 사례:

  • 복잡한 조인, 외래 키 또는 저장 프로시저가 필요 없는 데이터셋 저장
  • 사용자 데이터, 카탈로그 데이터, 디바이스 정보 등 유연한 데이터셋 저장
  • 웹 규모 애플리케이션을 위한 대용량 구조화 데이터 저장

3. Azure Queue Storage

정의: Azure Queue Storage는 대량의 메시지를 저장하기 위한 서비스로, HTTP 또는 HTTPS를 통한 인증된 호출을 사용하여 전 세계 어디서나 메시지에 액세스할 수 있습니다.

특징:

  • 최대 64KB 크기의 메시지 저장
  • 비동기 메시지 큐잉 제공
  • 애플리케이션 구성 요소 간 통신 지원
  • 클라우드 및 온프레미스 환경에서 접근 가능
  • 높은 확장성과 처리량 제공

구성 요소:

  1. URL 형식: 큐는 'https://.queue.core.windows.net/' 형식의 URL로 주소 지정
  2. 스토리지 계정: 모든 Azure Storage 액세스는 스토리지 계정을 통해 이루어짐
  3. : 메시지 집합을 포함하는 저장소
  4. 메시지: 최대 64KB 크기의 데이터 단위로, 구성 가능한 TTL(Time-to-Live) 설정 보유

주요 사용 사례:

  • 비동기 처리를 위한 작업 백로그 생성
  • Web-Queue-Worker 아키텍처 패턴 구현
  • 분산 시스템 구성 요소 간의 안정적인 통신

4. Azure Files

정의: Azure Files는 업계 표준 SMB(Server Message Block) 프로토콜, NFS(Network File System) 프로토콜 및 Azure Files REST API를 통해 접근 가능한 클라우드 기반 완전 관리형 파일 공유 서비스입니다.

특징:

  • 클라우드와 온프레미스 배포에서 동시에 마운트 가능
  • 다중 프로토콜 지원 (SMB, NFS, REST API)
  • 완전 관리형 서비스로 하드웨어 관리 불필요
  • PowerShell, Azure CLI, Azure Portal을 통한 관리
  • 고가용성 및 복원력 설계

지원 프로토콜:

  1. SMB 프로토콜: Windows, Linux, macOS 클라이언트에서 접근 가능
  2. NFS 프로토콜: Linux 클라이언트에서 접근 가능
  3. Azure Files REST API: 프로그래밍 방식의 액세스 지원

주요 사용 사례:

  • 온프레미스 파일 서버 대체 또는 보완
  • 클라우드로의 애플리케이션 '리프트 앤 시프트'
  • 클라우드 개발 단순화
  • 상태 저장(stateful) 컨테이너용 영구 볼륨
  • 다양한 가상 머신에서 액세스해야 하는 개발 및 디버깅 도구 저장

Azure 스토리지 서비스 간의 관계

표: Azure 스토리지 서비스 비교

특성Azure Blob StorageAzure Table StorageAzure Queue StorageAzure Files
데이터 유형 비구조화 데이터 반구조화 데이터 메시지 파일 기반 데이터
주요 사용 사례 멀티미디어 저장, 백업, 스트리밍 NoSQL 데이터베이스, 유연한 데이터셋 메시지 큐잉, 비동기 처리 파일 공유, 클라우드 파일 시스템
최대 크기 블록 Blob: ~190.7 TiB
페이지 Blob: 8 TiB
엔티티: 1MB (Azure), 2MB (Cosmos DB) 메시지: 64 KB 파일 공유: 100 TiB
액세스 프로토콜 HTTP/HTTPS, REST API, SFTP, NFS 3.0 OData, HTTP/HTTPS HTTP/HTTPS SMB, NFS, REST API
통합 Azure Data Lake, CDN Azure 애플리케이션 Azure Functions Azure Active Directory
확장성 대규모 확장성 테라바이트 규모 확장성 대용량 메시지 처리 엔터프라이즈급 파일 공유
접근 방식 URL, 스토리지 클라이언트 파티션 키 및 행 키 기반 메시지 큐 네트워크 파일 공유 마운트
관리 Azure Portal, PowerShell, CLI, SDK Azure Portal, SDK Azure Portal, SDK Azure Portal, PowerShell, CLI
데이터 구조화 없음 (자유 형식) 반구조화 (엔티티/속성) 메시지 기반 파일 및 폴더 계층

스토리지 계정과의 관계

모든 Azure 스토리지 서비스(Blob, Table, Queue, Files)는 Azure 스토리지 계정 내에 존재합니다. 스토리지 계정은 글로벌 네임스페이스를 제공하고 스토리지 유형에 따라 다양한 종류가 있습니다:

  1. 표준 범용 v2: Blob, Table, Queue, Files 스토리지를 모두 지원하는 가장 일반적인 스토리지 계정 유형
  2. 프리미엄 블록 Blob: 블록 Blob과 추가 Blob에 최적화된 고성능 스토리지 계정
  3. 프리미엄 파일 공유: Azure Files에 최적화된 계정으로 SMB 및 NFS 프로토콜 지원
  4. 프리미엄 페이지 Blob: 페이지 Blob 전용 고성능 스토리지 계정

Azure 스토리지 서비스 마인드맵

Azure Storage Services
│
├── Azure Blob Storage
│   ├── 특징
│   │   ├── 대규모 비구조화 데이터 저장
│   │   ├── 전 세계 접근성
│   │   └── 데이터 티어링 (핫/쿨/아카이브)
│   │
│   ├── Blob 유형
│   │   ├── 블록 Blob (일반 데이터)
│   │   ├── 추가 Blob (로그 데이터)
│   │   └── 페이지 Blob (VM 디스크)
│   │
│   └── 사용 사례
│       ├── 이미지/비디오 저장
│       ├── 백업 및 아카이빙
│       └── 스트리밍 미디어
│
├── Azure Table Storage
│   ├── 특징
│   │   ├── 스키마리스 NoSQL 데이터베이스
│   │   ├── 키/값 저장소
│   │   └── 빠른 쿼리 성능
│   │
│   ├── 데이터 구조
│   │   ├── 테이블 (엔티티 모음)
│   │   ├── 엔티티 (행과 유사)
│   │   └── 속성 (열과 유사)
│   │
│   └── 사용 사례
│       ├── 사용자 데이터 저장
│       ├── 디바이스 정보 저장
│       └── 카탈로그 데이터
│
├── Azure Queue Storage
│   ├── 특징
│   │   ├── 비동기 메시지 큐잉
│   │   ├── 최대 64KB 메시지 크기
│   │   └── 고가용성 설계
│   │
│   ├── 구성 요소
│   │   ├── URL 형식
│   │   ├── 스토리지 계정
│   │   ├── 큐
│   │   └── 메시지
│   │
│   └── 사용 사례
│       ├── 작업 백로그 생성
│       ├── 애플리케이션 구성 요소 간 통신
│       └── 웹-큐-워커 아키텍처
│
├── Azure Files
│   ├── 특징
│   │   ├── 완전 관리형 파일 공유
│   │   ├── 클라우드/온프레미스 액세스
│   │   └── 친숙한 파일 시스템 인터페이스
│   │
│   ├── 지원 프로토콜
│   │   ├── SMB (다중 플랫폼)
│   │   ├── NFS (Linux)
│   │   └── REST API (프로그래밍)
│   │
│   └── 사용 사례
│       ├── 온프레미스 파일 서버 대체
│       ├── 애플리케이션 리프트 앤 시프트
│       └── 컨테이너용 영구 볼륨
│
└── 스토리지 계정 (통합 컨테이너)
    ├── 표준 범용 v2 (모든 스토리지 유형)
    ├── 프리미엄 블록 Blob (고성능 Blob)
    ├── 프리미엄 파일 공유 (고성능 Files)
    └── 프리미엄 페이지 Blob (VM 디스크)

스토리지 서비스 간의 주요 관계

  1. 통합 관리: 모든 스토리지 서비스는 Azure 스토리지 계정 내에서 관리되며 동일한 보안, 확장성 및 내구성 혜택을 공유합니다.
  2. 보완적 기능: 각 스토리지 서비스는 다양한 데이터 유형과 사용 사례를 다루도록 설계되었습니다:
    • Blob Storage: 대용량 비구조화 데이터(이미지, 비디오, 백업)
    • Table Storage: 구조화된 비관계형 데이터(사용자 프로필, 디바이스 정보)
    • Queue Storage: 애플리케이션 컴포넌트 간 통신(메시지 전달)
    • Azure Files: 파일 시스템 기반 데이터 공유(문서, 구성 파일)
  3. 접근 방식의 차이점:
    • Blob Storage는 객체 기반으로 URL을 통해 접근
    • Table Storage는 키 기반 접근 방식 사용
    • Queue Storage는 FIFO(First-In-First-Out) 메시지 처리 구조 제공
    • Azure Files는 네트워크 드라이브처럼 마운트하여 접근
  4. 통합 애플리케이션 시나리오: 복잡한 애플리케이션은 종종 여러 스토리지 서비스를 함께 사용합니다:
    • 웹 애플리케이션이 Blob Storage에 미디어 저장
    • Table Storage에 메타데이터 저장
    • Queue Storage로 비동기 작업 조정
    • Azure Files로 구성 파일 공유

이러한 Azure 스토리지 서비스는 각각 고유한 특징과 사용 사례를 가지고 있지만, 함께 사용하여 복잡한 클라우드 솔루션을 구축할 수 있는 통합된 스토리지 에코시스템을 형성합니다. 모든 서비스는 스토리지 계정이라는 통합 컨테이너를 통해 관리되며, 이를 통해 일관된 보안, 확장성, 모니터링이 가능합니다.