OpenAI Habitat 스토리지 플랫폼 확장: 멀티 테넌시, Azure Cosmos DB 개선 및 글로벌 성능

TL;DR

OpenAI는 Habitat 확장 이야기의 두 번째 부분을 공개하며, 팀이 Azure Cosmos DB 사용을 재설계하고, 멀티 테넌트 기본 컨테이너를 도입하고, 핫 키 제한, QoS, 사용자 지정 서버리스 모드, Rust 기반 서비스 및 CDC 기반 캐시를 추가하여 500PB 이상의 데이터를 2천만 QPS 이상으로 제공하고 읽기 지연 시간을 약 120ms에서 약 10ms로 줄인 방법을 설명했습니다.


Habitat 개요

Habitat는 40개 지리적 지역에 걸쳐 모든 OpenAI 제품에 밀리초 단위 데이터 액세스를 제공하는 OpenAI의 온라인 스토리지 플랫폼입니다. 10억 명 이상의 ChatGPT 사용자를 지원하며 500페타바이트 이상의 데이터를 저장합니다.


멀티 테넌시 설계 여정

결론: 공유 컨테이너 기반 멀티 테넌트 모델은 이제 대규모에서 안정적이고 유지 관리가 쉬운 스토리지를 제공합니다.

OpenAI는 세 단계를 거쳤습니다:

  1. 1단계 – 기본 멀티 테넌시 – 단일 Cosmos DB 컨테이너가 모든 트래픽을 처리했습니다. 논리적 파티션 키 제한과 노이즈 네이버 효과로 인해 처리량 경합이 발생했습니다.
  2. 2단계 – 기능별 단일 테넌시 – 별도의 컨테이너가 워크로드를 격리했지만 막대한 용량 계획 오버헤드와 빈번한 출시일 확장 사고가 발생했습니다.
  3. 3단계 – 완화 조치가 포함된 기본 멀티 테넌시 – Azure와 협력하여 OpenAI는 핫 키 제한, QoS 계층화 및 사용자 지정 서버리스 모드를 추가하여 단일 공유 컨테이너가 다시 많은 테넌트를 안전하게 호스팅할 수 있게 했습니다.

"제품 개발이 가속화되고 있음에도 불구하고 이후 몇 달 동안 프로비저닝이나 노이즈 네이버 사고가 발생하지 않았습니다." – OpenAI 엔지니어링 팀


Azure Cosmos DB 개선 사항

결론: Azure에서 구축한 기본 요소는 이제 수동 개입 없이 핫 키, 약한 파티션 및 확장을 처리합니다.

  • 핫 키 제한 – 가장 활발한 논리 키의 제한을 우선시하여 단일 테넌트가 물리적 파티션을 독점하지 못하도록 합니다.
  • QoS(서비스 품질) 계층화 – 대량 또는 오프라인 워크로드에 낮은 우선순위를 할당하여 대화형 지연 시간에 민감한 요청을 보호합니다.
  • 사용자 지정 서버리스 모드 – Azure의 서버리스 제공을 물리적 파티션당 10K RU/s로 확장하고 RU 기반 파티션 분할을 추가하여 수동 처리량 프로비저닝의 필요성을 제거합니다.

이러한 변경으로 OpenAI는 수십 페타바이트를 저장하면서 초당 2천만 개 이상의 쿼리(QPS)를 제공하는 단일 공유 컨테이너를 실행할 수 있습니다.


공동 관리 서비스를 통한 안정성

결론: Azure와의 공동 엔지니어링은 프로덕션 규모 테스트와 신속한 사고 대응을 제공합니다.

  • OpenAI와 Azure는 이제 대시보드, 테스트 스위트 및 직접 엔지니어링 채널을 공유합니다.
  • 2024년 지역 장애로 인해 대규모 Cosmos 계정의 장애 조치에 몇 시간이 걸릴 수 있음이 밝혀졌습니다. 이후 공동 테스트를 통해 장애 조치 시간이 단축되고 게이트웨이 스탬피드가 제거되었습니다.
  • 제어 플레인 확장성, 연결 풀링 및 메타데이터 캐싱에 대한 지속적인 공동 엔지니어링이 표준 관행이 되었습니다.

글로벌 성능 최적화

