요약
- S3 객체 키에 날짜 기반 prefix를 붙이면 Lifecycle Policy로 스토리지 클래스 전환과 삭제를 자동화할 수 있다
- 대용량 미디어 파일처럼 빠르게 증가하는 데이터의 비용을 효율적으로 관리하기 위한 패턴
본문
핵심 이유: Lifecycle Policy의 prefix 필터링
S3 Lifecycle Policy는 prefix 단위로 규칙을 적용한다. 날짜 prefix가 없으면:
- 전체 버킷에 규칙이 적용되어 실수 가능성이 높음
- 특정 기간 데이터만 선택적으로 처리할 수 없음
- TTL에 의해 파일이 삭제되었을 때 어떤 파일이 왜 없어졌는지 추적이 어려움
실제 사례: 오디오/미디어 파일 스토리지 관리
오디오 저장 버킷은 데이터가 빠르게 증가한다. Standard tier는 비용이 높으므로:
audio/2026/01/16/recording.mp3 → 30일 후 Standard-IA로 전환
→ 90일 후 Glacier로 전환
→ 365일 후 삭제
prefix 형식 선택
| 형식 | 장점 |
|---|---|
YYYY/MM/DD/ |
S3 콘솔에서 폴더처럼 탐색 가능 |
YYYYMMDD/ |
prefix 필터링이 단순함 |
year=2026/month=01/day=16/ |
Hive 스타일 파티셔닝. AWS Athena에서 자동 인식되어 쿼리 시 파티션 프루닝 가능 |
용도에 따라 선택하면 된다. 분석 쿼리가 필요하면 Hive 스타일이 유리하다.
Hive 스타일을 쓴다면 year=/month=/day=/ 구조 정도가 적당하다. 시간 단위(hour=)까지 가면 파티션이 너무 많아지고, 월 단위만 쓰면 Lifecycle Policy나 쿼리에서 세밀한 제어가 어렵다.
부가 효과
- 특정 날짜 데이터 일괄 삭제 가능
- 비용 분석 시 기간별 용량 파악 용이