반응형

Azure 스토리지의 기능

Azure Blob 스토리지

  • Azure Blob 스토리지는 클라우드에서 매우 많은 양의 비정형 데이터를 Blob(이진 대형 개체)로 저장할 수 있는 서비스.
  • Blob은 데이터 파일을 클라우드 기반 스토리지에 최적화된 형식으로 저장하는 효율적인 방법.
  • 애플리케이션은 Azure Blob Storage API를 사용하여 데이터를 읽고 쓰기 가능.
  • Azure Storage 계정에서 Blob을 컨테이너에 저장.
  • 컨테이너는 관련 Blob을 함께 그룹화하는 편리한 방법을 제공.
  • 컨테이너 수준에서 컨테이너 내에서 Blob을 읽고 쓸 수 있는 사용자를 제어 가능.
  • 컨테이너 내에서 Blob을 디스크 파일 시스템에 있는 파일과 비슷하게 가상 폴더 계층 구조로 구성 가하지만 기본적으로 이러한 폴더는 Blob 이름에 "/" 문자를 사용하여 Blob을 네임스페이스로 구성하는 방법임. 즉, 폴더는 순전히 가상이므로 폴더 수준 작업을 수행하여 액세스를 제어하거나 대량 작업을 수행할 수 없음.
  • Azure Blob 스토리지는 세 가지 Blob 형식을 지원함.
    • 블록 Blob
      - 블록 집합으로 처리됨.
      - 각 블록의 크기는 최대 100MB까지 다양함.
      - 최대 5만 개의 블록을 포함할 수 있으며, 최대 4.7TB 이상의 크기를 제공.
      - 블록은 개별 단위로 읽거나 쓸 수 있는 가장 작은 데이터 양.
      - 자주 변경되지 않는 큰 불연속 이진 개체를 저장하는 데 가장 적합.
    • 페이지 Blob
      - 고정 크기 512바이트 페이지의 컬렉션으로 구성됨.
      - 임의 읽기 및 쓰기 작업을 지원하는 데 최적화되어 있음.
      - 필요한 경우 단일 페이지의 데이터를 가져오고 저장 가능.
      - 최대 8TB의 데이터를 보유 가능.
      - Azure는 페이지 Blob을 사용하여 가상 머신의 가상 디스크 스토리지를 구현함.
    • 추가 Blob
      - 추가 작업을 지원하는 데 최적화된 블록 Blob.
      - 추가 Blob의 끝에 블록을 추가할 수만 있으며, 기존 블록의 업데이트나 삭제는 지원되지 않음.
      - 각 블록의 크기는 최대 4MB까지 다양하며, 최대 크기는 195GB를 약간 넘음
  • 액세스 대기 시간과 스토리지 비용의 균형을 잡는 데 도움이 되는 세 가지 액세스 계층을 제공함.
    • 핫 계층
      - 기본값 층으로 자주 액세스하는 Blob에 사용함.
      - Blob 데이터는 고성능 미디어에 저장됨.
    • 쿨 계층
      - 핫 계층에 비해 성능이 낮고 스토리지 비용이 줄어듦.
      - 자주 액세스하지 않는 데이터에는 쿨 계층을 사용.
      - 새로 만든 Blob은 처음에는 자주 액세스하지만 시간이 지나면 액세스가 줄어드는 것이 일반적임.
      - 핫 계층에 Blob을 만들었다가 나중에 쿨 계층으로 마이그레이션 가능하고, 쿨 계층에서 다시 핫 계층으로 Blob을 마이그레이션도 가능.
    • 보관 계층
      - 스토리지 비용이 가장 저렴하지만 대기 시간이 증가함.
      - 보관 계층은 손실되면 안 되지만 드물게 필요한 기록 데이터를 위한 것임.
      - 보관 계층의 Blob은 사실상 오프라인 상태로 저장됨.
      - 핫 계층과 쿨 계층의 일반적인 읽기 대기 시간은 몇 밀리초이지만 보관 계층의 경우 데이터를 사용할 수 있으려면 몇 시간이 걸릴 수도 있음.
      - 보관 계층에서 Blob을 검색하려면 액세스 계층을 핫 또는 쿨로 변경해야하며, Blob이 리하이드레이션됨.
      - 리하이드레이션 프로세스가 완료되어야 Blob을 읽을 수 있음.

 

Azure Blob Storage

 

