OpenAI: ClickHouse 기반 페타바이트 규모 관측 시스템
OpenAI: ClickHouse 기반 페타바이트 규모 관측 시스템

OpenAI: ClickHouse 기반 페타바이트 규모 관측 시스템

ClickHouse 분류
Customer Story
Type
Introduction
작성자

Ken

원문:

ClickHouse Team Why OpenAI chose ClickHouse for petabyte-scale observabilityClickHouse Team Why OpenAI chose ClickHouse for petabyte-scale observability

OpenAI는 매일 페타바이트 규모의 로그 데이터를 처리하며 전 세계적인 규모로 서비스를 운영하고 있습니다. ChatGPT의 폭발적인 성장과 엔터프라이즈 API, 그리고 수백만 개의 GPU에서 진행되는 모델 훈련까지 - 이 모든 활동은 엄청난 양의 로그 데이터를 생성합니다.

이러한 도전에 대응하기 위해 OpenAI는 오픈소스 분석 데이터베이스인 ClickHouse를 선택했습니다. 이 글에서는 OpenAI가 어떻게 ClickHouse를 활용해 확장성 문제를 해결했는지, 그리고 실제 위기 상황에서 어떤 기술적 해결책을 찾았는지 살펴보겠습니다.

규모의 문제

OpenAI가 처리하는 데이터의 규모는 상상을 초월합니다:

  • 매일 10페타바이트의 로그 데이터 수집
  • 이는 미국 의회 도서관 500개 분량의 책에 해당
  • 아이폰 사진으로 환산하면 20억 장에 달하는 양
  • 물리적으로는 하드드라이브 한 팰릿이 필요한 용량

다양한 사용자 요구사항

OpenAI는 독특한 조직 구조를 가지고 있습니다. 연구소이면서 동시에 제품 엔지니어링 조직이기도 합니다:

  • 연구팀: 수백만 개의 GPU에서 수십억 개의 모델을 훈련시키며 고차원 추적 데이터 필요
  • ChatGPT 제품팀: 전례 없는 속도로 성장하는 서비스의 안정성과 성능 모니터링
  • 엔터프라이즈 API팀: 엄격한 SLA를 준수하며 24시간 운영 지원

ClickHouse 선택 이유

OpenAI가 ClickHouse를 선택한 주요 이유는 다음과 같습니다:

1. 오픈소스의 투명성

  • 벤더 락인 없음
  • 문제 발생 시 소스코드 직접 확인 및 패치 가능
  • 강력한 커뮤니티 지원

2. 수평 확장성과 클라우드 네이티브 설계

  • 수집과 쿼리 워크로드 모두에서 확장 가능
  • 계층형 스토리지 자동 추상화 (최근 데이터는 디스크, 오래된 데이터는 블롭 스토리지)
  • 상대적으로 낮은 운영 부담

3. 유연한 인덱싱

  • 다양한 쿼리 패턴과 사용 사례에 대응
  • 쿼리 성능 향상을 위한 인덱스는 활성화
  • 수집 성능 저하를 야기하는 인덱스는 비활성화

4. SQL 네이티브 지원

  • AI 모델과 에이전트가 SQL로 직접 통신 가능
  • 관측성 스택에 AI 기능 통합으로 강력한 기능 구현

5. 검증된 솔루션

  • 많은 동종 기업들이 동일한 사용 사례에서 활용
  • 풍부한 지원과 최적의 도구

위기의 순간: 3월 25일 사건

2024년 3월 25일, OpenAI는 GPT-4o의 이미지 생성 기능을 출시했습니다. 사용자들의 반응은 폭발적이었습니다:

  • 애니메이션 스타일 자화상
  • 밈 이미지들
  • 유명한 사건들의 재해석
  • OpenAI 로고를 스테이크로 표현한 이미지까지

이러한 성공은 동시에 시스템에 엄청난 부담을 주었습니다:

  • 로그 볼륨이 하루 만에 50% 증가
  • 기존 50% CPU 여유분이 하룻밤 사이에 모두 소모
  • ClickHouse에서 메모리 부족 오류 발생
  • 복제 지연 발생
  • 모든 중요 메트릭 악화

