Cloudflare Basin 소개: 오픈 서버리스 데이터 플랫폼, 이제 일반 공급 개시

Marc Selwan 및 Micah Wylde

12분 읽기

이 포스트는 다음 언어로도 제공됩니다 English, Deutsch, Español, Français, 日本語, 繁體中文, 简体中文 및 Português.

2025년 창립기념일 주간에 우리는 분석 데이터를 수집, 저장, 조회하는 제품군인 Cloudflare Data Platform을 발표했습니다. 오늘 이 플랫폼이 일반 공급되었음을 알리며, 새로운 이름인 Cloudflare Basin을 발표합니다.

Basin은 데이터 레이크의 개방형 표준인 Apache Iceberg와 R2 개체 스토리지를 기반으로 구축된 서버리스 데이터 분석 플랫폼입니다. Basin 제품군에는 다음이 포함됩니다:

  • Basin Pipelines(구 Cloudflare Pipelines)는 Workers, HTTP, 또는 Cloudflare Logpush에서 이벤트를 수신하고, SQL로 변환한 후 Apache Iceberg 테이블 또는 R2의 파일로 저장합니다.
  • Basin Catalog(구 R2 Data Catalog)는 Iceberg 메타데이터를 관리하고 테이블을 빠르고 비용 효율적으로 유지하기 위한 자동 유지 관리를 수행합니다.
  • Basin SQL(구 R2 SQL)은 Cloudflare에서 Apache Iceberg 테이블을 직접 조회하기 위한 서버리스 분산형 SQL 엔진입니다.

Basin은 Developer Platform에 엔드투엔드 분석 플랫폼을 제공하여 애플리케이션, 인프라, 장치, 기타 Cloudflare 서비스 등 다양한 소스에서 데이터를 수집하고, 이를 조회하여 분석적 질문에 답변할 수 있도록 합니다.

우리가 데이터 플랫폼 구축에 착수한 것은 작년으로, 현대적인 데이터 애플리케이션의 구축 방식을 변화시키는 두 가지 근본적인 발전을 목격했기 때문입니다. 첫째, Apache Iceberg가 거의 모든 주요 쿼리 엔진에서 데이터를 이식 가능하게 만드는 개방형 표준 테이블 형식으로 부상했습니다. 둘째, 개발자들이 분석 데이터를 R2로 가져오기 시작하는 것을 목격했습니다. 데이터 송신료가 없어 다양한 도구, 팀, 리전, 클라우드 공급자에서 데이터에 실제로 액세스하는 것이 실용적이고 비용 효율적이 되었기 때문입니다.

Basin을 오픈 베타로 출시했을 때, Cloudflare의 청구 팀과 인프라 팀을 포함한 개발자들이 즉시 이 서비스들을 다양한 사용 사례에 도입하기 시작했습니다. 여기에는 실시간 데이터를 활용한 이커머스 사이트 최적화, 청구 지표의 장기 저장 및 보고, Cloudflare 인프라에서 텔레메트리를 수집 및 조회하여 활용률과 효율성을 측정·개선하는 작업이 포함됩니다.

"우리는 회사 전체의 데이터 파이프라인을 Basin Pipelines, Catalog, SQL로 이전하여, 복잡한 AWS S3와 Athena 설정을 모든 이벤트 데이터를 안정적으로 처리하는 더 깔끔한 서버리스 아키텍처로 교체했습니다. —Dax Raad, Anomaly 공동 창업자"

초기 도입자들로부터 에지에서 분석 플랫폼을 운영하는 것이 무엇을 의미하는지에 대해 많은 것을 배웠습니다. 우리는 지난 1년간 Developer Platform에서 분석을 차별화하는 요소에 초점을 맞춘 세 가지 영역, 즉 속도, 개방성, 비용 효율성을 중심으로 Basin을 개선해 왔습니다.