Azure DataLake Storage Gen2

  • Azure Data Lake Store(Gen1)는 분석 데이터 레이크용 계층적 데이터 스토리지를 위한 별도의 서비스로, 파일에 저장된 정형, 반정형 및 비정형 데이터를 사용하는 소위 빅 데이터 분석 솔루션에서 자주 사용됨. 
  • Azure Data Lake Storage Gen2는 Azure Storage에 통합된 이 서비스의 최신 버전.
  • 계층적 파일 시스템 기능 및 Azure Data Lake Store의 주요 분석 시스템과의 호환성과 결합된 Blob 스토리지의 확장성과 스토리지 계층의 비용 제어를 활용 가능.
  • Azure HDInsight, Azure Databricks, Azure Synapse Analytics의 Hadoop과 같은 시스템은 Azure Data Lake Store Gen2에서 호스트되는 분산 파일 시스템을 탑재하고 이를 사용하여 방대한 양의 데이터를 처리 가능.
  • Azure Data Lake Store Gen2 파일 시스템을 만들려면 Azure Storage 계정의 계층 구조 네임스페이스 옵션을 사용해야 함.
  • 스토리지 계정을 처음 만들 때 이 작업을 수행하거나 Data Lake Gen2를 지원하도록 기존 Azure Storage 계정을 업그레이드 가능하지만 업그레이드는 단방향 프로세스임.
  • 즉, Blob 스토리지에 계층 구조 네임스페이스를 지원하도록 스토리지 계정을 업그레이드한 후에는 단일 구조 네임스페이스로 되돌릴 수 없음.

 

Azure DataLake Storage Gen2

 

Azure 파일 스토리지

  • Azure Files는 기본적으로 온-프레미스 조직에서 여러 사용자가 문서 및 기타 파일을 사용할 수 있도록 하는 것과 같이 클라우드 기반 네트워크 공유를 만드는 방법.
  • 조직은 Azure에서 파일 공유를 호스트하여 하드웨어 비용 및 유지 관리 오버헤드를 제거하고 파일에 대한 고가용성 및 확장 가능한 클라우드 스토리지를 활용 가능.
  • Azure Files를 사용하면 단일 스토리지 계정에서 최대 100TB의 데이터를 공유 가능.
  • 데이터는 계정의 여러 파일 공유에 분산 가능.
  • 단일 파일의 최대 크기는 1TB이지만 할당량을 설정하여 각 공유의 크기를 이 수치 이하로 제한 가능.
  • 현재 Azure File Storage는 공유 파일당 최대 2,000개의 동시 연결을 지원함.
  • 스토리지 계정을 만든 후 Azure Portal에서 또는 AzCopy 유틸리티와 같은 도구를 사용하여 Azure File Storage에 파일을 업로드 가능.
  • Azure 파일 동기화 서비스를 사용하여 로컬로 캐시된 공유 파일의 복사본을 Azure File Storage의 데이터와 동기화 가능.
  • Azure File Storage는 두 가지 성능 계층을 제공.
    • 표준 계층 -  데이터 센터에서 하드 디스크 기반 하드웨어를 사용.
    • 프리미엄 계층 - SSD(반도체 드라이브)를 사용.
  • Azure Files는 두 가지 일반적인 네트워크 파일 공유 프로토콜을 지원.
    • SMB(서버 메시지 블록) 파일 공유 - 여러 운영 체제(Windows, Linux, macOS)에서 일반적으로 사용됨.
    • NFS(네트워크 파일 시스템) 공유 - 일부 Linux 및 macOS 버전에서 사용됨. NFS 공유를 만들려면 프리미엄 계층 스토리지 계정을 사용하고 공유에 대한 액세스를 제어할 수 있는 가상 네트워크를 만들고 구성해야 함.

 

Azure File Storage

 

