UStackUStack
Bunny Database favicon

Bunny Database

Bunny Database는 SQLite와 호환되는 전역 분산 SQL 서비스로, bunny.net의 고속 엣지 네트워크에서 실행되어 유휴 시 자동으로 종료되는 저지연 종량제 데이터베이스를 제공합니다.

Bunny Database

Bunny Database란 무엇인가요?

Bunny Database란 무엇인가요?

Bunny Database는 bunny.net의 빠르고 전 세계에 분산된 네트워크 위에서 "그냥 잘 동작"하도록 설계된 완전 관리형 SQLite 호환 SQL 서비스입니다. 사용자의 근처에서 손쉽게 데이터베이스를 생성하고 운영할 수 있어, 애플리케이션이 성장하더라도 아키텍처를 다시 설계하지 않고 낮은 지연 시간을 유지할 수 있습니다.

간단한 DBaaS(Database-as-a-Service)로 설계된 Bunny Database는 익숙한 SQLite와 클라우드 서비스의 편의성을 결합했습니다. 데이터베이스는 유휴 상태일 때 자동으로 스핀다운(spin-down)되며, 실제로 사용하는 스토리지와 읽기/쓰기 작업에 대해서만 비용을 지불합니다. 하나의 리전으로 시작한 뒤, 이후 전 세계 여러 리전에 읽기 트래픽을 분산시켜 사용자와 더 가까운 곳에서 서비스를 제공할 수 있습니다.

bunny.net의 콘텐츠 전송 플랫폼을 구동하는 동일한 인프라 위에서 동작하는 Bunny Database는 카탈로그, 메타데이터, 사용자 프로필, 구성 데이터와 같은 읽기 중심 워크로드를 빠르고 안정적이며 비용 효율적으로 처리할 수 있는 방법을 개발자에게 제공합니다.

주요 기능

  • SQLite 호환 데이터베이스 엔진
    익숙한 SQL 기반 위에서 개발할 수 있습니다. Bunny Database는 SQLite 동작 방식을 기반으로 하여 별도의 전용 쿼리 언어 없이도 적은 학습 비용으로 쉽게 도입할 수 있습니다.

  • 글로벌 저지연 네트워크
    bunny.net의 전 세계 인프라 위에 배포되어 최대 41개 리전에서 트래픽을 처리할 수 있으며, 전 세계 사용자에 대한 왕복 지연 시간을 줄여 줍니다.

  • 한 리전에서 시작하고 필요 시 확장
    하나의 리전에 데이터베이스를 생성한 후, 사용자 기반이 성장함에 따라 추가 리전에 확장할 수 있습니다. 애플리케이션을 다시 설계할 필요 없이 새로운 위치에 읽기 전용 레플리카를 추가할 수 있습니다.

  • 유휴 시 자동 스핀다운
    데이터베이스가 유휴 상태일 때는 스토리지 비용만 발생합니다. 이로 인해 트래픽이 가변적이거나 버스트가 많은 워크로드에서도 매우 비용 효율적으로 운영할 수 있습니다.

  • 종량제 기반 사용량 과금
    읽기, 쓰기, 스토리지 사용량에 따른 투명한 과금:

    • 읽기(Reads): 10억 행당 $0.30
    • 쓰기(Writes): 100만 행당 $0.30
    • 스토리지(Storage): 활성 리전당 GB당 월 $0.10
      기본(primary) 리전 1곳은 지속적으로 과금되며, 읽기 레플리카는 시간 단위로 측정되는 실제 트래픽 처리 시간 동안에만 추가 스토리지 비용이 발생합니다.
  • 여러 공식 SDK 제공
    TypeScript/JavaScript, Go, Rust 및 bunny.net의 .NET SDK를 포함한 공식 libSQL SDK로 빠르게 통합할 수 있습니다. 또한 HTTP를 통해 데이터베이스에 직접 접근하여 커스텀 통합도 구현할 수 있습니다.

  • 간편한 DBaaS 관리 콘솔
    직관적인 대시보드에서 몇 번의 클릭만으로 데이터베이스 생성, 애플리케이션 연결, 데이터 확인, 성능 모니터링을 할 수 있습니다.

  • 내장 데이터 검사 도구
    외부 클라이언트 없이도 UI에서 직접 테이블을 탐색하고 SQL 쿼리를 실행하며 데이터를 검증할 수 있습니다.

  • 성능 메트릭 및 모니터링
    데이터베이스가 확장됨에 따라 지연 시간, 트래픽, 스토리지 사용량을 추적하여 성능과 비용을 최적화할 수 있습니다.

  • 빠른 온보딩 및 무료 체험
    14일 무료 체험을 신용카드 없이 시작할 수 있으며, 전체 설정은 약 2분 정도면 완료됩니다. 퍼블릭 프리뷰 기간 동안에는 Bunny Database를 무료로 사용할 수 있습니다.

  • 다른 bunny.net 도구와의 자연스러운 연동
    Bunny Database를 Edge Scripting(엣지에서 TypeScript/JavaScript 실행) 및 Magic Containers(상시 구동 컨테이너 워크로드)와 결합해 하나의 플랫폼에서 완전한 전역 분산 애플리케이션을 구축할 수 있습니다.

