본문 바로가기
정보글/AI 동향

[AI] OpenAI Habitat 스토리지 - 초당 7천만 요청 구조와 Rust 재작성 by 스둥

by 스페둥 2026. 9. 14.

 

OpenAI가 ChatGPT를 떠받치는 스토리지 시스템 Habitat의 확장 과정을 공개했다. 파이썬 라이브러리 하나로 시작해서 지금은 초당 7,000만 건 이상의 요청을 처리하는 시스템이 됐는데, 그 사이에 뭘 갈아엎었는지가 꽤 구체적으로 나와 있다.

OpenAI Habitat은 어떤 시스템일까?

Habitat은 ChatGPT의 대화 기록 같은 데이터를 실시간으로 읽고 쓰는 온라인 스토리지 플랫폼이다. 온라인 스토리지란 사용자가 화면에서 뭔가 누를 때 즉시 응답해야 하는 저장소를 말한다. 밤에 몰아서 돌리는 분석용 저장소와는 요구사항이 정반대다.

  • 초당 7,000만 건 이상의 요청
  • 주간 10억 명 이상이 쓰는 제품을 지원
  • 40개 지역에 분산, 저장 데이터 500페타바이트 이상
  • 3년간 매년 10배 이상 성장

 

왜 라이브러리를 버리고 서비스로 바꿨나

수정할 때마다 수십 개 서비스를 동시에 배포해야 했기 때문이다.

처음 Habitat은 2023년 DevDay에 나온 파이썬 클라이언트 라이브러리였다. Azure Cosmos DB 앞에 붙어 스키마 조회, 라우팅, 인증, 암호화, 커넥션 풀링을 대신 처리해줬다.

문제는 이게 각 서비스 안에 박혀 있다는 점. 데이터를 지역별 Cosmos DB로 옮기려고 라우팅 로직 하나 바꾸려면 피처 플래그를 깔고, 수십 개 서비스 배포를 맞추고, 며칠에 걸쳐 롤아웃해야 했다. 서비스 하나가 롤백되면 장애로 번질 수도 있었다.

2025년 중반, 라이브러리를 중앙 서비스로 끌어냈다. 접근 제어, 감사 로그, 암호화, 레이트 리밋을 한 군데서 강제할 수 있게 된 게 큰 소득이다.

파이썬으로 버티면서 터진 문제 3가지

1. asyncio가 CPU 작업에 막힌다 파이썬 asyncio는 동시성은 주지만 CPU 병렬 처리는 아니다. 압축, 암호화, 체크섬 같은 작업이 이벤트 루프를 잡으면 뒤에 줄 선 요청이 통째로 지연된다. 해법은 프로세스 하나가 맡는 동시 요청 수를 줄이고 프로세스 수를 왕창 늘리는 것이었다. 이벤트 루프 스케줄링 지연은 지표로 계속 감시했다.

2. LIFO 커넥션 풀이 느린 서버로 트래픽을 몰았다 aiohttp 커넥션 풀은 기본이 LIFO, 가장 최근에 반납된 커넥션부터 다시 쓴다. 그런데 느린 서버일수록 응답이 늦으니 커넥션도 늦게 반납된다. 풀 맨 위에 느린 서버 커넥션이 올라와 있고, 다음 요청이 그걸 집어간다. 느린 서버가 트래픽을 더 받아 더 느려지는 악순환. FIFO로 바꿔 급한 불을 끄고, 이후엔 Istio/Envoy가 서버 부하를 보고 분배하게 넘겼다.

3. 프로세스가 많아지니 뒤쪽이 터졌다 배포할 때마다 커넥션이 한꺼번에 재연결되며 CPU가 튀고, 커넥션 누수가 NAT 게이트웨이를 포화시켰다. Envoy로 HTTP/1을 HTTP/2로 올려 커넥션 하나에 요청 여러 개를 태우고(멀티플렉싱), 레이트 리밋과 서킷 브레이커를 중앙으로 모아 해결했다.

 

SQL을 안 쓰고 일부러 API를 좁혔다

Habitat은 자유 질의를 막고 페이스북 TAO를 참고한 제한된 NoSQL API만 제공한다. 미리 정의된 객체(object)와 엣지(edge) 타입만 쓰고 둘을 같은 파티션에 붙여 저장하며, 직접 연결된 엣지 조회 이상의 그래프 순회는 지원하지 않는다.

이유는 요청 하나가 얼마나 일할지 예측 가능하게 만들기 위해서다. 자유 질의를 열어주면 어딘가에서 팬아웃이 폭발하는 쿼리가 반드시 나온다. 대신 복잡한 분석은 CDC(변경 데이터 캡처)로 Kafka, Databricks, Rockset에 흘려보내 오프라인에서 처리한다.

엔지니어 2명 + Codex로 Rust 재작성

2026년 2분기, OpenAI는 엔지니어 2명과 Codex, GPT-5.5로 서비스 전체를 Rust로 다시 썼다. 파이썬 피크가 초당 2,000만 건 이상이던 상태에서 갈아엎은 것이다.

결과는 CPU 효율 6배, 메모리 효율 15배, 평균·꼬리 지연시간 모두 감소. 현재 프로덕션 요청의 95%를 Rust가 받고 파이썬은 정리 중이다.

흥미로운 건 의사결정 방식이다. OpenAI는 파이썬의 성능 손해를 "전략적 기술 부채"로 놓고 감수했다. 파이썬을 벗어나야 할 시점이 오면 Codex와 GPT가 그 마이그레이션을 해낼 거라는 데 걸었고, 1년 안에 실제로 그렇게 됐다.

개발자가 가져갈 것

  • 공용 로직은 라이브러리보다 서비스로. 배포 조율 비용이 코드 재사용 이득을 넘어서는 순간이 온다.
  • 커넥션 풀 재사용 정책을 확인하자. LIFO/FIFO 한 줄 차이로 트래픽 쏠림이 생긴다.
  • API를 좁게 여는 게 방어다. 할 수 있는 걸 줄이면 장애 시나리오도 줄어든다.

다만 "나중에 AI가 포팅해줄 것"이라는 베팅은 OpenAI라서 가능했던 면도 있다. 

한 줄 요약: OpenAI가 ChatGPT 스토리지 Habitat을 파이썬 라이브러리에서 중앙 서비스로 옮기고 Rust로 재작성한 과정 — 초당 7,000만 요청, 500페타바이트, CPU 6배·메모리 15배 효율 개선.


출처 - Rapidly scaling online storage to serve over 1 billion ChatGPT users — OpenAI, 2026년 9월 11일

댓글