
백엔드
Apache Iceberg Table Management작업에서 발생하기 쉬운Amazon S3 이슈 분석과 해결 방안
두줄요약
Apache Iceberg 테이블 관리 작업 중 발생하는 S3 4xx와 503 SlowDown 이슈를 CloudWatch, Server Access Logging, Athena로 분석했습니다. 요청 분산을 위해 해시 또는 날짜 기반 prefix 설계를 적용하는 방안을 정리했습니다.
핵심 내용
- Apache Iceberg 테이블 유지보수 작업에서
expire_snapshots,remove_orphan_files,rewrite_manifests같은 Spark procedure 사용 시 S3 이슈를 분석 - CloudWatch 메트릭과 S3 Server Access Logging, Athena 쿼리로 4xx/5xx 원인을 구분
- 다수 테이블의 동시 작업으로 발생하는 503 SlowDown 완화에 prefix 분산과 객체 스토리지 특성 반영 필요
주의할 점
remove_orphan_files수행 중 테이블의 모든 partition을 스캔하는 동작으로 4xx가 보일 수 있음- S3 object 존재 확인은 prefix가 아니라 객체 단위 접근 차이로 인해 예상과 다를 수 있음
- 200 응답 객체 생성은 비용과 운영 측면에서 반드시 유리하지 않을 수 있음
적용해볼 점
- S3 Request Metrics와 Server Access Logging을 함께 활용한 원인 분석
- Hash partitioning 또는 날짜 기반 prefix로 요청 분산
- Glue/Spark 사용 시
write.object-storage.enabled옵션 검토
