
3줄 요약
- A Reproducible Benchmark for Postgres Services 주제는 기술 자체보다 적용 방식이 더 중요합니다.
- 실제 현장에서는 AI와 사람의 협업이 성과를 좌우합니다.
- 도입보다 검증과 운영 프로세스 설계가 더 큰 차이를 만듭니다.
왜 재현 가능한 벤치마크가 필요한가
클라우드 환경에서 PostgreSQL을 선택할 때, 단순히 가격표나 마케팅 자료만으로는 실제 워크로드에서의 응답 속도와 처리량을 예측하기 어렵습니다. 특히 I/O 집약적인 OLTP 환경에서는 WAL 생성량, 디스크 대역폭, 캐시 효율성 등 여러 변수가 복합적으로 작용합니다. 이런 상황에서 재현 가능한 벤치마크가 없으면, 서비스 간 성능 차이를 과대 혹은 과소 평가하게 되고, 결국 비용 효율성이 낮은 인프라를 선택하게 되는 위험이 있습니다.
PostgresBench 개요
ClickHouse가 발표한 PostgresBench는 동일한 워크로드, 동일한 인프라 설정, 동일한 측정 방법을 적용해 여러 클라우드 PostgreSQL 서비스를 비교하도록 설계되었습니다. 테스트는 us-east-2 리전에서 HA를 비활성화하고, 각 서비스가 지원하는 최신 PostgreSQL 17·18 버전을 사용했습니다. 주요 테스트 대상에는 Neon, Crunchy Bridge, AWS Aurora 등이 포함되었습니다.
벤치마크 설계와 핵심 지표
PostgresBench는 TPC‑B 워크로드를 기반으로 하며, 지속적인 UPDATE 작업을 통해 WAL 생성량을 극대화합니다. 이는 빠르게 성장하는 OLTP 시스템에서 흔히 발생하는 패턴이며, 디스크 I/O 성능이 전체 처리량에 미치는 영향을 명확히 드러냅니다. 주요 지표는 다음과 같습니다.
- TPS(Transactions Per Second): 시스템이 초당 처리할 수 있는 트랜잭션 수
- 평균 레이턴시와 p95/p99 레이턴시: 사용자 경험에 직접적인 영향을 주는 지표
- I/O 대기 시간 및 WAL 기록량: 디스크 서브시스템의 병목을 파악
- CPU·메모리 활용률: 자원 효율성을 평가
기술 구현 상세
벤치마크 실행에는 PostgreSQL 기본 제공 도구인 pgbench를 사용했습니다. 스크립트는 다음과 같이 간단히 정의합니다.
-- scripts/pg_bench_script.sql
SELECT count(1) FROM orders WHERE order_id = $1;
실행 명령은
pgbench -c 16 -j 4 -T 300 -h $HOST -U $USER $DBNAME
와 같이 클라이언트 수(-c), 스레드 수(-j), 테스트 시간(-T)을 조정해 다양한 부하 상황을 시뮬레이션합니다. 결과는 JSON 형식으로 저장해 자동화 파이프라인에서 비교 분석이 가능하도록 했습니다.
서비스별 장단점
PostgresBench 결과를 기반으로 주요 서비스의 특징을 정리하면 다음과 같습니다.
- Neon (Serverless): 자동 스케일링이 장점이지만, 초기 레이턴시가 다소 높고 IOPS 제한이 존재합니다.
- Crunchy Bridge (Standard‑64): 높은 베이스 IOPS와 안정적인 TPS를 제공하지만, 비용이 상대적으로 높습니다.
- Aurora (PostgreSQL 17): 최신 버전 미지원이 단점이며, HA 비활성화 시 성능 차이가 크게 나타납니다.
실제 적용 사례
PlanetScale은 내부 도구 “Telescope”을 활용해 PostgresBench와 유사한 방법론으로 자체 서비스 성능을 검증했습니다. 그 결과, 동일 사양(i8g M‑320)에서 평균 TPS가 1,500 ~ 1,800 수준으로, 경쟁 서비스 대비 15 % 이상 높은 수치를 기록했습니다. 이와 같은 실무 적용 사례는 벤치마크가 단순 실험을 넘어 제품 로드맵과 비용 최적화에 직접적인 인사이트를 제공한다는 점을 보여줍니다.
단계별 실행 가이드
아래 절차를 따라 자체 환경에 PostgresBench를 적용해 보세요.
- 테스트할 PostgreSQL 엔드포인트와 인증 정보를 준비합니다.
- 동일한 인스턴스 사양(예: 4 vCPU, 16 GB RAM, NVMe SSD)으로 클라우드 서비스들을 프로비저닝합니다.
- pgbench 초기화:
pgbench --initialize --scale=100 -h $HOST -U $USER $DBNAME - 부하 테스트 실행:
pgbench -c 32 -j 8 -T 600 -h $HOST -U $USER $DBNAME > result.json - JSON 결과를 파이썬/Node.js 스크립트로 파싱해 TPS, 레이턴시, IOPS 등을 표준화된 형태로 정리합니다.
- 다른 서비스와 비교 차트(예: 라인 차트)로 시각화하고, 비용 대비 성능을 계산합니다.
FAQ
- Q: 로컬 환경에서 실행해도 의미가 있나요? A: 로컬 테스트는 디스크와 네트워크 특성이 클라우드와 다르기 때문에, 실제 서비스와 동일한 리전의 VM에서 실행하는 것이 권장됩니다.
- Q: pgbench 외에 다른 도구를 사용해도 되나요? A: 가능하지만, 벤치마크 재현성을 위해서는 동일한 워크로드와 측정 방법을 유지해야 합니다. pgbench는 PostgreSQL 공식 도구이므로 가장 안전합니다.
- Q: 오버인덱싱이 성능에 미치는 영향은? A: Percona 연구에 따르면, 사용되지 않는 인덱스는 INSERT/UPDATE 시 WAL 기록량을 증가시켜 TPS를 5 ~ 10 % 정도 저하시킵니다. 따라서 벤치마크 전후 인덱스 정리를 권장합니다.
결론 및 실무 적용 액션 아이템
재현 가능한 벤치마크는 클라우드 PostgreSQL 선택에서 비용 효율성과 성능 보장을 동시에 달성할 수 있는 핵심 도구입니다. 기업이나 실무자가 지금 바로 실행할 수 있는 구체적인 액션은 다음과 같습니다.
- 핵심 워크로드를 정의하고, TPC‑B 기반 pgbench 스크립트를 작성한다.
- 비교 대상 서비스를 동일 사양의 테스트 인스턴스로 프로비저닝한다.
- 위 단계별 가이드를 따라 30분 이상 장시간 테스트를 수행하고, 결과를 JSON 형태로 저장한다.
- 저장된 결과를 자동화 파이프라인에 연동해 정기적으로 성능 추이를 모니터링한다.
- 벤치마크 결과를 기반으로 비용·성능 비율이 가장 높은 서비스를 선정하고, 필요 시 인덱스 정리·쿼리 튜닝을 추가한다.
이러한 프로세스를 정착시키면, 서비스 마이그레이션이나 신규 클라우드 도입 시 객관적인 데이터에 기반한 의사결정을 할 수 있어 장기적인 운영 비용 절감과 서비스 안정성을 동시에 확보할 수 있습니다.
관련 글 추천
- https://infobuza.com/2026/04/04/20260404-nuysa6/
- https://infobuza.com/2026/04/04/20260404-dh8hlw/
지금 바로 시작할 수 있는 실무 액션
- 현재 팀의 AI 활용 범위와 검증 절차를 먼저 문서화합니다.
- 작은 파일럿 프로젝트로 KPI를 정하고 2~4주 단위로 검증합니다.
- 보안, 품질, 리뷰 기준을 자동화 도구와 함께 연결합니다.