결론: 데이터를 사용자에게 더 가깝게 이동하고, 중요한 데이터 세트를 복제하고, CDC 기반 캐시를 추가하여 읽기 지연 시간이 12배(약 120ms → 약 10ms) 감소했습니다.

  1. 데이터 지역성 – 데이터 상주 요구 사항이 있는 지역에 여러 Cosmos DB 계정이 배포됩니다. 용량이 허용되는 경우 데이터는 컴퓨팅과 함께 배치됩니다.
  2. 선택적 복제 – 지연 시간에 중요한 데이터 세트(예: 인증 메타데이터)는 모든 40개 Azure 지역에 복제됩니다. 다른 데이터는 더 적은 지역에 유지됩니다.
  3. 통합 분산 캐시 – Valkey 기반 look-aside 캐시는 최근 개체를 요청 핸들러 근처에 저장합니다. 캐시 무효화는 Cosmos DB 변경 피드 CDC를 사용하여 초 수준의 신선도를 달성합니다.
  4. Rust 서비스 계층 – Habitat 서비스를 Rust로 다시 작성하여 Python 오버헤드를 제거하고 지연 시간 감소에 기여했습니다.

그림 5(원문 게시물)는 이러한 변경 후 p50 읽기 지연 시간이 120ms에서 10ms로 개선되었음을 보여줍니다.


CDC(변경 데이터 캡처) 확장

결론: 전용 CDC 플랫폼은 복잡성을 추상화하고 수천 개의 컨테이너에서 초당 수백만 건의 변경을 지속적으로 처리합니다.

  • CDC 스트림은 100개 이상의 Kafka 토픽을 공급하여 보조 인덱스, 분석 및 실시간 기능을 지원합니다.
  • 내부 제어 플레인은 관련 Cosmos 계정/컨테이너를 자동으로 검색하고, 작업자 팜의 균형을 조정하고, 읽기를 복제본 지역으로 라우팅합니다.
  • 견고성 조치에는 임대 저장소 격리, 데드 레터 큐 및 사용자 지정 Azure CDC SDK 체크포인트 일괄 처리가 포함됩니다.

향후 방향: 엑사바이트 규모 사내 스토리지

결론: OpenAI는 다음 10억 사용자를 처리하기 위해 사용자 지정 스토리지 시스템을 프로토타이핑하고 있습니다.

  • 이 시스템은 RocksDB Cloud(Rockset 제공)와 Raft 기반 복제를 결합합니다.
  • Cosmos 스타일 문서 모델을 유지하면서 분리된 스토리지를 사용하여 플래시 용량 요구 사항을 줄입니다.
  • 예상되는 절충안: 대규모 스토리지 효율성을 위해 최대 QPS가 감소합니다.

업계에 미치는 영향

  • 멀티 테넌시 실행 가능성 – OpenAI는 공급자 수준의 개선을 통해 단일 공유 컨테이너가 수십억 건의 요청을 안전하게 처리하여 운영 복잡성을 줄일 수 있음을 입증합니다.
  • 공급자 협력 – 소비자와 클라우드 공급자 간의 긴밀한 공동 엔지니어링은 최첨단 규모에서 필수가 됩니다. 다른 대형 AI 기업도 유사한 파트너십이 필요할 수 있습니다.
  • 성능 우선 아키텍처 – 지역성, 선택적 복제, CDC 기반 캐싱 및 저수준 언어 재작성을 결합하면 규모의 차수에 해당하는 지연 시간 개선을 얻을 수 있으며, 이는 전 세계적으로 분산된 모든 서비스에 대한 청사진입니다.
  • 자체 구축 스토리지로의 로드맵 – Azure의 기능에도 불구하고 OpenAI는 사내 솔루션에 투자하고 있으며, 이는 미래의 최첨단 AI 워크로드가 공용 클라우드 스토리지 한계를 초과할 수 있음을 시사합니다.

주요 시사점

  • Habitat는 단순한 Python 클라이언트에서 500PB 이상 및 2천만 QPS 이상을 제공하는 전 세계적으로 분산된 멀티 테넌트 스토리지 플랫폼으로 진화했습니다.
  • Azure Cosmos DB는 핫 키 제한, QoS 및 사용자 지정 서버리스 모드로 확장되어 단일 공유 컨테이너가 비용이 많이 드는 기능별 컨테이너를 대체할 수 있게 되었습니다.
  • 글로벌 지연 시간 개선은 데이터 지역성, 선택적 복제, CDC 기반 Valkey 캐시 및 Rust 서비스 재작성에서 비롯되어 읽기 p50 지연 시간을 약 120ms에서 약 10ms로 줄였습니다.
  • Azure와의 지속적인 공동 엔지니어링과 향후 엑사바이트 규모의 사내 스토리지 시스템은 OpenAI가 다음 10억 사용자를 지원할 수 있는 위치를 제공합니다.

최첨단 규모의 데이터 인프라에 관심이 있는 엔지니어를 위해 OpenAI는 Habitat 관련 역할을 채용 중입니다.

Sources