Azure 서비스 비교: Storage accounts 와 SQL Database 는 무엇이 다른가?

글 작성 배경

최근에 새 프로젝트 참여 기회가 생겼다. 면담 과정에서 Azure Data Factory에 대한 실무 경험과 지식이 필요하다는 것을 알게 되었지만, 나는 Data Factory를 사용해 본 적이 없어 공부를 시작하게 되었다.

저장소(Blog Storage)와 SQL Database간의 데이터 이동 시나리오가 Micosoft 자습서에 나오는데, 이 두 서비스가 각각 스토리지와 데이터베이스라는 서로 다른 범주에 속한다는 것은 분명했으나, 구체적인 차이점은 잘 모르겠다. (둘 다 사용해 본 경험은 있지만)

이 포스트를 통해 그 차이점을 명확히 정리하고자 한다.

블로그 포스팅 소개

Beyond the Hrizon

Rajaniesh Kaushikk is a TOGAF Certified Enterprise Architect with over 22 years of experience in delivering complex software application architectures for Fortune 500 companies. He specializes in Hybrid Cloud, Azure Cloud, Power BI, Azure Synapse, Data Lake, Data Warehouse, HDInsight, Databricks Lakehouse, Snowflake, Azure DevOps, Kubernetes, and production debugging. Rajaniesh holds several industry certifications, including Databricks Champion, Databricks Certified Data Engineer Professional, Microsoft Certified Azure Solutions Architect Expert, Snowflake SnowPro core, Snowflake Advanced Architect, and Microsoft Certified Trainer. He is also a blogger, YouTuber, and speaker on various Microsoft technology events.

*자료 찾다가 우연히 발견하게 된 블로거

Storage accounts 란?

Azure Storage Accounts 는 다양한 유형의 데이터 저장 옵션을 제공한다. Blob Storage, File Storage, Queue 와 Table Storage 로 구성된 4가지 타입의 데이터를 활용할 수 있다.


Beyond the Horizon

File Service

서버간의 파일 공유(File share)에 사용되며, SMB 프로토콜을 통해 클라우드에서 파일 시스템으로도 사용이 가능하다.

Blob Service

일반적으로 대규모 텍스트 혹은 바이너리(Bin) 데이터를 저장하는데 사용되며 이미지, 동영상, 로그 파일 등을 보존하는데 이용된다. Blob 스토리지는 대용량의 비정형 데이터1를 저장하는 데 적합하다. 예를 들어, 수많은 이미지 파일이나 비디오 클립과 같이 구조화되지 않은 데이터가 이에 해당한다.

Tip. ‘Blob’은 Binary Large Object의 축약어

File Service 와 Blob Service 는 무엇이 다른가?

  • 파일 서비스클라우드 기반의 파일 공유를 제공한다.
    1. 여러 가상 머신에서 파일을 공유하거나 On-premise 시스템과 통합 가능
  • 블롭 서비스는 대용량의 비정형 데이터를 저장하는 데 적합하다.
    1. 웹 사이트의 이미지나 동영상, 분석용 데이터 등을 위한 서비스
    2. 파일 공유와 비교해 훨씬 큰 규모의 데이터를 저장 가능
    3. HTTP 프로토콜을 이용해 접근성이 뛰어남

Table Service

NoSQL 데이터 스토어로 구조화된 데이터를 저장하고 접근하는 데 사용되며, Key-Value 를 사용한다.

Tip. Table Service 는 전통적인 SQL 데이터베이스의 구조화 된 데이터와는 다른 형태이다.

Queue Service

메시지 대기열 서비스로, Application 구성 요소(Component)간의 메시지를 비동기적으로 전달하고 처리하는 데 사용된다.

Memo. 다음 기회에 포스트 주제로 Queue 서비스에 대해서 포스팅

SQL Database 란?

SQL 데이터베이스는 테이블 형태로 정렬되어 있어 관계를 정의하고 복잡한 쿼리를 실행할 수 있는 구조화된 데이터를 관리하는 데 특화되어 있습니다.

Point 1. 완전 관리형(Full-managed) 서비스

완전 관리형(Full-managed)2 SQL DB는 유저가 유지보수 작업(Maintenence)에 신경쓰지 않도록 지원한다.

  • 고가용성: 장애가 발생해도 계속해서 사용 가능하도록 지원
  • 자동 튜닝: 시스템이 자동으로 쿼리 실행 계획을 조정 및 인덱스를 관리(성능 최적화) 지원
  • 백업: 데이터 손실 방지를 위한 정기적인 저장 지원

Point2. 개발 과정 간소화

기존 환경에서 개발 과정 이외의 업무를 신경쓰지 않도록 지원한다.

  • 프로그래밍 언어: 다양한 언어를 지원하고 네이티브 서비스로 Functions 및 App Serivce 와 연계가 가능하다.
  • 공유 기능: 여러 개발자와 서비스를 공유하며 작업할 수 있다.

Point3. 하이퍼스케일 기능

서비스의 규모가 변경되더라도 문제 없이 지속 가능하도록 지원한다.

  • 스토리지 최대 100GB 확장 지원
  • 대용량 데이터 베이스도 빠른 백업과 복원을 지원
  • 서버리스 옵션: 사용량에 따라 컴퓨팅 리소스가 자동으로 조절되며, 종량제(PAYGO)로 비용 효율성 증가

Azure Hybrid 혜택 소개

기존 SQL Server 라이센스를 보유하고 있는 고객은 클라우드에서 비용을 절약할 수 있다.
장기적으로 예약 구매(Reserved) 옵션을 사용하며 더 큰 비용 절감 효과를 얻을 수 있다.

궁금했던 포인트 정리

Table Services 와 Database 의 차이점

Azure Storage Account 내의 테이블 서비스는 NoSQL 데이터 스토어로, 대규모의 비관계형 데이터를 저장하고 관리하는 데 적합합니다. 간단한 트랜잭션이나 대량의 비관계형 데이터를 빠르게 저장하고 검색해야 할 때 유용합니다. 테이블 서비스는 관계형 데이터베이스 시스템이 제공하는 것처럼 복잡한 조인, 외래 키, 저장 프로시저 또는 트랜잭션을 지원하지 않습니다.

반면에 Azure SQL 데이터베이스는 완전 관리형 관계형 데이터베이스 서비스로, 복잡한 쿼리, 트랜잭션, 관계형 데이터 무결성, 프로시저 등을 지원합니다. 개발자가 관계형 데이터 모델링이 필요하거나, SQL 기반의 복잡한 쿼리를 실행해야 하거나, 데이터 무결성을 유지해야 하는 경우에 SQL 데이터베이스를 선택합니다.

Summary of concepts

  1. 비정형 데이터(Unstructured Data)란?

    전통적인 데이터 베이스(SQL Database)에서 다루기 어려운 형태의 데이터를 말한다.
    예) 텍스트, 이미지, 오디오, 비디오 등

    Tip. 구조화 되지 않아서 처리하기 위해서는 다른 기술과 도구(Tool)가 필요하다.
    ↩︎
  2. 완전 관리형)Full-managed) 이란?

    서비스 제공업체(Service Provider)가 모든 유지보수, 업데이트 등의 기술적인 작업을 대신 처리해 주는 것을 의미한다. 이러한 운영적인 부분에 신경쓰지 않고 다른 업무에 집중할 수 있도록 하기 위한 서비스다.
    ↩︎