목록으로

Programming Notes

Azure Storage에서 불필요한 비용 낭비 멈추기

대상: 엔지니어, 아키텍트, FinOps 팀 (그리고 재무팀으로부터 "친절한" 비용 메일을 받는 모든 분) 블롭들이 전화했습니다. 당신의 지출 습관에 대해 이야기하고 싶어 하는군요. 우리 모두 경험해봤을 겁니다. 스토리지 계정을 만들고, 모든 것을 핫 티어(Hot tier)에...

대상: 엔지니어, 아키텍트, FinOps 팀 (그리고 재무팀으로부터 "친절한" 비용 메일을 받는 모든 분)

블롭들이 전화했습니다. 당신의 지출 습관에 대해 이야기하고 싶어 하는군요.

우리 모두 경험해봤을 겁니다. 스토리지 계정을 만들고, 모든 것을 핫 티어(Hot tier)에 쏟아부은 다음, 생산적으로 일했다고 생각하며 자리를 뜨는 것 말입니다. 6개월 후, 재무팀에서 전화번호처럼 긴 비용 보고서를 보내옵니다.

47페이지짜리 백서 없이, 이 문제를 해결해 봅시다.


1. 모든 데이터가 핫 티어에 있을 필요는 없습니다.

핫 티어는 비행기의 퍼스트 클래스와 같습니다. 자주 이동하는(액세스되는) 데이터에 적합하죠. 하지만 2019년도 규정 준수 PDF는요? 창가 좌석과 샴페인이 필요 없을 겁니다.

Azure는 5가지 액세스 티어를 제공하며, 각 티어는 저장 비용과 액세스 비용 간에 다른 트레이드오프를 가집니다.

티어 최적화 대상 저장 비용 액세스 비용 최소 보존 기간
자주 액세스/수정되는 데이터 가장 높음 가장 낮음 없음
가끔 액세스되는 데이터 낮음 높음 30일
콜드 거의 액세스되지 않지만, 빠른 검색이 필요한 데이터 더 낮음 더 높음 90일
아카이브 거의 액세스되지 않고, 유연한 지연 시간(몇 시간)이 허용되는 데이터 가장 낮음 가장 높음 180일
스마트 알 수 없거나 가변적인 패턴 자동 최적화됨 자동 최적화됨 없음

경험칙: 직접 찾아야 하는 데이터라면, 핫 티어에 있을 필요는 없습니다.

2. 처음부터 올바른 티어로 업로드하세요.

핫 티어에 업로드한 다음 쿨 티어로 이동하는 것은 퍼스트 클래스 티켓을 구매하고 이륙 후 이코노미로 바꿔달라고 요청하는 것과 같습니다. 퍼스트 클래스 요금은 이미 지불한 셈이죠.

블롭 업로드 후 티어를 변경하면 다음 비용이 발생합니다.

  • 초기 티어에 대한 쓰기 비용 (업로드 시)
  • 새 티어에 대한 쓰기 비용 (티어 재설정 시)
  • 이동을 기다리는 동안 블롭이 핫 티어에 머무는 임시 저장 비용

데이터의 실제 사용량에 맞는 티어로 직접 업로드하세요. 대량 오프라인 데이터 이동에는 Azure Data Box를 사용하세요. 여러분의 지갑이 고마워할 겁니다.

3. 스마트 티어: 신경 쓰고 싶지 않은 당신을 위한 옵션

데이터가 어디에 속해야 할지 모르겠다고요? 규칙을 만들고 싶지 않다고요? Azure의 "제가 알아서 처리하겠습니다" 옵션, 스마트 티어를 만나보세요.

  • 데이터는 핫 티어에서 시작합니다.
  • 30일간 유휴 상태라면? → 자동으로 쿨 티어로 이동합니다.
  • 90일간 유휴 상태라면? → 콜드 티어로 이동합니다.
  • 누군가 읽으면? → 다시 핫 티어로 즉시 이동합니다. 벌금 없습니다.

조기 삭제 수수료도, 전환 비용도 없습니다. 단, 소액의 모니터링 수수료(1만 개 객체당 $0.04)가 있습니다. 마치 매우 저렴하고 효율적인 인턴을 고용하여 스토리지 클로젯을 정리하는 것과 같습니다.

4. 스마트 티어 vs. 수명 주기 관리 — 격돌

"스마트 티어를 써야 할까, 아니면 수명 주기 관리를 써야 할까?" — 모든 스토리지 기획 회의에서 늘 나오는 질문입니다.

둘 다 비용 절감에 도움이 됩니다. 둘 다 데이터를 더 낮은 티어로 이동시킵니다. 하지만 이 둘은 근본적으로 다른 사고방식을 위한 다른 도구입니다. 여기 격돌하는 두 가지를 비교합니다.

