대용량 설치파일 및 유저 리소스 저장을 위한
파일 저장소가 필요했다.
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를 어떤 기능으로 구분하는지 상세히 알아보자
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이 나온다.
이 링크를 시크릿 모드에서도 접근했을 때 해당 리소스가 보인다면 완료이다.
'기술 단어장 > Cloud' 카테고리의 다른 글
[Cloud] SKT의 유심교체 사태로 보는 AWS S3 보안 (0) | 2025.04.28 |
---|---|
[인프라 설계] 다중 서버 구동 상황에서의 아키텍처 설계 (0) | 2025.03.25 |
[Azure] 포트 개방 과정에서의 소소한 실수 (0) | 2024.08.21 |
[Cloud] Genesys Cloud의 CX 개선 및 확장을 위한 방안 (0) | 2024.08.12 |
[AWS] AWS에서 하는 간단한 쿠버네티스 환경 설정, EKS (0) | 2024.03.09 |
댓글