본문 바로가기
기술 단어장/Cloud

[Azure] Blob Storage의 구조 및 보안 설정 분석

by MFDO 2025. 3. 27.

 

 

 

 

 

 

 

대용량 설치파일 및 유저 리소스 저장을 위한

파일 저장소가 필요했다.

 

 

Azure 크래딧을 이용중이고

서버도 Azure VM에서 구동되고 있는 상황이다.

 

 

설치파일 용량이 10-15GB 정도이고,

유저 개인 리소스가 최소 개당 300MB이기에 꽤나 크기가 크다

그런 이유로 Azure Blob Storage를 이용하고자 했다.

 

 

저장소를 생성하며

각각 옵션의 선정이유와 특징을 정리했다.

 

 

 


 

 

Blob Storage 구조

: Binary Large Object의 줄임말로, 이미지, 동영상, 로그, ZIP 같은 비정형 데이터 저장용 서비스

 

블롭 스토리지는 아래와 같이 구성된다

 

주체 역할
Storage Account  - Blob뿐만 아니라 File, Table, Queue 등 다양한 저장소를 통합해서 관리하는 단위
Container  - Blob 파일들을 모아두는 논리적 공간. AWS의 S3 Bucket과 거의 같은 개념
 -일반적으로는 비공개로 두고 SAS URL 같은 보안 링크로 접근 권한 제공
 - CDN 연결하거나, 정적 웹 사이트 호스팅 시 이 컨테이너의 URL이 메인이 됨
Blobs  - Block Blob: 대형 파일 저장에 최적화됨
 - Append Blob: 로그나 스트리밍용 → 항상 뒤에 붙이기만 가능
 - Page Blob: 디스크처럼 random read/write 가능 → VM 디스크 용도로 사용

 

 

 

 


 

 

Blobs의 종류

: Azure에서 Blobs를 어떤 기능으로 구분하는지 상세히 알아보자

 

 

Storage Account 생성 시 설정하는 기본 서비스

 

 

 

 


 

 

 

1️⃣ Block Blob 

 

용도:

  • 이미지, 비디오, .zip, .exe, 게임 설치 파일, 백업 파일 등 일반적인 대형 파일 저장용

구조:

  • 파일을 여러 Block(최대 4000개)으로 쪼개서 저장하고,
    업로드 끝나면 Commit해서 하나의 Blob으로 만드는 방식

특징:

  • 최대 크기: ~190.7TB까지 가능 (Premium 계층)
  • 병렬 업로드, 대용량 파일 업로드에 최적!

예시:

az storage blob upload --type block ...

 

 

 


 

2️⃣ Append Blob

 

 

용도:

  • 로그 수집, 스트리밍 데이터 (예: 웹서버 로그, IoT 센서 로그 등)

특징:

  • 기존 Blob 내용은 수정 불가
  • 맨 뒤에 새로운 데이터 블록을 계속 덧붙이는 방식
  • 더 빠르고 간단하게 쓰기만 하면 되는 경우 권장

장점:

  • 변경 걱정 없이 append만 가능 → 로그 안정성 확보
  • Blob 파일이 커지더라도 안정적 유지됨

예시:

az storage blob append ...

 

 

 


 

 

3️⃣ Page Blob 

 

용도:

  • Azure VM의 OS 디스크나 데이터 디스크
  • 랜덤 읽기/쓰기가 필요한 디스크 I/O 기반 작업

특징:

  • 512바이트 단위의 Page로 나뉘어 있음
  • 특정 위치에만 접근하거나 수정 가능 → 마치 HDD, SSD처럼 작동
  • 최대 크기: 8TB

쓰임새:

  • Azure Managed Disks의 백엔드 스토리지 타입
  • 직접 파일 저장용으로 쓰는 건 드물고, VM 디스크와 관련되면 이걸 써야 함

예시:

az storage blob upload --type page ...

 

 

 

 


 

 

 저장소 계정 보안 옵션

: 적절한 보안 설정이 요구된다. 현재 테스트용으로 임시 사용이기에 낮은 보안을 택했다.

 

 

현재 설정한 옵션

 


 

 

REST API  작업을 위한 보안 전송 필요 ( ❌ )

: 체크시 Blob Storage에 HTTPS로만 접근 가능하게 해줌

 

 

 

선정 사유

 

📍 API 테스트 등을 위해 한시적으로 해제

📍  이후 다시 허용해줄 예정

 

 


 

개별 컨테이너에 대한 익명 엑세스 허용 ( ✅ )

: 특정 컨테이너(예: image, gamefiles)에 대해 로그인 없이 접근 가능

 

선정 사유

: 설치 파일 링크 누르자마자 다운로드 진행을 위함

 

📍 컨테이너 생성 시 Public Access Level 옵션을 Blob(익명 접근 가능)으로 설정 가능

📍  SAS 토큰 없이도 URL로 직접 접근 가능해짐

📍 무조건 모든 파일의 공개가 아니라, 컨테이너별로 공개 여부를 따로 지정 

 

 

 

 


 

스토리지 계정 키 액세스 허용 (  )

: 사용자에게 Storage Account Access Key를 사용한 접근이 가능

 

선정 사유

: Storage Account Access Key 요청 자체 구현하지 않을 예정

 