Basin은 속도를 위해 구축되었습니다. 시작의 용이성부터 대규모 쿼리 실행까지 모든 면에서 그렇습니다. Basin Catalog를 생성하고, 데이터를 수집하기 위한 Pipeline을 설정하고, Basin SQL로 조회하는 것이 수 초 내에 가능합니다. 이는 프롬프트부터 코딩 에이전트까지 더 많은 데이터 애플리케이션이 구축되는 환경에서 중요합니다. 그렇지 않으면 리소스나 데이터를 기다리며 계속 폴링해야 합니다. 데이터셋이 커지면 Basin Catalog는 메타데이터와 데이터 파일을 압축하여 I/O를 줄이고, 쿼리 계획을 위한 통계를 생성합니다. Basin SQL은 해당 통계를 사용하여 쿼리를 더 작은 작업으로 분할하고 Workers 전체에 분산시켜, 데이터셋이 확장되어도 쿼리를 빠르고 일관성 있게 유지합니다.

Basin의 개발과 도입을 이끄는 주요 원동력 중 하나는 오픈 Apache Iceberg 에코시스템의 지속적인 성장입니다. 개발자들은 자신의 데이터를 직접 소유하고 관리해야 한다는 혁신적인 아이디어를 지지하며, 스토리지 레이어를 컴퓨트 레이어에서 분리하여 목적에 맞는 적절한 쿼리 엔진을 사용할 수 있도록 하고 있습니다. Basin을 통해 PyIceberg, DuckDB, Snowflake, Apache Spark를 포함한 모든 Iceberg 호환 엔진을 사용하여 데이터를 읽고 쓸 수 있습니다. 이러한 데이터 이식성은 데이터 송신료가 없어야만 가능하며, 덕분에 개발자들은 리전이나 클라우드에 관계없이 에코시스템의 다양한 도구를 통해 Cloudflare에 있는 자신의 데이터에 액세스할 수 있습니다.

"Bobsled는 세계에서 가장 앞선 데이터 팀이 파트너, 벤더, 고객에게 AI에 바로 활용할 수 있는 데이터를 구축하고 배포하는 데 사용하는 데이터 제품 플랫폼입니다"라고 Bobsled의 플랫폼 책임자 Julien Grobbelaar가 말했습니다. "Basin 덕분에 모든 주요 데이터 및 AI 플랫폼의 모든 리전에서 액세스할 수 있는 데이터 제품을 구축할 수 있으며, 데이터 송신료가 없어 프로덕션 수준의 안정성을 유지하면서도 훨씬 적은 비용으로 이를 실현할 수 있습니다."

데이터 송신료가 없는 데 더해, 서버리스 아키텍처를 통해 사용량 기반 요금제로 고객에게 더 높은 비용 효율성을 제공할 수 있습니다. Basin이 데이터를 수집, 처리 또는 조회할 때만 요금이 청구됩니다. 개발자는 취미 프로젝트를 위한 분석을 거의 무료로 구축할 수 있으며, 우리 요금 체계는 더 큰 엔터프라이즈 사용 사례에도 경제적으로 확장됩니다. 시간 단위 요금이나 별도의 인프라 비용을 걱정할 필요가 없습니다.

바로 시작하려면 Basin 튜토리얼을 참조하세요. Basin Pipelines를 사용하여 이벤트를 Basin Catalog가 관리하는 Apache Iceberg 테이블로 전달하고, Basin SQL로 조회하는 방법에 대한 단계별 가이드를 제공합니다. Basin 및 앞으로의 계획에 대해 더 알아보려면 계속 읽어 주세요.

왜 Basin인가요?

우리는 이러한 제품들을 작년에 Cloudflare Data Platform으로 출시했으며, 출시 첫해 동안 이 플랫폼은 제 역할을 잘해 왔습니다. GA 출시를 위해 플랫폼에 대한 우리의 야망을 아우르고, 모든 제품을 하나로 연결하며, 좀 더 강렬한 새 이름이 필요하다고 판단했습니다.