긴급 대응 조치

  1. 스케일업: 쿼리 전용 복제본 추가로 비싼 쿼리가 수집에 간섭하지 않도록 분리
  2. 샘플링: 서비스, 클러스터, 컨테이너 이름별로 로그 분석하여 선별적 샘플링 적용
  3. 프로파일링: ClickHouse 직접 분석하여 근본 원인 파악

기술적 돌파구: Bloom Filter 최적화

프로파일링 결과 놀라운 사실이 발견되었습니다:

  • ClickHouse CPU 시간의 50% 이상이 Bloom Filter 생성에 소요
  • Bloom Filter는 특정 값이 컬럼에 존재할 가능성을 빠르게 판단하는 인덱스
  • 전체 블록을 스캔하지 않고도 요청 ID 존재 여부 확인 가능

문제의 핵심

소스코드 분석 결과, 단일 나눗셈 연산이 병목이었습니다:

  • CPU 나눗셈 연산은 덧셈이나 비트 연산보다 30배 느림
  • Bloom Filter에 요소를 추가할 때마다 해시값을 배열 크기로 나누는 연산 반복
  • 컴파일러가 최적화하지 못하는 구조

해결책: 수학적 최적화

곱셈과 비트 시프트로 나눗셈 대체하는 CPU 최적화 기법 적용:

  • 나눌 수를 미리 알고 있으므로 곱할 값과 시프트할 비트 수 사전 계산
  • 거의 한 줄의 코드 변경으로 구현
  • 즉시 CPU 사용량 40% 감소 달성

이 개선사항은 오픈소스 ClickHouse 프로젝트에 업스트림되어 전체 커뮤니티가 혜택을 받을 수 있게 되었습니다.

향후 계획

OpenAI의 ClickHouse 최적화 작업은 계속됩니다:

1. 스마트 쿼리 라우팅

  • 현재의 단순한 모든 샤드 팬아웃 방식에서 벗어나
  • 더 지능적인 쿼리 분산 시스템 구축

2. 개발자 경험 개선

  • 성능 모니터링 도구 구축
  • 엔지니어를 위한 더 효과적인 관측성 도구 제공

3. AI 에이전트 통합

  • 알림을 자동으로 처리하는 에이전트 시스템
  • 엔지니어 개입 전에 문제를 진단하고 해결하는 자동화
  • ClickHouse의 SQL 지원이 이러한 AI 통합을 가능하게 함

교훈과 시사점

오픈소스의 힘

OpenAI 사례는 오픈소스 소프트웨어의 진정한 가치를 보여줍니다. 위기 상황에서 소스코드에 직접 접근해 문제를 해결하고, 그 해결책을 다시 커뮤니티에 기여할 수 있었던 것은 오픈소스이기에 가능했습니다.

클라우드 네이티브 설계의 중요성

ClickHouse의 클라우드 네이티브 아키텍처는 급격한 규모 변화에 대응할 수 있는 유연성을 제공했습니다. 계층형 스토리지 자동 관리와 수평 확장성은 운영 복잡성을 크게 줄여주었습니다.

AI 시대의 관측성

SQL 지원을 통한 AI 에이전트 통합은 미래의 관측성 시스템이 나아갈 방향을 제시합니다. 단순한 모니터링을 넘어서 자동화된 문제 해결까지 가능한 지능형 시스템으로의 진화가 기대됩니다.

결론

OpenAI의 ClickHouse 활용 사례는 페타바이트 규모의 데이터 처리가 현실이 된 시대에 어떤 기술적 선택이 중요한지 보여줍니다. 오픈소스의 투명성, 클라우드 네이티브 설계, 그리고 커뮤니티 중심의 생태계가 결합되었을 때 극한 상황에서도 혁신적인 해결책을 찾을 수 있음을 증명했습니다.

전 세계적으로 확장되는 OpenAI의 연구 및 제품 활동에서 ClickHouse 기반 관측성 스택은 안정성 보장의 핵심 역할을 계속해서 수행할 것입니다.