📍 키를 알면 전체 계정에 접근할 수 있어서 민감함
📍  일반적으로는 SAS 토큰 또는 RBAC 방식이 더 안전

 

 

 

 


 

스토리지 계정 키 액세스 허용 (  )

: 예전 AAD (Azure AD) 인증 방식.

 

선정 사유

: RBAC 기반으로 사용자별 권한 제어하고 싶을 때 사용하는데, 사용자가 나 혼자임...

 

 

 

 


 

 저장소 계층 구조 및 네트워크 구조 설정

: 파일에 대한 꼼꼼한 계층 관리가 요구되는 경우 이용하는 옵션들이다.

 

 

 

 

 


 

계층 구조 네임스페이스 (  )

: 스토리지가 일반적인 Blob 구조(Flat 구조)가 아니라, 폴더 구조처럼 동작

 

 

선정 사유

: 데이터에 구조적 체계화 및 권한 설정이 필요하지 않음

 

 

특징

📍 ACL(Access Control List) 로 세밀한 권한 관리 가능
📍  Azure Data Lake Storage Gen2 기능이 활성화됨
📍 빅데이터 분석, Spark, Databricks, Synapse 같은 Data Lake 기반 분석 워크로드에 적합

 

 

 

 


 

SFTP 사용 (  )

: 파일 전송 과정 중 보안 설정이 요구되는 경우

 

 

선정 사유

: 설치 파일은 직접 GUI 들어가서 수동 배포, 리소스도 서버만 업로드함 

 

 

특징

📍 계층 구조 네임스페이스를 켜야 사용 가능
📍  일반적인 FTP/SFTP 클라이언트로 접근 가능

 

 

 

 


 

네트워크 파일 시스템 v3 사용 (  )

: NFS(Network File System) 방식으로 Azure Storage를 마운트해서 리눅스 서버의 디스크처럼 사용

 

 

선정 사유

: 오히려 비싸고(마운트된 시간, 트래픽, 디스크 입출력 등 요금이 중첩)

무겁고, 네이티브 Blob 기능들을 못 씀 

 

 

특징

📍 계층 구조 네임스페이스를 켜야 사용 가능
📍  리눅스 환경에서 Blob을 마운트 방식으로 사용하고 싶을 때 유용

📍   대용량 모델 파일, 백업 파일을 스토리지처럼 다루고 싶은 AI 훈련 서버 등에서 사용

 

 


 

액세스 계층 설정

: 얼마나 자주 접근할지에 따라 비용을 달리 설정할 수 있다.

 

 

 

 

상세 비용은 여기를 참고하자

 

Azure Blob Storage 가격 | Microsoft Azure

데이터 스토리지에 대한 엔터프라이즈급 클라우드 스토리지 서비스인 Azure Blob Storage의 가격 세부 정보를 확인하세요. 사전 투자 비용이 없습니다. 사용한 만큼 지불하세요. 무료로 사용해 보세

azure.microsoft.com

 

 


 

액세스 계층 타입 별 비용

 

 

타입 계층저장 비용
(GB당/월)
읽기 비용
(10,000건당)
검색 비용
(GB당)
최소 보관 기간 특징
Hot 높음 낮음 없음 없음 자주 액세스하는 데이터에 적합
Cool 중간 중간 없음 30일 가끔 액세스하는 데이터에 적합
Archive 낮음 높음 있음 180일 거의 액세스하지 않는 데이터에 적합

참고: 보관 계층의 데이터는 액세스 전에 '리하이드레이션'이 필요하며, 이는 추가 비용과 시간이 소요될 수 있음

 

 

 

 

 


 

 

이후 옵션에 대해서는 직관적이고 일반적인 옵션이기에 기술을 생략함

 


 

 

Blob 파일 업로드 테스트

: 만들어진 스토리지 계정의 업로드 기능을 누르면 컨테이너를 만들 수 있다. 

 

 

 

 

 


 

익명 엑세스 수준 : Blob

: 해당 컨테이너의 리소스에 대한 접근 수준을 정의한다.

 

 

 

선정 사유

: 적절히 파일만 공유하는 범위가 Blob임 

비공개 완전 비공개 컨테이너, SAS 토큰 또는 인증된 사용자만 접근 가능
Blob 컨테이너 내 파일(URL)은 공개지만, 컨테이너 구조는 숨김
컨테이너 컨테이너 목록 + 내부 파일 전체 다 노출됨

 * https://.../dir/file.zip 라는 주소가 있으면 Blob는 https://.../dir 들어가도 다른 파일이 안 보이고 컨테이너는 보임

 

 

 


 

 

 

파일 하나를 테스트 용으로 올렸다

 

 

 

 


 


Blob 파일 접근 테스트

: 테스트로 올린 파일에 대해 URL로 다운로드 해보자. 

 

 

스토리지 계정 ➡ 데이터 스토리지 컨테이너 

해당 경로를 통해 배포한 컨테이너에 접속해

방금 테스트로 업로드한 이미지에 접근할 수 있다.

 

 

 

 

해당 리소스를 눌러 들어가면 다운로드 가능한 URL이 나온다.

이 링크를 시크릿 모드에서도 접근했을 때 해당 리소스가 보인다면 완료이다. 

 

댓글