H
하베스트
AI로 요약된 콘텐츠

Aurora PostgreSQL에서 Aurora Optimized Reads로 쿼리 성능 향상하기

Amazon Aurora PostgreSQL에서 Aurora Optimized Reads를 사용하면 쿼리 처리 속도를 대폭 향상시킬 수 있습니다. 이 기능을 활용하면 대규모 데이터셋을 처리하는 애플리케이션에서 최대 8배 빠른 쿼리 지연 시간최대 30%의 비용 절감을 달성할 수 있습니다. 특히, 데이터가 DB 인스턴스의 메모리 용량을 초과하는 경우에 유용합니다. 😊


Aurora Optimized Reads 개요

Aurora Optimized Reads는 Graviton 기반 R6gd 및 Intel 기반 R6id 인스턴스와 NVMe 스토리지를 사용하는 DB 클러스터에서 기본적으로 제공됩니다. 이 기능은 다음 PostgreSQL 버전에서 사용할 수 있습니다:

  • 16.1 이상
  • 15.4 이상
  • 14.9 이상

Aurora Optimized Reads는 두 가지 주요 기능을 제공합니다:

  1. 계층형 캐시(Tiered Cache)
  2. 임시 객체(Temporary Objects)

1️⃣ 계층형 캐시(Tiered Cache)

  • DB 인스턴스 캐싱 용량을 최대 5배까지 확장할 수 있습니다.
  • 최근 데이터와 트랜잭션 일관성을 유지하며, 외부 캐싱 솔루션의 데이터 관리 부담을 줄여줍니다.
  • 쿼리 지연 시간 최대 8배 개선: 이전에는 Aurora 스토리지에서 데이터를 가져오던 쿼리가 더 빠르게 처리됩니다.

💡 "Aurora는 기본적으로 shared_buffers를 사용 가능한 메모리의 약 75%로 설정합니다. 하지만 r6gd 및 r6id 인스턴스에서는 Optimized Reads 캐시 메타데이터를 저장하기 위해 shared_buffers 공간을 4.5% 줄입니다."

2️⃣ 임시 객체(Temporary Objects)

  • PostgreSQL에서 생성되는 임시 파일을 로컬 NVMe 스토리지에 저장하여 네트워크를 통한 EBS 트래픽을 줄입니다.
  • 쿼리 지연 시간 및 처리량 최대 2배 개선: 특히, 대규모 데이터를 정렬, 조인, 병합하는 고급 쿼리에 효과적입니다.

💡 "Aurora I/O-Optimized 클러스터에서는 계층형 캐시와 임시 객체를 모두 활용합니다. 반면, Aurora Standard 클러스터에서는 임시 객체만 사용합니다."


Aurora Optimized Reads 사용 방법

Aurora Optimized Reads는 NVMe 기반 DB 인스턴스를 프로비저닝하면 자동으로 활성화됩니다. 이를 활성화하려면 다음 중 하나를 수행하세요:

  1. 새로운 Aurora PostgreSQL DB 클러스터 생성
    • NVMe 기반 DB 인스턴스 클래스를 선택하여 클러스터를 생성합니다.
  2. 기존 클러스터 수정
    • 기존 Aurora PostgreSQL 클러스터를 NVMe 기반 DB 인스턴스 클래스로 변경합니다.

💡 "NVMe 기반 DB 인스턴스 클래스에서 IO-Optimized와 Standard 클러스터 간 전환은 즉각적인 데이터베이스 엔진 재시작을 유발합니다."


Aurora Optimized Reads의 주요 사용 사례

✅ 계층형 캐시를 활용한 사용 사례

  • 인터넷 규모 애플리케이션: 결제 처리, 청구, 전자상거래 등 성능 SLA가 엄격한 애플리케이션.
  • 실시간 대시보드: 수백 개의 포인트 쿼리를 실행하여 메트릭을 수집.
  • 생성형 AI 애플리케이션: pgvector 확장을 사용하여 수백만 개의 벡터 임베딩에서 정확한 검색 또는 근접 검색 수행.

✅ 임시 객체를 활용한 사용 사례

  • 분석 쿼리: 공통 테이블 표현식(CTE), 파생 테이블, 그룹화 작업 포함.
  • 읽기 복제본: 애플리케이션의 비최적화된 쿼리를 처리.
  • 동적 보고서 생성: GROUP BY, ORDER BY와 같은 복잡한 작업을 포함한 쿼리.
  • 인덱스 생성 및 재생성: 정렬 작업을 포함.
  • 내부 임시 테이블을 사용하는 워크로드.

Aurora Optimized Reads 모니터링 방법

🔍 쿼리 모니터링

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가 활성화된 경우에만 표시되며, 캐시 히트 수를 나타냅니다.

🔍 CloudWatch 메트릭

다음 메트릭을 사용하여 DB 인스턴스를 모니터링할 수 있습니다:

  • AuroraOptimizedReadsCacheHitRatio: 캐시 히트 비율.
  • FreeEphemeralStorage: 사용 가능한 임시 스토리지 공간.
  • ReadIOPSEphemeralStorage: 읽기 IOPS.
  • WriteIOPSEphemeralStorage: 쓰기 IOPS.

Aurora Optimized Reads를 위한 모범 사례

  1. 스토리지 공간 모니터링
    • CloudWatch의 FreeEphemeralStorage 메트릭을 확인하여 인스턴스 스토리지 공간이 부족하지 않도록 관리하세요.
  2. 캐시 히트 비율 유지
    • pg_prewarm 확장을 사용하여 데이터를 미리 캐시에 로드하거나, VACUUM 작업으로 인한 캐시 히트 비율 감소를 방지하세요.
  3. 클러스터 캐시 관리(CCM) 활성화
    • CCM을 활성화하면 페일오버 시 빠른 복구를 위해 캐시를 미리 준비할 수 있습니다.

💡 "CCM은 버퍼 캐시를 주기적으로 스캔하여 계층형 캐시에 적합한 페이지를 기록합니다."


요약

Aurora Optimized Reads는 대규모 데이터셋을 처리하는 PostgreSQL 워크로드에서 성능을 크게 향상시키는 강력한 도구입니다. 계층형 캐시와 임시 객체를 활용하여 쿼리 지연 시간을 줄이고 비용을 절감할 수 있습니다. 이를 통해 실시간 대시보드, 생성형 AI, 분석 쿼리 등 다양한 사용 사례에서 효율성을 극대화할 수 있습니다. 🚀

"최적화된 읽기 기능을 통해 더 빠르고 효율적인 데이터베이스 운영을 경험하세요!"

요약 완료: 2025. 3. 28. 오전 12:53:40

이런 요약이 필요하신가요?

하베스트가 원클릭으로 요약해드립니다

5초 요약
AI 자동 분석
📱
모든 기기
웹, iOS, Chrome
🔍
스마트 검색
언제든 재발견
요약 시작하기
나도 요약하기