측면 스마트 티어 수명 주기 관리
작동 방식 실제 액세스 기반의 자동 객체별 관리 규칙 기반 — 조건 직접 정의
설정 노력 계정 수준에서 한 번 활성화. 규칙 없음. JSON 정책 작성, 테스트, 유지 관리
티어 전환 핫→쿨(30일)→콜드(90일) — 고정 사용자가 임계값 + 아카이브 선택
핫 티어로 자동 재수화(rehydrate)? ✅ 예 — 액세스 시, 주기 재시작 특정 규칙 구성 시에만 가능
아카이브 티어 지원? ❌ 아니요 — 핫/쿨/콜드만 ✅ 예
조기 삭제 벌금 ❌ 없음 ✅ 쿨 30일, 콜드 90일, 아카이브 180일
티어 전환 비용 ❌ 스마트 티어 내에서는 없음 ✅ 이동당 Set Blob Tier API 비용 발생
데이터 검색 비용 ❌ 없음 ✅ 표준 쿨/콜드/아카이브 요금 적용
모니터링 수수료 객체 1만 개당 월 $0.04 (>128 KiB) 무료 — 정책 비용 없음
제어 세분성 없음 — 고정된 임계값 전체 — 사용자 지정 임계값, 접두사, 태그
만료된 데이터 자동 삭제? ❌ 아니요 ✅ 예
버전 및 스냅샷 별도로 관리되지 않음 독립적으로 티어링/삭제 가능

스마트 티어를 선택할 때

  • 액세스 패턴이 예측 불가능하거나 알 수 없는 경우
  • 관리 오버헤드 제로를 원하는 경우 — 작성하거나 유지 관리할 규칙이 없는 경우
  • 아카이브 티어가 필요하지 않은 경우
  • 데이터가 활성 및 비활성 상태를 자주 오가는 경우
  • 티어 전환당 요금 대신 고정 모니터링 수수료를 선호하는 경우

수명 주기 관리를 선택할 때

  • 장기 보존을 위한 아카이브 티어가 필요한 경우
  • 사용자 지정 임계값(예: 7일 후 쿨 티어로 이동, 30일이 아닌)이 필요한 경우
  • 오래된 블롭, 버전 또는 스냅샷을 자동으로 삭제해야 하는 경우
  • 블롭 인덱스 태그 또는 접두사 필터를 사용하여 세밀한 범위 지정을 원하는 경우
  • 액세스 패턴이 잘 이해되고 예측 가능한 경우

둘 다 함께 사용할 수 있나요?

네 — 하지만 수명 주기 관리 정책은 스마트 티어 객체에 영향을 주지 않습니다. 이들은 서로 다른 블롭 집합에 대해 작동합니다. 스마트 티어는 기본 계정 티어(명시적 티어 설정 없음)의 블롭을 관리하고, 수명 주기 정책은 명시적으로 설정된 티어 또는 특정 필터가 있는 블롭을 대상으로 합니다.

비용 예시: 100만 개 객체 (> 128 KiB)

스마트 티어 수명 주기 관리
월별 관리 비용 ~$4 (모니터링 수수료) $0 (정책은 무료)
티어 전환 비용 $0 트랜잭션당 Set Blob Tier 비용 발생
조기 삭제 위험 없음 최소 보존 기간 이전에 이동 시 비례 벌금
검색 비용 없음 표준 쿨/콜드/아카이브 요금 적용

결론: 예측 불가능한 워크로드의 경우 스마트 티어의 고정 수수료가 종종 더 유리합니다. 아카이브 또는 자동 삭제가 필요한 잘 알려진 패턴의 경우 수명 주기 정책이 더 많은 제어권을 제공합니다.

5. 수명 주기 관리 — 비용 자동 조종 장치

스마트 티어가 "한번 설정하고 잊어버리는" 방식이라면, 수명 주기 관리는 "스프레드시트가 있고, 사용을 두려워하지 않는다"는 태도에 가깝습니다.

다음과 같은 규칙을 작성할 수 있습니다.

  • "15일 후 쿨 티어로 이동"
  • "60일 후 콜드 티어로 이동"
  • "180일 후 아카이브"
  • "365일 후 삭제" (마리 콘도도 승인할 것입니다.)
  • "이전 블롭 버전 90일 후 삭제"

설정은 무료입니다. 티어 전환 비용만 지불합니다. 그리고 스마트 티어는 지원하지 않는 아카이브 티어를 지원합니다.

수명 주기 관리의 기능

기능 설명
현재 버전 자동 티어링 N일 동안 액세스/수정되지 않은 블롭을 더 낮은 티어로 이동
이전 버전 및 스냅샷 자동 티어링 버전 및 스냅샷에도 동일한 규칙 기반 티어링 적용
액세스 시 자동 재수화 액세스 시 블롭을 쿨 티어에서 핫 티어로 다시 이동
자동 삭제 수명 주기 종료 시 블롭, 버전 또는 스냅샷 삭제
범위 지정 규칙 전체 계정, 컨테이너 또는 접두사/블롭 인덱스 태그를 통한 하위 집합에 적용

