Postgres Distributed: OpenAI 데이터베이스 계층을 위한 네이티브 진화 경로

작성자: Anil Kumar

작성일: 2026년 3월 5일

OpenAI의 PostgreSQL 확장성 트레이드오프

OpenAI는 현재 8억 명 이상의 사용자를 지원하는 데이터베이스 아키텍처를 운영하며, 지속적인 글로벌 수요에 대응하기 위해 PostgreSQL의 한계를 넓혀가고 있습니다. OpenAI 팀은 Azure Flexible Server 환경에서 싱글 프라이머리(Single Primary) 아키텍처를 유지하며 “엄격한 SQL 리뷰”, “5초 스키마 타임아웃”, 그리고 쓰기 부하가 큰 데이터를 Azure CosmosDB로 분산하는 “폴리글랏(Polyglot)” 접근 방식을 통해 이른바 ‘운영의 기적*을 일구어냈습니다.

하지만 이러한 복잡성은 물리적 스트리밍 복제(Physical Streaming Replication, PSR)의 구조적 한계에서 기인합니다. PSR은 유연한 수평 확장을 제한하며, 장애 조치(Failover) 시 시스템을 취약하게 만듭니다. 또한 블록 수준의 일관성에 의존하기 때문에 복제 지연을 동적으로 제어하거나 서비스 중단 없는 DDL 변경이 사실상 불가능합니다. 이는 결국 엔지니어링 팀이 SEV-0 장애를 막기 위해 복잡한 ‘애플리케이션 수준의 샤딩’과 고도화된 모니터링에 의존하게 만들며, 현재의 관계형 시스템이 물리적 임계치에 도달했음을 시사합니다.

EDB는 이러한 취약한 평형 상태에서 벗어나, 글로벌 규모의 고가용성(HA), 성능 및 회복 탄력성을 위해 설계된 분산 PostgreSQL 아키텍처로의 전환을 제안합니다.

EDB Postgres Distributed (PGD)란 무엇인가?

EDB Postgres Distributed (PGD)(과거 BDR로 알려짐)는 표준 PostgreSQL을 ‘항상 가동되는(Always-on)’ 분산 데이터베이스 플랫폼으로 변모시키는 통합 스택입니다.

액티브-액티브(Active-Active) 복제를 통해 비즈니스 연속성을 보장하며, 정의된 내구성 프로파일(Commit Scopes)을 사용하여 복잡한 설정 없이도 데이터의 내구성과 일관성을 단순화합니다. 특히 PGD는 단순히 데이터를 복제하는 수준을 넘어, 각 지역(Region)의 활성 노드에서 애플리케이션을 온라인 상태로 유지하면서 데이터 지역성 전략과 자동화된 충돌 관리를 지원합니다.

전통적인 논리적 복제는 각 구독자(Subscriber)를 위해 WAL을 디코딩하며 CPU에 심각한 부하를 주었지만, PGD는 이를 혁신적으로 개선했습니다. 소스 노드에서 논리적 디코딩을 단 한 번만 수행하고 그 결과인 논리적 변경 레코드(LCR)를 모든 스트림에 공유함으로써 성능 저하를 제거했습니다. 또한 병렬 적용(Parallel Apply)을 통해 처리량을 5배 향상시켰으며, Raft 합의 알고리즘을 내장해 결정론적인 라우팅과 충돌 해결을 제공합니다.

OpenAI가 겪고 있는 주요 페인 포인트(Pain Points)를 해결할 PGD의 6가지 핵심 솔루션을 소개합니다.


1. 트래픽 증폭 및 부하 급증 (Traffic Amplification & Load Spikes)

  • 현재의 도전 과제: 싱글 프라이머리 노드가 한계에 도달하면 응답 시간이 늘어나고, 이는 애플리케이션의 재시도(Retry)를 유발하여 트래픽을 배가시킵니다. Azure의 max_connections 한도(~6K)를 초과하는 커넥션 폭풍이 발생하면 데이터베이스가 쿼리 실행보다 프로세스 관리에 더 많은 자원을 소모하는 계단식 장애(Cascading Outage)로 이어집니다.
  • PGD의 솔루션: * 통합 커넥션 매니저: PGD 6는 백그라운드 워커로 실행되는 빌트인 커넥션 매니저를 사용합니다. 이는 외부 사이드카(PgBouncer 등)가 처리하기 어려운 분산 라우팅과 재시도 폭풍을 네이티브하게 해결합니다.
    • 액티브-액티브 아키텍처: 쓰기 작업을 여러 리드 라이터(Lead Writer)로 분산하여 단일 노드에 부하가 집중되는 것을 방지하고 커넥션 서지를 메시 전체에서 흡수합니다.

2. 쿼리 및 애플리케이션 동작 (Query & Application Behavior)

  • 현재의 도전 과제: 복잡한 12개 테이블 ORM 조인과 같은 비효율적인 쿼리는 CPU를 포화시키고 클러스터 전체 지연을 초래합니다. 이를 막기 위해 현재 OpenAI는 수동 SQL 리뷰와 엄격한 워크로드 격리에 의존하고 있습니다.
  • PGD의 솔루션: * 무충돌 복제 데이터 타입 (CRDTs): 전역 카운터나 세션 상태와 같이 업데이트가 빈번한 데이터에 대해 글로벌 락(Lock) 없이 여러 노드에서 동시에 업데이트를 수행할 수 있게 하여 성능 병목을 제거합니다.
    • 고급 워크로드 격리: ‘구독 전용 노드(Subscriber-Only Nodes)’를 통해 리포팅용 로컬 쓰기 트랜잭션이나 맞춤형 인덱스 생성을 지원합니다. 이는 ‘노이즈 네이버(Noisy Neighbor)’ 워크로드를 완전히 분리하여 프라이머리 엔진의 안정성을 보호합니다.
    • 분석용 계층형 테이블 (Tiered Tables): 오래된 세션 이력과 같은 ‘차가운(Cold)’ 데이터를 저렴한 오브젝트 스토리지로 오프로드하고, 벡터화된 쿼리 엔진을 통해 표준 Postgres보다 최대 30배 빠른 분석을 제공합니다.