basin(유역)이란 여러 원천에서 흘러온 강들이 한 지점으로 모이는 곳입니다. 이것이 플랫폼의 사용 방식을 완벽하게 표현한다고 느꼈습니다. Pipelines가 데이터를 Basin Catalog로 가져오고, Basin SQL이 즉시 조회 가능하게 만듭니다. 재미있는 사실: 지구 육지의 약 20%가 내륙 유역으로 흘러들어 가는데, 웹의 20% 이상이 Cloudflare 네트워크 뒤에 있는 것과 비슷합니다.

스웨덴의 베네른호 — 2억~3억 년 전 지각 변동으로 형성된 분지.

현재 Basin은 Pipelines, Catalog, SQL의 세 가지 제품으로 구성되어 있으며, 수집, 저장, 조회를 담당하고, 앞으로 분석 데이터 생명주기의 나머지 부분을 관리하는 더 많은 제품으로 확장될 예정입니다.

Basin Pipelines

데이터를 조회하기 전에 이벤트를 수집하고, 스키마에 맞게 구조화하고, 개체 스토리지에 저장해야 합니다. 이것이 Basin Pipelines의 역할입니다. HTTP 엔드포인트 또는 Workers 바인딩을 통해 이벤트를 수신하고, SQL 쿼리에 따라 처리한 후, Apache Iceberg 테이블로서 Basin Catalog에, 또는 JSON이나 Parquet 파일로서 R2에 전달합니다.

베타 출시 이후 사용자들은 다양한 사용 사례를 위해 수만 개의 Pipeline을 생성했습니다. 예를 들어, 흔히 볼 수 있는 패턴은 Cloudflare HTTP 로그를 저장 전에 변환하기 위해 Pipelines를 사용하는 것입니다:

INSERT INTO http_logs_sink
SELECT
  EdgeResponseStatus,
  to_timestamp_micros(EdgeStartTimestamp) AS event_time,
  upper(ClientRequestMethod) AS method,
  sha256(ClientIP) AS hashed_ip
FROM http_logs_stream
WHERE EdgeResponseStatus >= 400;

수집 중에 이 작업을 수행하면 스토리지 공간을 크게 줄이고, 동적 데이터 소스의 노이즈를 줄이며, 민감하거나 불필요한 값이 저장되는 것을 방지하는 데 도움이 됩니다.

베타 이후 Pipelines의 확장성을 크게 향상시켰습니다. 현재 스트림당 최대 3GB/s의 수집을 지원합니다. 또한 기능 세트와 다른 Cloudflare 시스템과의 통합도 확장했습니다:

  • Cloudflare Logpush 통합: Cloudflare 로그를 SQL로 변환하여 압축 Parquet 파일 또는 Iceberg 테이블로 저장하고, Basin SQL 또는 다른 엔진으로 바로 조회할 수 있습니다.
  • Worker 바인딩은 스키마를 인식합니다. wrangler types를 실행하면 스트림의 스키마에서 TypeScript 타입이 생성되어 배포 전에 누락된 필드와 타입 불일치를 감지합니다.
  • 데이터 품질 오류가 표시됩니다. 대시보드와 GraphQL API가 누락된 이벤트를 표시하고 누락된 필드, 타입 불일치, 파싱 오류, null 값을 구분합니다.
  • 전체 수집 경로를 Infrastructure as Code로 구성할 수 있습니다. Terraform 리소스가 카탈로그, 스트림, 싱크, 그리고 이를 연결하는 SQL을 포함합니다.

다음 단계에서는 다음을 포함하여 Pipelines 기능을 더욱 확장할 계획입니다:

  • Basin Catalog에 저장할 때 사용자 정의 파티셔닝
  • 스키마 마이그레이션 및 업데이트 가능한 구성과 업데이트 가능한 Pipelines SQL
  • 반정형 데이터의 효율적인 조회를 위한 VARIANT 타입을 포함한 Iceberg V3 지원
  • 스트리밍 집계, 조인, 증분 업데이트 구체화 뷰와 같은 워크로드를 지원하는 스테이트풀 처리

Basin Catalog

