Amazon Aurora PostgreSQL에서 Aurora Optimized Reads를 사용하면 쿼리 처리 속도를 대폭 향상시킬 수 있습니다. 이 기능을 활용하면 대규모 데이터셋을 처리하는 애플리케이션에서 최대 8배 빠른 쿼리 지연 시간과 최대 30%의 비용 절감을 달성할 수 있습니다. 특히, 데이터가 DB 인스턴스의 메모리 용량을 초과하는 경우에 유용합니다. 😊
Aurora Optimized Reads는 Graviton 기반 R6gd 및 Intel 기반 R6id 인스턴스와 NVMe 스토리지를 사용하는 DB 클러스터에서 기본적으로 제공됩니다. 이 기능은 다음 PostgreSQL 버전에서 사용할 수 있습니다:
Aurora Optimized Reads는 두 가지 주요 기능을 제공합니다:
💡 "Aurora는 기본적으로
shared_buffers를 사용 가능한 메모리의 약 75%로 설정합니다. 하지만 r6gd 및 r6id 인스턴스에서는 Optimized Reads 캐시 메타데이터를 저장하기 위해shared_buffers공간을 4.5% 줄입니다."
💡 "Aurora I/O-Optimized 클러스터에서는 계층형 캐시와 임시 객체를 모두 활용합니다. 반면, Aurora Standard 클러스터에서는 임시 객체만 사용합니다."
Aurora Optimized Reads는 NVMe 기반 DB 인스턴스를 프로비저닝하면 자동으로 활성화됩니다. 이를 활성화하려면 다음 중 하나를 수행하세요:
💡 "NVMe 기반 DB 인스턴스 클래스에서 IO-Optimized와 Standard 클러스터 간 전환은 즉각적인 데이터베이스 엔진 재시작을 유발합니다."
EXPLAIN 명령어를 사용하여 쿼리 계획을 확인할 수 있습니다. 예를 들어:
Postgres=> EXPLAIN (ANALYZE, BUFFERS) SELECT c FROM sbtest15 WHERE id=100000000;
결과 예시:
QUERY PLAN
--------------------------------------------------------------------------------------
Index Scan using sbtest15_pkey on sbtest15 (cost=0.57..8.59 rows=1 width=121) (actual time=0.287..0.288 rows=1 loops=1)
Index Cond: (id = 100000000)
Buffers: shared hit=3 read=2 aurora_orcache_hit=2
I/O Timings: shared/local read=0.264
Planning:
Buffers: shared hit=33 read=6 aurora_orcache_hit=6
I/O Timings: shared/local read=0.607
Planning Time: 0.929 ms
Execution Time: 0.303 ms
(9 rows)
💡
aurora_orcache_hit필드는 Optimized Reads가 활성화된 경우에만 표시되며, 캐시 히트 수를 나타냅니다.
다음 메트릭을 사용하여 DB 인스턴스를 모니터링할 수 있습니다:
FreeEphemeralStorage 메트릭을 확인하여 인스턴스 스토리지 공간이 부족하지 않도록 관리하세요.pg_prewarm 확장을 사용하여 데이터를 미리 캐시에 로드하거나, VACUUM 작업으로 인한 캐시 히트 비율 감소를 방지하세요.💡 "CCM은 버퍼 캐시를 주기적으로 스캔하여 계층형 캐시에 적합한 페이지를 기록합니다."
Aurora Optimized Reads는 대규모 데이터셋을 처리하는 PostgreSQL 워크로드에서 성능을 크게 향상시키는 강력한 도구입니다. 계층형 캐시와 임시 객체를 활용하여 쿼리 지연 시간을 줄이고 비용을 절감할 수 있습니다. 이를 통해 실시간 대시보드, 생성형 AI, 분석 쿼리 등 다양한 사용 사례에서 효율성을 극대화할 수 있습니다. 🚀
"최적화된 읽기 기능을 통해 더 빠르고 효율적인 데이터베이스 운영을 경험하세요!"