Bunny Database 사용 방법

  1. 회원 가입 및 무료 체험 시작
    bunny.net 계정을 생성하거나 로그인한 뒤 Bunny Database 메뉴로 이동합니다. 신용카드 없이 14일 무료 체험을 시작합니다.

  2. 첫 번째 데이터베이스 생성

    • 대시보드에서 Bunny Database 섹션을 엽니다.
    • 새 데이터베이스 생성을 클릭합니다.
    • 데이터베이스 이름을 지정합니다.
    • 초기 기본(primary) 리전을 선택합니다(추후 리전을 추가할 수 있습니다).
    • 배포를 확인합니다. 한 번의 클릭으로 데이터베이스가 프로비저닝됩니다.
  3. 액세스 토큰 생성

    • 데이터베이스 설정에서 애플리케이션용 액세스 토큰을 생성합니다.
    • 이 토큰을 애플리케이션이나 스크립트의 환경 변수로 사용합니다.
    • 개발, 스테이징, 프로덕션 등 환경별로 서로 다른 토큰을 생성할 수 있습니다.
  4. SDK 또는 HTTP로 연결

    • 공식 SDK(TS/JS, Go, Rust, .NET)를 설치하거나 HTTP를 통한 자체 통합을 구성합니다.
    • 대시보드에서 제공되는 연결 문자열과 액세스 토큰을 사용합니다.
    • 애플리케이션 코드에서 클라이언트를 초기화하고 SQL 쿼리 실행을 시작합니다.
  5. 스키마 설계 및 데이터 마이그레이션

    • 표준 SQL(CREATE TABLE, ALTER TABLE 등)을 사용해 스키마를 정의합니다.
    • 카탈로그, 사용자 프로필, 구성 데이터 등 초기 데이터를 시드합니다.
    • 대시보드에서 직접 또는 애플리케이션을 통해 SQL을 실행할 수 있습니다.
  6. UI에서 데이터 검사 및 디버깅

    • 대시보드의 데이터 검사(data inspection) 영역으로 이동합니다.
    • 테이블을 확인하고, 애드혹 쿼리를 실행하며, 애플리케이션이 예상대로 데이터를 읽고 쓰는지 검증합니다.
  7. 확장 시 리전 추가

    • 새로운 지역에 사용자가 늘어나면, 해당 지역의 읽기 레플리카 리전을 추가합니다.
    • 애플리케이션 또는 SDK 설정을 조정해 가까운 읽기 리전을 활용함으로써 지연 시간을 낮출 수 있습니다.
  8. 성능 및 사용량 모니터링

    • 메트릭 대시보드를 통해 지연 시간, 트래픽, 스토리지를 모니터링합니다.
    • 리전 구성, 쿼리 패턴, 데이터 모델을 조정하여 성능과 비용 간 균형을 맞춥니다.

활용 사례

1. 상품 카탈로그 및 디렉터리

Bunny Database는 읽기 중심의 상품 카탈로그, 위치 디렉터리, 콘텐츠 인덱스를 구동하는 데 적합합니다. 상품 정보, 매장 위치, 기사 메타데이터 등 구조화된 데이터를 저장하고, 사용자와 가까운 리전에서 읽기 트래픽을 처리하여 제공합니다. 이를 통해 전 세계 사용자를 대상으로 하는 브라우징 경험도 빠르게 유지할 수 있습니다.

2. 메타데이터 및 필터링 레이어

태그, 카테고리, 라벨, 룩업 데이터에 크게 의존하는 애플리케이션의 경우, Bunny Database는 빠르고 일관된 메타데이터 레이어를 제공합니다. API와 프론트엔드에서 사용하는 필터, 카테고리, 관계 데이터를 저장해 결과를 빠르게 좁혀 나갈 수 있습니다. 종량제 과금과 유휴 시 자동 스핀다운 기능 덕분에 메타데이터 비중이 높은 워크로드에서도 비용을 낮게 유지할 수 있습니다.

3. 사용자 프로필 및 환경 설정

Bunny Database를 사용해 사용자 프로필, 선호 설정, 경량 계정 데이터를 저장할 수 있습니다. 여러 리전과 낮은 지연 시간 덕분에 사용자 위치에 상관없이 프로필 조회와 업데이트가 빠르게 처리됩니다. SaaS 애플리케이션, 커뮤니티 플랫폼, 소비자용 웹 서비스 등 프로필 정보를 빠르게 읽어야 하는 서비스에 특히 적합합니다.

