2026-10-25 — views
OpenAI, Habitat 스토리지 플랫폼을 위한 Azure Cosmos DB 확장 방식 공개
읽어야 하는 이유 거대한 글로벌 규모에서 멀티 테넌시 효율성과 격리 필요성의 균형을 맞춘 사례 연구.
OpenAI 엔지니어들이 Habitat 내에서 Azure Cosmos DB를 최적화하여 40개 지역에서 10억 명 이상의 사용자를 지원하는 방식을 설명합니다.
Azure Cosmos DB를 활용한 Habitat 확장
OpenAI는 온라인 스토리지 플랫폼인 Habitat을 10억 명 이상의 ChatGPT 사용자에게 서비스하도록 확장하기 위한 엔지니어링 여정의 두 번째 부분을 상세히 공개했습니다. 이 플랫폼은 40개 지리적 지역에서 밀리초 단위의 응답 시간을 요구하며, 기반 스토리지 컴포넌트로 Azure Cosmos DB를 사용합니다. OpenAI는 Azure 팀과 긴밀히 협력하여 공동 관리(co-managed) 컨테이너를 사용하는 실행 가능한 멀티 테넌시 접근 방식을 개발함으로써 대규모 규모에서 뛰어난 읽기 성능을 달성했습니다.
멀티 테넌시 트레이드오프
인프라가 확장됨에 따라 팀은 격리는 제공하지만 비싼 과잉 프로비저닝이 필요한 단일 테넌트 시스템에서 중앙 집중식 데이터베이스 팀이 관리하는 멀티 테넌트 시스템으로 전환하는 경우가 많습니다. 멀티 테넌시는 리소스 효율성을 개선하지만, 한 테넌트의 과부하가 다른 테넌트의 성능을 저하시키는 ‘노이지 네이버(noisy neighbors)‘와 같은 과제를 도입합니다. Habitat의 여정은 순환적인 진화를 거쳤습니다. 하나의 멀티 테넌트 컨테이너로 시작하여 격리를 위해 단일 테넌트 백업 컨테이너로 이동하고, 결국 효율성과 신뢰성의 균형을 맞추기 위해 멀티 테넌트 기본값으로 되돌아갔습니다.
파티션 제한 해결
초기에 Habitat은 Azure Cosmos DB의 기본 요소를 사용했으며, 논리적 파티션 키당 명시된 10,000 RU/s 한도에 의존하면서 모든 클라이언트 부하를 허용했습니다. 이 접근 방식은 세 가지 주요 문제에 직면했습니다. 첫째, user_id나 workspace_id와 같은 키를 다른 제품 사용 사례가 공유할 때 논리적 파티션 키 충돌이 발생하여 처리량에 제한을 주었습니다. 둘째, 논리적 파티션이 물리적 파티션 한도를 공유하기 때문에 틈새 워크로드가 핵심 흐름을 방해할 수 있어 노이지 네이버 문제가 발생했습니다. 셋째, 물리적 파티션 분할로 인해 약한 파티션이 발생했습니다. 데이터 볼륨이 증가함에 따라 파티션당 처리량 용량이 줄어들어 스토리지 집약적 사용 사례의 성능이 저하되었습니다.
워크로드 격리 구현
이러한 문제를 완화하기 위해 OpenAI는 중요한 새로운 사용 사례에 대해 별도의 Azure Cosmos DB 컨테이너를 사용하여 워크로드 격리를 도입했습니다. 이를 통해 각 컨테이너는 독립적인 물리적 파티션을 가질 수 있게 되어 노이지 네이버 효과가 감소했습니다. 엔지니어들은 또한 분할 시 용량 축소를 방지하기 위해 물리적 파티션 수와 총 프로비저닝 처리량을 동기화하는 스크립트를 구현했습니다. 그러나 기존 중요한 사용 사례는 공유 기본 컨테이너에 남아 있어 압력이 증가하고 프로덕션 인시던트가 발생했습니다. 결과적으로 OpenAI는 기본 컨테이너를 과도한 부하로부터 보호하기 위해 새로운 서비스나 주요 기능에 대해 별도의 컨테이너를 프로비저닝하기 시작했습니다.
실무자 노트
대규모로 Azure Cosmos DB를 사용하는 개발자는 물리적 파티션 분할을 주의 깊게 모니터링해야 합니다. 이는 파티션당 유효 처리량을 조용히 감소시킬 수 있기 때문입니다. 트래픽이 많거나 중요한 서비스를 위해 별도 컨테이너를 사용하여 엄격한 워크로드 격리를 구현하면 노이지 네이버 문제를 방지하고 신뢰할 수 있는 성능을 보장할 수 있습니다.