Azure Table 스토리지

  • Azure Table Storage는 키/값 데이터 항목이 포함된 테이블을 사용하는 NoSQL 스토리지 솔루션.
  • 각 항목은 저장해야 하는 데이터 필드의 열이 포함된 행으로 표현됨.
  • Azure Table Storage 테이블이 관계형 데이터베이스의 테이블과 유사하다고 생각하면 안됨.
  • Azure 테이블을 사용하면 반정형 데이터를 저장 가능.
  • 테이블의 모든 행에는 고유한 키(파티션 키 및 행 키로 구성됨)가 있어야 하며, 테이블에서 데이터를 수정하면 타임스탬프 열에 수정한 날짜 및 시간이 기록됨. 그 외에는 각 행의 열이 다를 수 있음.
  • Azure Table Storage 테이블에는 관계형 데이터베이스에서 볼 수 있는 외래 키, 관계, 저장 프로시저, 뷰 또는 기타 개체에 대한 개념이 없음.
  • Azure Table Storage의 데이터는 일반적으로 비정규화되며, 각 행은 논리적 엔터티의 전체 데이터를 보유함.
  • Azure Table Storage는 빠르게 액세스할 수 있도록 테이블을 파티션으로 분할함.
  • 분할은 공통 속성 또는 파티션 키를 기준으로 관련 행을 그룹화하는 메커니즘임.
  • 동일한 파티션 키를 공유하는 행은 함께 저장됨.
  • 분할은 데이터를 구성하는 데 도움이 될 뿐 아니라 확장성 및 성능을 향상시킬 수 있음.
    • 파티션은 서로 독립적이며, 파티션에 행이 추가되거나 제거됨에 따라 확장 또는 축소 가능함. 테이블은 원하는 수만큼 파티션을 포함할 수 있음
    • 데이터를 검색할 때 검색 조건에 파티션 키를 포함할 수 있음. 검사할 데이터 볼륨의 범위를 좁히는 데 도움이 되고, 데이터를 찾는 데 필요한 I/O(입력 및 출력 작업 또는 읽기 및 쓰기)의 양이 줄어들어 성능이 향상됨.

 

Azure Table Storage

 

Azure Cosmos DB의 기능 및 특징

Azure Cosmos DB

  • Azure Cosmos DB는 개발자가 여러 종류의 일반적인 데이터 저장소 프로그래밍 의미 체계를 사용하여 Cosmos DB 데이터베이스의 데이터로 작업할 수 있도록 하는 여러 API(애플리케이션 프로그래밍 인터페이스)를 지원함.
  • 내부 데이터 구조가 추상화되었기 때문에 개발자는 Cosmos DB를 사용하여 이미 익숙한 API를 통해 데이터를 저장하고 쿼리 가능.
  • Cosmos DB는 인덱스와 분할을 사용하여 빠른 읽기 및 쓰기 성능을 제공하고 대용량 데이터로 확장 가능.
  • 전역적으로 분산된 사용자가 각각 로컬 복제본의 데이터로 작업할 수 있도록 선택한 Azure 지역을 Cosmos DB 계정에 추가한 후 다중 지역 쓰기를 사용하도록 설정 가능.
  • Cosmos DB는 확장성이 뛰어난 데이터베이스 관리 시스템.
  • 컨테이너에 파티션 공간을 자동으로 할당하며, 각 파티션의 크기는 최대 10GB까지 늘릴 수 있음.
  • 인덱스는 자동으로 생성 및 유지 관리되어 사실상 관리 오버헤드가 없음.
  • Cosmos DB는 Azure의 기본 서비스로 Skype, Xbox, Microsoft 365, Azure 등 글로벌 규모의 중요 업무용 애플리케이션을 위해 많은 Microsoft 제품에서 사용되어졌음

 

Azure Cosmos DB의 사용 사례

  • IoT 및 텔레매틱스
    - 일반적으로 자주 버스트되는 작업을 통해 많은 양의 데이터를 수집함.
    - Cosmos DB는 이 정보를 빠르게 받아 저장 가능하며, Azure Machine Learning, Azure HDInsight, Power BI와 같은 분석 서비스에서 데이터를 사용 가능.
    - 데이터가 데이터베이스에 도착할 때 트리거되는 Azure Functions를 사용하여 실시간으로 데이터를 처리 가능.
  • 소매 및 마케팅
    - Microsoft는 Windows 스토어 및 Xbox Live의 일부로 실행되는 자체 전자 상거래 플랫폼에 CosmosDB를 사용함.
    - 소매 업계의 경우 카탈로그 데이터 저장에, 주문 처리 파이프라인의 경우 이벤트 소싱에도 사용됨.
  • 게임
    - 데이터베이스 계층은 게임 애플리케이션의 중요한 구성 요소임.
    - 오늘날의 게임은 모바일/콘솔 클라이언트에서 그래픽 처리를 수행하지만 게임 내 통계, 소셜 미디어 통합 및 고득점 순위표와 같은 사용자 지정되고 개인 설정된 콘텐츠를 제공하기 위해 클라우드에 의존함.
    - 매력적인 인게임 환경을 제공하기 위해서는 몇 밀리초 단위의 읽기 및 쓰기 대기 시간이 필요한 경우가 많음.
    - 게임 데이터베이스는 속도가 빨라야 하며 신규 게임 출시 및 기능 업데이트 동안 요청 속도의 대량 스파이크를 처리할 수 있어야함.
  • 웹 및 모바일 애플리케이션
    - Azure Cosmos DB는 일반적으로 웹 및 모바일 애플리케이션 내에서 사용되며 소셜 상호 작용을 모델링하여 타사 서비스와 통합하고 풍부한 개인 설정 환경을 빌드하는 데 적합함.
    - Cosmos DB SDK는 인기 있는 Xamarin 프레임워크를 사용하여 다양한 iOS 및 Android 애플리케이션을 빌드하는 데 사용가능.

 

