핵심 요약
AWS의 기술 블로그에서 리멤버앤컴퍼니의 S3 Tables 운영 사례를 통해 컴팩션, 스냅샷 관리, 고아 파일 제거 및 메타데이터 모니터링 등 운영 전략이 실시간 분석 워크로드의 성능과 효율을 개선한 사례를 공유합니다.
주요 경험
- Compaction 전략 및 설정: Iceberg Auto Compaction을 기본으로 사용하고 targetFileSizeMB를 512MB로 운영합니다. 다만 512MB는 내부 min-file-size-bytes, max-file-size-bytes 값에 따라 근사치가 되며 상황에 따라 더 높은 값을 설정할 수 있습니다.
- Snapshot 관리 정책: 테이블 용도에 따라 minSnapshotsToKeep 및 maxSnapshotAgeHours를 다르게 적용합니다. 예를 들어 시점 조회용은 min 1, max 720시간으로 설정하고, 실시간 분석용은 min 1, max 1시간으로 설정합니다. 배치는 매일 수행되며 스냅샷 보존 기간에 따른 최적화를 시도합니다.
- 고아 파일 제거 및 운영 가시성: unreferencedDays 4, nonCurrentDays 10으로 고아 파일 자동 제거를 설정합니다. 스냅샷 만료와 별개로 일정 기간 파일 보존 정책을 적용해 안정성을 높이고, 필요 시 AWS 내부 협의를 통해 확인합니다.
- 운영 가시성 강화(메타데이터 조회): PyIceberg의 REST 엔드포인트를 활용해 현재 스냅샷이 참조하는 Data File 목록과 메타데이터를 확인하고, 파일 단위 관리 및 쿼리 최적화에 활용합니다.
얻은 인사이트
- 스냅샷과 메타데이터 관리의 균형은 운영 비용과 탐색 비용 모두에 큰 영향을 미치므로, 테이블 용도에 맞춘 정책 수립이 필수입니다.
- 작은 파일 관리가 쿼리 성능과 비용에 직접적으로 연관되므로, 컴팩션 주기와 파일 크기 설정의 신중한 조정이 필요합니다.
- 메타데이터 가시성 확보를 위한 도구(Python Iceberg REST 엔드포인트 등) 활용은 운영 안정성과 문제 원인 파악에 큰 도움이 됩니다.