4. 애플리케이션 구성 및 기능 플래그

Bunny Database에 **멀티 테넌트 구성, 환경 설정, 기능 플래그(feature flags)**를 관리할 수 있습니다. 전역 분산 데이터베이스에 중앙집중식 구성 정보를 저장하면, 애플리케이션과 서비스가 가까운 리전에서 설정을 빠르게 읽어와 시작 시간과 런타임 지연을 줄일 수 있습니다.

5. bunny.net으로 구현하는 엣지 기반 애플리케이션

Bunny Database를 Edge ScriptingMagic Containers와 결합해 완전한 엣지 네이티브 애플리케이션을 구축할 수 있습니다. 예를 들어:

  • Edge Scripting을 사용해 엣지에서 TypeScript/JavaScript 로직을 실행합니다.
  • Bunny Database에 구성, 사용자 컨텍스트, 캐시된 집계 데이터를 저장합니다.
  • Magic Containers를 사용해 장기 실행 또는 특수 워크로드를 처리합니다.
    이 스택을 통해 인프라를 직접 관리하지 않고도 저지연의 전역 분산 애플리케이션을 구축할 수 있습니다.

자주 묻는 질문(FAQ)

Bunny Database는 SQLite와 호환되나요?

네. Bunny Database는 SQLite를 기반으로 한 SQLite 호환 서비스로, 익숙한 SQL 문법과 패턴을 그대로 사용할 수 있습니다. 공식 SDK는 libSQL 위에서 동작하며, 로컬 SQLite 데이터베이스를 사용하는 것과 유사한 방식으로 관리형 클라우드 서비스로서의 데이터베이스에 접근할 수 있습니다.

Bunny Database의 과금 방식은 어떻게 되나요?

Bunny Database는 실제 사용량 기준의 종량제(pay-as-you-go) 과금 모델을 사용합니다:

  • 읽기(Reads): 10억 행당 $0.30
  • 쓰기(Writes): 100만 행당 $0.30
  • 스토리지(Storage): 활성 리전당 GB당 월 $0.10
    데이터베이스가 유휴 상태일 때는 스토리지 비용만 발생합니다. 기본(primary) 리전 1곳은 지속적으로 과금되며, 읽기 레플리카는 시간 단위로 측정되는 실제 트래픽 처리 시간 동안에만 추가 스토리지 비용이 발생합니다. 퍼블릭 프리뷰 기간 동안에는 Bunny Database를 무료로 사용할 수 있습니다.

어떤 리전을 선택할 수 있나요?

Bunny Database 배포 시 전 세계 최대 41개 리전 중에서 선택할 수 있습니다. 하나의 기본 리전으로 시작한 뒤, 시간이 지나면서 더 많은 리전을 추가하여 서로 다른 지역의 사용자에게 낮은 지연 시간을 제공할 수 있습니다.

애플리케이션을 Bunny Database에 어떻게 연결하나요?

공식 SDK 또는 HTTP로 연결할 수 있습니다:

  • TypeScript/JavaScript, Go, Rust용 libSQL SDK 또는 bunny.net의 .NET SDK를 사용할 수 있습니다.
  • bunny.net 대시보드에서 제공되는 데이터베이스 엔드포인트와 액세스 토큰으로 연결을 구성합니다.
  • 커스텀 환경이나 도구에서는 제공되는 API를 사용해 HTTP 기반 통합을 구현할 수 있습니다.

Bunny Database는 어떤 워크로드에 가장 적합한가요?

Bunny Database는 특히 구조화된 데이터를 기반으로 하는 읽기 중심(read-heavy) 워크로드에 최적화되어 있습니다. 대표적인 활용 사례는 다음과 같습니다:

  • 상품 카탈로그 및 콘텐츠 디렉터리
  • 메타데이터 및 필터링 레이어
  • 사용자 프로필 및 환경 설정
  • 애플리케이션 구성 및 플래그
    쓰기 비중이 매우 높거나 트랜잭션이 복잡한 워크로드, 복잡한 관계형 모델이 필요한 워크로드의 경우, Bunny Database의 아키텍처와 전역 모델이 요구 사항에 적합한지 별도로 검토하는 것이 좋습니다.

Bunny Database는 다른 bunny.net 제품과 통합되나요?

네. Bunny Database는 다른 bunny.net 도구와 동일한 플랫폼 위에서 동작하며 다음과 함께 사용할 수 있습니다:

  • Edge Scripting: 사용자와 가까운 위치에서 TypeScript/JavaScript 로직을 실행합니다.
  • Magic Containers: 상시 구동되는 컨테이너 워크로드를 실행합니다.
    이 서비스들을 함께 사용하면 전역 성능을 갖춘 완전 분산 애플리케이션을 일관된 개발 경험과 함께 구축할 수 있습니다.
Bunny Database | UStack