Azure Cosmos DB API

  • Azure Cosmos DB는 여러 API를 지원하므로 개발자는 일반적으로 사용되는 NoSQL 저장소에서 데이터를 쉽게 마이그레이션하고 기존 프로그래밍 기술을 적용 가능.
  • 새 Cosmos DB 인스턴스를 프로비저닝할 때 사용할 API를 선택함. API 선택은 저장할 데이터 형식, 기존 애플리케이션을 지원해야 하는 필요성 및 데이터 저장소로 작업할 개발자의 API 기술을 비롯한 여러 요인에 따라 달라짐.

Core(SQL) API

  • Cosmos DB의 네이티브 API는 JSON 문서 형식의 데이터를 관리하며 NoSQL 데이터 스토리지 솔루션임에도 불구하고 SQL 구문을 사용하여 데이터를 사용함.

 

Core(SQL) API

 

MongoDB API 

  • MongoDB는 데이터가 BSON(Binary JSON) 형식으로 저장되는 인기 있는 오픈 소스 데이터베이스.
  • Azure Cosmos DB MongoDB API를 사용하면 개발자가 MongoDB 클라이언트 라이브러리를 사용하여 Azure Cosmos DB의 데이터로 작업하고 코드를 사용 가능.
  • MQL(MongoDB 쿼리 언어)은 개발자가 개체를 사용하여 메서드를 호출하는 컴팩트한 개체 지향 구문을 사용함.

 

MongoDB API

 

Table API 

  • Table API는 Azure Table Storage와 유사한 키-값 테이블의 데이터로 작업하는 데 사용됨.
  • Azure Cosmos DB Table API는 Azure Table Storage보다 뛰어난 확장성과 성능을 제공함.

 

Table API

 

Cassandra API

  • Cassandra API는 열 패밀리 스토리지 구조를 사용하는 인기 오픈 소스 데이터베이스인 Apache Cassandra와 호환됨.
  • 열 패밀리는 관계형 데이터베이스의 테이블과 유사하며 모든 행에 동일한 열을 포함해야 하는 것은 아님.

 

Cassandra API

 

Gremlin API 

  • Gremlin API는 그래프 구조의 데이터와 함께 사용되며 엔터티가 연결된 그래프에서 노드를 형성하는 꼭짓점으로 정의됨.
  • 노드는 관계를 나타내는 에지에 의해 연결됨.
  • Gremlin 구문에는 꼭짓점 및 에지에서 작동하는 함수가 포함되어 있어 그래프에서 데이터를 삽입, 업데이트, 삭제 및 쿼리 가능.

 

Gremlin API

 

 


 

이전

 

[Azure 자격증 - DP-900] Azure에서 관계형 데이터에 대한 고려 사항 - Part 2

Azure 관계형 데이터베이스 서비스 Azure SQL Database, Azure SQL을 포함한 Azure SQL 제품군에 대한 설명 Azure SQL은 Azure의 Microsoft SQL Server 기반 데이터베이스 서비스 제품군을 통칭하는 용어임. Azure..

epictrave.tistory.com

 

다음 글

 

[Azure 자격증 - DP-900] Azure에서 분석 워크로드 설명 - Part 1

최신 데이터 웨어하우스의 일반적인 요소 데이터 수집 및 처리에 대한 고려 사항 대규모 데이터 웨어하우징 아키텍처는 이를 구현하는 데 사용되는 특정 기술과 마찬가지로 다를 수 있으나

epictrave.tistory.com

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기