3. 유지보수 경합 및 스토리지 엔진 부하

  • 현재의 도전 과제: VACUUM FULL이나 REINDEX와 같은 작업은 배타적 락을 유발하여 애플리케이션 쿼리를 차단합니다. 이를 피하기 위해 스케줄링된 다운타임이나 엄격한 5초 락 타임아웃 규칙을 적용해야 하는 운영적 부담이 큽니다.
  • PGD의 솔루션: * 순차적 온라인 유지보수 (Rolling Online Maintenance): 액티브-액티브 특성을 활용해 노드별로 유지보수를 수행하면서 트래픽을 다른 노드로 동적 전환합니다. 서비스 중단 없는 무중단 유지보수가 일상적인 백그라운드 작업이 됩니다.

4. 아키텍처 및 복제 확장 한계

  • 현재의 도전 과제: 약 50개의 글로벌 복제본을 관리하면서 발생하는 WAL 전송 부하는 프라이머리 노드에 막대한 압박을 줍니다. 현재 ‘계단식 복제(Cascading Replication)’를 사용 중이지만, 이는 중간 노드 장애 시 복제 토폴로지가 취약해지는 문제를 안고 있습니다.
  • PGD의 솔루션: * 복제 효율 최적화: 소스 노드에서 단 한 번의 디코딩으로 모든 복제본에 스트림을 공유합니다. 프라이머리의 CPU 및 대역폭 포화 없이 읽기 전용 플릿을 수평 확장할 수 있습니다.
    • 병렬 적용을 통한 처리량 가속: 트랜잭션 의존성을 분석해 비충돌 변경 사항을 다중 스레드에서 병렬로 적용합니다. 기존 대비 최대 5배 빠른 복제를 통해 전 세계 복제본 간의 ‘데이터 시차(Stale Reads)’를 제거합니다.

5. 운영 변경 관리 (Operational Change Management)

  • 현재의 도전 과제: 5초 이상의 스케마 마이그레이션을 자동 차단하는 규칙은 시스템 안정성은 지켜주지만 엔지니어링 속도를 크게 저하시킵니다.
  • PGD의 솔루션: * 순차적 스케마 업데이트: 클러스터 전체의 스케마가 일시적으로 다르더라도 작동할 수 있도록 지원합니다. 애플리케이션 온라인 상태를 유지하며 노드별로 순차적 업데이트가 가능합니다.
    • 제로 다운타임 메이저 업그레이드: 서로 다른 버전 간의 클러스터 구성을 지원하여, PG 15에서 16으로의 업그레이드와 같은 대규모 작업을 중단 없이 수행할 수 있습니다.

6. 이식성 및 클라우드 독립성

  • 현재의 도전 과제: Azure PostgreSQL 및 Cosmos DB에 대한 의존성은 특정 클라우드 서비스 제공업체(CSP)에 종속되는 ‘PaaS Lock-in’ 문제를 야기합니다. Oracle과의 Stargate 프로젝트나 하이브리드 컴퓨팅 환경으로 확장할 때 데이터 계층의 이식성이 걸림돌이 됩니다.
  • PGD의 솔루션: * 인프라 독립성: PGD는 순수 소프트웨어 정의(Software-defined) 솔루션으로 Azure, AWS, GCP, Oracle Cloud(OCI), 온프레미스, Kubernetes 어디서나 동일하게 작동합니다.
    • 멀티 클라우드 운영: Azure와 OCI를 잇는 단일 논리적 클러스터를 구성하여 실시간으로 데이터를 복제할 수 있습니다. 이는 비용 최적화는 물론 특정 클라우드 전체 장애에 대비한 비즈니스 연속성을 보장합니다.

결론: 운영의 기적에서 아키텍처의 주권으로

OpenAI는 단일 PostgreSQL 코어로 8억 명의 사용자를 지원할 수 있음을 증명했지만, 이는 수많은 엔지니어의 헌신적인 수동 개입이 있었기에 가능했습니다. 현재의 아키텍처는 늘어나는 운영 부채 위에 서 있는 과도기적 상태입니다.

EDB Postgres Distributed(PGD)로의 전환은 다음과 같은 가치를 제공합니다.

  1. 폴리글랏 파편화 제거: NoSQL(Cosmos DB)로 분산시켰던 쓰기 워크로드를 다시 통합된 분산 PostgreSQL 환경으로 통합하십시오.
  2. 결정론적 회복 탄력성: 외부 모니터링 시스템에 의존하는 대신, 데이터베이스 엔진 내장 Raft 합의 알고리즘을 통해 수학적 확실성에 기반한 장애 조치를 구현하십시오.
  3. 검증된 확장성: EDB의 분산 패턴은 이미 세계 최대 규모의 금융 기관과 결제 네트워크에서 99.999% 이상의 가용성을 입증했습니다.
  4. 완전한 인프라 이식성: 하이퍼스케일러에 종속되지 마십시오. 데이터 계층이 컴퓨팅 성능을 따라 어디로든 이동할 수 있는 자유를 확보하십시오.

이제 수동 최적화의 시대를 지나, 스스로 치유하고 확장하는 네이티브 분산 아키텍처로 나아갈 때입니다.

메일: salesinquiry@enterprisedb.com

Visited 4 times, 4 visit(s) today