Basin Catalog는 작년에 이 제품군에서 처음 출시한 제품입니다. 그 이후 수천 명의 개발자가 Basin Catalog를 활용했습니다. DuckDB가 R2의 분석 데이터에 구조화된 방식으로 액세스할 수 있도록 하는 간단한 사용 사례부터 데이터 송신료가 없다는 점과 사용하기 쉬운 API를 최대한 활용한 완전한 엔터프라이즈 데이터 공유 플랫폼 구축까지 다양합니다.

Basin Catalog는 Apache Iceberg를 시작하는 가장 쉬운 방법입니다. 다음 명령만 실행하면 됩니다:

npx wrangler basin catalog create CATALOG_NAME

즉시 테이블의 성능과 건전성을 유지하는 데 필요한 정기적인 유지 관리를 자동으로 수행하는 완전 관리형 Apache Iceberg REST 카탈로그를 얻을 수 있습니다.

Data Platform을 발표했을 때 Basin Catalog는 자동 압축을 막 추가한 상태였습니다. 그 이후 데이터 규모가 커짐에 따라 테이블을 건전한 상태로 유지하기 위한 기능이 발전했습니다:

  • 테이블별 압축 정책을 통해 각 테이블의 액세스 패턴에 따라 목표 파일 크기를 선택할 수 있습니다.
  • 자동 스냅샷 만료는 최소한의 최신 스냅샷 수를 유지하면서 보존 정책에 따라 오래된 Iceberg 스냅샷을 삭제합니다.
  • 참조되지 않은 데이터 파일 정리는 별도의 Spark 유지 관리 작업 없이 스냅샷이 만료될 때 스토리지를 회수합니다.
  • 매니페스트 최적화는 압축 전에 파티션별로 단편화된 매니페스트를 통합하고 클러스터링하여 쿼리 계획 중 메타데이터 I/O를 줄입니다.

Basin Catalog를 위한 흥미로운 기능들이 개발 중입니다:

  • 쿼리 성능 향상을 위해 데이터를 효율적으로 정렬하고 클러스터링하는 새로운 압축 방법
  • 네임스페이스와 테이블에 대한 더 세분화된 인증 제어
  • 데이터 주권 및 데이터 규정 준수 요구 사항을 충족하기 위한 관할권 지원

Basin SQL

Basin SQL은 Basin Catalog에 저장된 Apache Iceberg 테이블을 위한 서버리스 분산 쿼리 엔진입니다. 대규모 데이터셋 읽기를 위해 설계되었으며 Cloudflare의 글로벌 네트워크 전반에 걸쳐 자동으로 확장됩니다. 프로비저닝할 클러스터나 리소스가 없으며, 여러분과 여러분의 에이전트가 즉시 데이터 조회를 시작할 수 있는 API를 바로 이용할 수 있습니다.

베타 출시 시 Basin SQL은 대규모 이벤트 및 시계열 테이블의 필터링과 탐색에 뛰어났습니다. 지난 1년 동안 Basin SQL은 다음을 포함한 수백 가지 함수를 지원하도록 발전했습니다:

  • 표준 및 근사 집계, GROUP BY, HAVING, 스키마 탐색 명령
  • 문자열, 타임스탬프, 정규 표현식, 암호화, 통계, 배열, 맵, 구조체에 걸쳐 190개 이상의 스칼라 및 집계 함수
  • CASE 표현식, 공통 테이블 표현식, 캐스팅, 산술 연산, EXPLAIN
  • 내부, 외부, 세미, 안티 조인, 서브쿼리, 셀프 조인, 멀티 테이블 쿼리
  • DISTINCT, UNION, INTERSECT, EXCEPT
  • 윈도우 함수, QUALIFY, 그루핑 세트, 롤업, 큐브
  • JSON 함수 모음

Pipeline이 애플리케이션 이벤트를 하나의 테이블에, 계정 데이터를 다른 테이블에 전달한다고 가정해 봅시다. 이제 이 테이블들을 조인하고, 고객별 활동을 집계하고, 윈도우 함수로 결과를 순위화하고, 하나의 쿼리로 순위를 필터링할 수 있습니다:

WITH account_activity AS (
  SELECT
    a.plan,
    e.account_id,
    count(*) AS events,
    approx_distinct(e.user_id) AS active_users
  FROM analytics.events e
  JOIN analytics.accounts a
    ON e.account_id = a.account_id
  WHERE e.event_time >= '2026-09-01T00:00:00Z'
  GROUP BY a.plan, e.account_id
)
SELECT
  *,
  rank() OVER (PARTITION BY plan ORDER BY events DESC) AS activity_rank
FROM account_activity
QUALIFY rank() OVER (PARTITION BY plan ORDER BY events DESC) <= 10;

Basin SQL은 Wrangler, API, 또는 Cloudflare 대시보드의 내장 편집기에서 실행할 수 있습니다. 편집기는 구문 강조 및 자동 완성, 네임스페이스와 테이블 브라우저, 쿼리 통계 및 계획, 내보낼 수 있는 결과를 제공합니다. 새 테이블에서 유용한 답변을 얻기까지의 시간을 수 초로 줄여줍니다.

팀은 여기서 멈추지 않고 현재 다음 작업을 진행 중입니다:

  • 쿼리의 성능과 효율성을 향상시키는 고급 통계 및 적응형 스케줄링
  • Basin SQL에서 직접 사용하는 완전한 데이터 정의 언어 (DDL) 지원
  • VARIANT 및 지리공간 타입 지원을 포함한 Iceberg V3 지원

앞으로의 방향

우리의 미래 비전은 데이터 인프라가 완전히 추상화되는 것입니다. 스토리지 형식, 제품, 리소스는 단순한 구현 세부 사항에 불과합니다. 중요한 결과를 가능하게 하는 데 도움이 되는 세부 사항이긴 하지만, 본질적인 것에 방해가 되는 경향이 있습니다. 우리는 개발자들이 CREATE 구문이나 CLI 명령이 아니라 질문에서 출발하는 플랫폼을 향해 구축하고 있습니다. 그 비전의 기반을 마련했으며, 이제 다음을 포함한 그 비전을 향해 구축하고 있습니다:

  • 더 유연한 데이터 활용 방법을 제공하는 플랫폼 전반에서의 최신 Apache Iceberg 사양 지원
  • Cloudflare의 개발자 및 관측 가능성 제품 전반에서 제로 구성 연결을 제공하는 원클릭 수집 소스 및 대상
  • 실제 쿼리 패턴을 기반으로 데이터를 자동으로 구성하는 Basin Catalog의 고급 적응형 테이블 유지 관리 전략
  • 점점 복잡해지는 분석 워크로드를 위한 SQL 호환성, 성능, 관측 가능성의 지속적인 확장
  • 실시간으로 데이터를 지속적으로 처리하고 데이터 내의 신호를 기반으로 작업을 트리거하는 더 많은 방법
  • 플랫폼 전반에서 데이터 규정 준수 및 데이터 주권 규칙을 준수하기 위한 도구

우리는 개방형 표준으로 계속 구축할 것입니다. 개방형 형식과 프로토콜을 사용하고, 의존하는 프로젝트에 개선 사항을 기여하며, 여러분의 데이터가 더 넓은 에코시스템에서 계속 접근 가능하도록 보장합니다.

시작하기

Basin Pipelines, Basin Catalog, Basin SQL은 오늘부터 일반 공급됩니다. 엔드투엔드 플랫폼으로 함께 사용하거나 기존 아키텍처에 맞는 부분만 도입할 수 있습니다.

시작하기 튜토리얼을 따라 이벤트를 수집하고, Basin Catalog에서 Apache Iceberg 테이블을 생성하고, Basin SQL로 조회하세요. 제품 가이드, 요금, 제한 사항, 통합에 대해서는 Basin 문서를 참조하세요.

기존 Cloudflare Pipelines, R2 Data Catalog, R2 SQL 구성은 계속 작동합니다.

여러분이 무엇을 구축할지 기대됩니다. Cloudflare Developer Discord에서 피드백을 공유해 주세요.