알아야 할 제한 사항

  • 티어링은 블록 블롭에만 해당합니다 (추가 블롭/페이지 블롭은 먼저 변환해야 합니다).
  • 수명 주기를 통해 블롭을 재수화할 수 없습니다 (재수화는 별도 작업입니다).
  • 암호화 범위가 있는 블롭은 아카이브로 티어링할 수 없습니다.
  • 삭제 작업은 변경 불가능한 컨테이너의 블롭에는 적용되지 않습니다.
  • 규칙당 최대 10개의 접두사 및 10개의 태그 조건만 가능합니다.
  • 변경 사항 적용에 최대 24시간이 소요될 수 있습니다.

6. 더 낮은 티어로 이동하기 전에 작은 파일들을 묶으세요.

모든 블롭 작업에는 트랜잭션당 비용이 발생합니다. 100만 개의 작은 파일 = 100만 개의 작은 요금이 합쳐져 하나의 큰 골칫거리가 됩니다.

  • 더 낮은 티어로 업로드하기 전에 작은 파일들을 ZIP 또는 TAR로 압축하세요.
  • 파일 수가 적을수록 트랜잭션이 줄어들고, 재무팀으로부터 슬픈 이메일을 덜 받게 됩니다.
  • 할머니 댁 다락방처럼 전체 아카이브를 풀지 않고도 파일을 찾을 수 있도록 인덱스 파일을 핫 티어에 보관하세요.

특히 아카이브 티어는 트랜잭션당 비용이 가장 높으므로, 그 영향이 더욱 중요합니다.

7. 불을 켜세요 (모니터링)

볼 수 없는 것은 최적화할 수 없습니다.

  • 블롭 인벤토리 보고서 활성화 — 무엇을 가지고 있고 어디에 있는지 파악하세요.
  • 마지막 액세스 시간 추적 활성화 — 실제로 무엇이 사용되고 있는지 파악하세요 — 액세스 시간 수명 주기 규칙에 필요합니다.
  • Azure Synapse 또는 Databricks로 분석 — 비싼 티어에 숨어있는 유휴 데이터를 찾아내세요.

이것은 "은행 명세서 확인" 단계와 같습니다. 지루하다고요? 네. 효과적이라고요? 물론이죠.

8. 추가 블롭 및 페이지 블롭도 잊지 마세요.

더 이상 활발하게 사용되지 않는 추가 블롭(로그 파일)과 페이지 블롭(디스크 백업/스냅샷)도 더 낮은 티어의 이점을 누릴 수 있습니다. 하지만 한 가지 주의할 점이 있습니다.

티어링하기 전에 먼저 블록 블롭으로 변환해야 합니다.

변환하지 않으면 사용 여부와 관계없이 핫 티어에 유지됩니다. 마치 3년 전에 이사 나간 아파트의 월세를 계속 내는 것과 같습니다.

9. 조기 삭제: 페널티 박스

최소 보존 기간 이전에 블롭을 이동하거나 삭제하면 비례 배분된 요금이 발생합니다. 이동하기 전에 규칙을 숙지하세요.

티어 최소 보존 기간 벌금 예시
30일 21일 후 삭제 → 남은 9일치 요금 부과
콜드 90일 60일 후 이동 → 남은 30일치 요금 부과
아카이브 180일 45일 후 삭제 → 남은 135일치 요금 부과

스마트 티어는 이러한 벌금을 완전히 없애줍니다. 수명 주기 관리는 그렇지 않습니다. 현명하게 선택하세요.

비용 최적화 체크리스트

여기로 바로 건너뛰셨다면 — 환영합니다. 여기에 전체 블로그 내용이 한 표에 정리되어 있습니다.

# 이렇게 하세요 이것을 절약하세요
1 처음부터 올바른 티어로 업로드하세요 이중 쓰기 비용
2 예측 불가능한 데이터에 스마트 티어 활성화 관리 시간 + 벌금
3 알려진 패턴에 대해 수명 주기 정책 설정 유휴 데이터에서 30–70%
4 아카이브 전에 작은 파일들을 묶으세요 트랜잭션 비용 폭증
5 블롭 인벤토리 + 액세스 시간 추적 활성화 미래의 당신이 고마워할 겁니다
6 추가/페이지 블롭을 블록 블롭으로 변환 모든 블롭 유형에 대한 티어링 잠금 해제
7 기본 계정 액세스 티어 검토 기본값을 주요 워크로드와 일치시키기
8 조기 삭제 벌금 모니터링 불필요한 요금 방지
9 여러 계정에 Azure Storage Actions 사용 여러 계정에서 최적화 확장
10 주기적으로 재분석 및 조정 변화하는 사용 패턴에 적응

마지막 생각

Azure Storage는 놀라울 정도로 강력하고 유연합니다. 하지만 "유연하다"는 것은 또한 "아무도 지난 월드컵 이후로 보지 않은 10TB 데이터를 핫 티어에 기꺼이 보관하게 해준다"는 의미이기도 합니다.

그런 사람이 되지 마세요. 현명하게 티어를 선택하세요. 무자비하게 자동화하세요. 그리고 재무팀에 커피 한 잔 사주세요 — 그들도 많이 힘들었을 겁니다.


참고 자료