1. 개요
- Azure Blob Storage를 사용하면 데이터 볼륨이 증가하고 사용 패턴이 진화하는 경우에도 조직에서 데이터 스토리지 요구 사항을 효율적으로 관리하고 크기를 조정할 수 있습니다. Blob 수명 주기 관리를 사용하면 고객은 데이터를 쿨 계층으로 자동 전환하거나 더 이상 필요하지 않은 경우 만료하는 규칙 기반 정책을 구현하여 비용을 사전에 최적화할 수 있습니다.
2. 관리 정책 작업 범위
- Blob의 현재 버전, Blob의 이전 버전 또는 Blob 스냅샷이 일정 기간 동안 액세스 또는 수정되지 않는 경우, 이러한 개체를 더 쿨한 저장소 계층으로 전환하여 비용을 최적화합니다.
- Blob에 액세스할 때 즉시 쿨에서 핫으로 다시 전환합니다.
- Blob의 현재 버전, Blob의 이전 버전 또는 수명 주기가 끝나면 Blob 스냅샷을 삭제합니다.
- 필터로 이름 접두사 또는 블롭 인덱스 태그를 사용하여 전체 스토리지 계정, 선택된 컨테이너, 또는 블롭 하위 집합에 규칙을 적용합니다.
3. 관리 정책 특징
- 수명 주기 관리 정책은 범용 v2, 프리미엄 블록 Blob 및 Blob Storage 계정의 블록 Blob 및 추가 Blob에 대해 지원됩니다.
- 수명 주기 관리는 $logs 및 $web 컨테이너와 같은 시스템 컨테이너에 영향을 주지 않습니다.
- 프리미엄 블록 Blob 스토리지 계정에서는 계층화가 아직 지원되지 않습니다. 다른 모든 계정의 경우 계층화는 블록 Blob에서만 허용되며 추가 및 페이지 Blob에는 허용되지 않습니다.
- 수명 주기 관리 정책은 전체적으로 읽거나 써야 합니다. 부분 업데이트는 지원되지 않습니다.
- 각 규칙에는 최대 10개의 대/소문자 구분 접두사 및 최대 10개의 Blob 인덱스 태그 조건이 있을 수 있습니다.
- 수명 주기 관리 정책을 사용하여 암호화 범위를 사용하는 Blob의 계층을 보관 계층으로 변경할 수 없습니다.
- 수명 주기 관리 정책의 삭제 작업은 변경할 수 없는 컨테이너의 모든 Blob에서 작동하지 않습니다. 변경할 수 없는 정책을 사용하면 개체를 만들고 읽을 수 있지만 수정하거나 삭제할 수는 없습니다.
- 수명 주기 관리는 시스템 컨테이너(예: $logs$web containers)에 영향을 주지 않습니다.
4. 이벤트 구성(여건/활동/필터) 및 구성별 설명
- 이벤트 구성
규칙 요소 설명 Conditions(여건) 조건은 만들기 시간, 마지막으로 수정한 시간 및 마지막으로 액세스한 시간(액세스 시간 추적을 사용하는 경우)의 세 가지 Blob 속성을 기반으로 합니다. Actions(활동) 작업은 연결된 조건을 충족하는 필터링된 Blob에 적용됩니다. Blob 계층을 쿨 계층으로 변경하거나 Blob을 삭제하는 등 규칙당 하나 이상의 작업을 정의해야 합니다. Filters(필터) 필터는 경로 접두사 및 Blob 태그를 사용하여 스토리지 계정 내의 Blob 하위 집합으로 규칙 작업을 제한합니다. 필터가 두 개 이상 정의된 경우 논리 AND는 모든 필터에서 실행됩니다. 필터를 사용하여 포함할 Blob을 지정할 수 있습니다. 필터는 제외할 Blob을 지정할 방법을 제공하지 않습니다. - 활동 조건 유형
Condition Type 설명 daysAfterModificationGreaterThan Integer 마지막으로 수정한 시간 Blob 이후의 기간(일)입니다. Blob의 현재 버전에 대한 작업에 적용됩니다. daysAfterCreationGreaterThan Integer 생성 시간 이후의 기간(일)입니다. Blob의 현재 버전, 이전 버전의 Blob 또는 Blob 스냅샷에 대한 작업에 적용됩니다. daysAfterLastAccessTimeGreaterThan Integer 마지막 액세스 시간 이후 또는 경우에 따라 정책을 사용하도록 설정된 날짜 이후의 기간(일)입니다. 액세스 추적을 사용하도록 설정된 경우 Blob의 현재 버전에 대한 작업에 적용됩니다. daysAfterLastTierChangeGreaterThan Integer 마지막 Blob 계층 변경 시간 이후의 기간(일)입니다. 보관 계층으로 반환되기 전에 리하이드레이션된 Blob이 핫, 쿨 또는 콜드 계층에 보관되는 최소 기간(일)입니다. tierToArchive 작업에만 적용됩니다. - Action 상세 설명
활동 설명 TierToCool - Blob을 쿨 액세스 계층으로 설정합니다.
- 추가 블롭, 페이지 블롭 또는 프리미엄 블록 블롭 저장소 계정의 블롭에서는 지원되지 않습니다.TierToCold - Blob을 콜드 액세스 계층에 설정합니다.
- 추가 블롭, 페이지 블롭 또는 프리미엄 블록 블롭 저장소 계정의 블롭에서는 지원되지 않습니다.TierToArchive - 보관 액세스 계층에 Blob을 설정합니다.
- Blob을 다시 하이드레이션해도 Blob의 마지막으로 수정된 또는 마지막 액세스 시간 속성이 업데이트되지 않습니다. 따라서 이 작업은 리하이딩된 Blob을 보관 계층으로 다시 이동할 수 있습니다. 이러한 상황이 발생하지 않도록 하려면 이 작업에 조건을 추가 daysAfterLastTierChangeGreaterThan 합니다.
- 이 작업은 추가 블롭, 페이지 블롭 또는 프리미엄 블록 Blob 저장소 계정에 있는 블롭에서 지원되지 않습니다. 또한 암호화 범위를 사용하는 Blob이나 영역 중복 스토리지(ZRS), 지역 영역 중복 스토리지(GZRS) / 읽기 액세스 지역 영역 중복 스토리지(RA-GZRS)에 대해 구성된 계정의 Blob에서는 지원되지 않습니다.enableAutoTierToHotFromCool
(쿨에서 핫으로 자동 계층화 활성화)- Blob이 쿨 계층으로 설정된 경우 이 작업은 Blob에 액세스할 때 해당 Blob을 핫 계층으로 자동으로 이동합니다.
- 이 작업은 daysAfterLastAccessTimeGreaterThan 실행 조건과 함께 사용할 때만 사용할 수 있습니다.
- 이 작업은 규칙에서 이 작업을 사용하도록 설정하기 전에 쿨 계층으로 설정된 Blob에는 영향을 주지 않습니다.
- 이 작업은 Blob을 30일마다 쿨에서 핫으로 한 번만 이동합니다. 이 보호 조치는 계정에 청구되는 여러 초기 삭제 처벌로부터 보호하기 위해 시행됩니다.
- 이전 버전 또는 스냅샷에서는 지원되지 않습니다.Delete - Blob을 삭제합니다.
- 변경할 수 없는 컨테이너에 있는 페이지 Blob 또는 Blob은 지원되지 않습니다. - 필터 파라미터 유형
| 필터 | 유형 | 설명 | 필수 |
| blobTypes | 미리 정의된 열거형 값의 배열 | Blob의 형식( blockblob 또는 appendBlob) | O |
| prefixMatch | 문자열 배열 | 이러한 문자열은 일치시킬 접두사입니다. | X |
| blobIndexMatch | 사전 값의 배열 | 이러한 값은 일치시킬 Blob 인덱스 태그 키 및 값 조건으로 구성 | X |
5. 비용 최적화를 위한 설정
- 이벤트, 메트릭 및 로그를 사용하여 실행되는 Azure Blob Storage 수명 주기 관리 정책을 모니터링할 수 있는데, 수명 주기 관리 실행이 완료되면 알림을 받도록 설정한다. 즉 이벤트가 트리거될 때 Event Grid 서비스는 해당 이벤트에 대한 데이터를 구독 엔드포인트로 보내어 비용 최적화 설정을 수행한다.
- Blob Storage 관련 이벤트
이벤트 이름 설명 Microsoft.Storage.BlobCreated - Blob 생성 또는 교체 시 트리거됩니다.
- 특히 이 이벤트는 클라이언트가 Blob REST API에서 사용할 수 있는 PutBlob, PutBlockList 또는 CopyBlob 작업을 사용할 때, 그리고 블록 Blob이 완전히 커밋될 때 트리거됩니다.
- CopyBlob 기능이 사용되는 계정에서 클라이언트가 작업을 사용하는 경우, CopyBlob 작업은 약간 다르게 작동합니다. 이 경우 Microsoft.Storage.BlobCreated 이벤트는 블록 Blob이 완전히 커밋될 때가 아니라 CopyBlob 작업이 시작될 때 트리거됩니다.Microsoft.Storage.BlobDeleted - Blob 삭제 시 트리거됩니다.
- 특히 해당 이벤트는 클라이언트가 DeleteBlob Blob REST API에서 사용할 수 있는 작업을 호출하는 경우 트리거됩니다.Microsoft.Storage.Blob Tier 변경됨 - Blob 액세스 계층이 변경될 때 트리거됩니다. 특히 클라이언트가 Blob REST API에서 사용할 수 있는 Set Blob Tier 작업을 호출하면 이 이벤트는 계층 변경이 완료된 후에 트리거됩니다. Microsoft.Storage.AsyncOperationInitiated - 보관에서 핫 또는 쿨 계층으로 데이터를 이동하거나 복사하는 작업이 시작될 때 트리거됩니다. 특히 이 이벤트는 클라이언트가 Set Blob Tier API를 호출하여 보관 계층의 Blob을 핫 또는 쿨 계층으로 이동하는 경우 또는 클라이언트가 Copy Blob API를 호출하여 보관 계층의 Blob에서 핫 또는 쿨 계층의 Blob으로 데이터를 복사하는 경우 트리거됩니다.
6. Azure Event Driven 정리
- Azure에서 말하는 이벤트 기반(Event-Driven) 아키텍처는 특정 상태 변화(이벤트)가 발생했을 때 이를 트리거(trigger)로 하여 서비스나 애플리케이션이 동작하는 구조를 의미
|
서비스
|
역할
|
자주 쓰이는 패턴
|
전달 방식
|
보관·재생
|
결론
|
|
Event Grid
|
Azure/앱에서 발생한 이벤트(상태 변화)를 구독자에게 푸시
|
Blob 업로드 알림→함수 트리거, 리소스 생성/태깅 자동화, IoT MQTT Pub/Sub
|
푸시형 Pub/Sub (HTTP & MQTT 브로커)
|
이벤트 자체 보관 X(짧은 재시도/Dead-letter), 스트림 재생 X
|
“무언가 발생했다”에 빠르게 반응하는 오케스트레이션에 최적.
|
|
Event Hubs
|
디바이스/앱/로그의 연속 스트림을 대량 수집
|
테레메트리/클릭스트림/로그→(Spark/ADX/ASA) 실시간 처리
|
풀형 스트림(소비자가 오프셋 관리, 파티션/컨슈머 그룹)
|
보존(시간/용량) + 재생 가능(리플레이)
|
“많이, 빠르게, 끊임없이 들어오는 데이터”의 빅데이터 파이프라인.
|
|
Service Bus
|
엔터프라이즈 메시징(큐/토픽, 순서/세션/거래/지연/필터)
|
주문·결제·워크플로, 사내 시스템 간 신뢰 전송
|
브로커 저장 후 소비자 준비되면 전달
|
DLQ/중복감지/세션/FIFO로 신뢰성↑
|
“유실·중복·순서에 민감한 업무 메시지”에 적합.
|
7. 참고 문서
- Azure Blob Storage 수명 주기 관리 개요 https://learn.microsoft.com/ko-kr/azure/storage/blobs/lifecycle-management-overview
- Blob Storage 이벤트에 응답 https://learn.microsoft.com/ko-kr/azure/storage/blobs/storage-blob-event-overview
- Azure Blob Storage 수명 주기 관리 정책 구조 https://learn.microsoft.com/ko-kr/azure/storage/blobs/lifecycle-management-policy-structure
'Azure 상식' 카테고리의 다른 글
| Azure VMSS의 특징과 Ochestration 모드 분석 (1) | 2025.08.04 |
|---|---|
| Azure Saving Plan, Reserved Instance을 활용한 비용절감 방안 이해 (2) | 2025.08.04 |
| VNet 구성시 Inbound/Outbound 구성방법 및 네트워크 흐름 (2) | 2025.08.04 |
| Azure Storage (account)서비스 및 Blob Storage tier 정보 (4) | 2025.07.28 |
| Azure RBAC (1) | 2025.07.28 |