피드로 돌아가기
Dev.toDatabase
원문 읽기
Egress 최적화를 통한 데이터 전송 비용 절감 및 쿼리 응답 속도 개선
Egress problems and where to find them
AI 요약
Context
클라우드 환경 내 데이터베이스 Egress 비용 증가와 대규모 데이터 전송으로 인한 네트워크 병목 현상 발생. SELECT * 사용 및 무제한 쿼리로 인한 불필요한 데이터 전송이 인프라 비용 상승과 애플리케이션 성능 저하의 주요 원인으로 분석됨.
Technical Solution
- 필요한 컬럼만 명시하는 Selective Query 적용을 통한 데이터 전송량 최소화
- jsonb_agg() 함수를 활용한 DB 레벨의 JSON 필터링으로 애플리케이션 전달 데이터 크기 축소 및 CPU 오버헤드와 Egress 간의 Trade-off 최적화
- Offset 기반 페이지네이션의 스캔 비용 문제를 해결하기 위해 마지막 값을 기준으로 하는 Cursor Pagination 구조 채택
- ORM의
.returning()구문 등 Insert/Update 작업 시 발생하는 불필요한 데이터 반환 로직 제거 - SQL Commenter 포맷의 Query Tagging을 도입하여 특정 기능별 Egress 발생량을 정밀하게 모니터링하고 분석하는 체계 구축
실천 포인트
- SELECT * 사용을 금지하고 필요한 컬럼만 명시하고 있는가? - Pagination 구현 시 데이터 규모 증가에 따른 성능 저하를 막기 위해 Cursor 방식을 검토했는가? - JSONB 컬럼 사용 시 애플리케이션 단이 아닌 DB 단에서 필터링하여 전송량을 줄였는가? - Write 작업 후 불필요한 전체 레코드 반환 설정이 활성화되어 있지 않은가?