요약
- 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나 쿼리에서 세밀한 제어가 어렵다.
부가 효과
- 특정 날짜 데이터 일괄 삭제 가능
- 비용 분석 시 기간별 용량 파악 용이
참고
함께 읽기 좋은 글
- enhanced Container Insights는 TaskId로 series를 폭증시키지만 CloudWatch proration이 비용을 수렴시킨다
- AWS Secrets Manager 변경자는 CloudTrail PutSecretValue로 추적한다
- SageMaker Async Inference는 ApproximateBacklogSizePerInstance로 Scale-to-Zero가 가능하다
- ECS Exec SSM Agent는 readonlyRootFilesystem에서 동작하지 않는다
- VPC Route Table은 VPC안에서 IP 범위에 따른 다음 홉을 지정한다.