본문 바로가기
Database2026년 5월 11일5분 읽기

Edge SQLite — Turso · LiteFS · Cloudflare D1 운영 비교

YS
김영삼
조회 252
Edge SQLite — Turso · LiteFS · Cloudflare D1 운영 비교

핵심 요약

"DB도 엣지에" 흐름이 2026년 본격화. 3개 솔루션을 같은 워크로드로 6개월 운영한 결과를 정리한다. 결론부터: 읽기 중심·간단한 모델은 모두 좋음. 쓰기 분산·일관성 요구는 여전히 어려움.

1. 아키텍처 한눈에

제품모델쓰기읽기
Turso (libSQL)Primary + 글로벌 replicas한 리전 primary최근 리전 replica
LiteFS (Fly.io)Primary + replicas (FUSE)한 리전 primary최근 리전 replica
Cloudflare D1Primary + 비동기 read replicas (베타)한 리전 primary최근 리전 (옵션)

공통: 단일 라이터, 다중 리더. 이 구조에서 벗어나려면 별도 설계.

2. 일관성 — 무엇이 다른가

  • Turso: 디폴트 결과적 일관성. X-Replication-Index 헤더로 "내 직전 쓰기 본 replica" 강제 가능
  • LiteFS: read-your-writes를 같은 인스턴스에서 보장. 다른 리전 인스턴스는 lag
  • D1: 베타의 read replicas는 결과적 일관성, primary는 강일관성

3. 쓰기 라우팅 — "한 곳"의 의미

Edge 함수에서 쓰기가 발생하면 자동으로 primary 리전으로 우회. Fly.io는 fly-replay 헤더, Cloudflare는 내부 라우팅, Turso는 SDK가 처리.

// Turso 클라이언트
import { createClient } from '@libsql/client'
const db = createClient({
  url: 'libsql://app.turso.io',
  authToken: TOKEN,
})
await db.execute({ sql: 'INSERT INTO x ...', args: [...] })
// SDK가 primary로 자동 라우팅

4. 성능 — 같은 앱 6개월

읽기 위주(95:5) e커머스 상품 페이지, 글로벌 사용자 분포.

지표TursoLiteFSD1
P50 read (서울 → 가까운 replica)11ms14ms9ms
P50 read (싱가포르 → )14ms16ms10ms
P50 write (전 세계 평균)72ms88ms140ms
리전 수30+Fly 리전 (30+)CF 데이터센터 (300+)
월 비용 (DB만, 50GB)$29~인스턴스 비용에 포함$5~ (D1 무료 후한 편)

5. 마이그레이션 / 백업

  • Turso: 매시간 자동 백업, point-in-time 복원 GA
  • LiteFS: S3로 WAL 전송, 직접 백업 구성
  • D1: wrangler d1 backup, 시간 단위 자동

6. 트랜잭션·동시성

SQLite의 WAL 모드 덕에 다중 reader + 1 writer 모델. 동시 쓰기는 직렬화됨.

// 트랜잭션 — 모든 제품 지원
await db.transaction(async (tx) => {
  await tx.execute('UPDATE products SET stock = stock - 1 WHERE id = ?', [id])
  await tx.execute('INSERT INTO orders ...', [...])
})

7. 한계 — 안 맞는 워크로드

  • 다수 동시 쓰기 (큐·이벤트 수집)
  • 큰 트랜잭션 (분당 1MB+ WAL 생성)
  • 지리적으로 분산된 쓰기 (글로벌 SaaS의 모든 리전 모두 쓰기)

이런 경우 PG/Spanner/CockroachDB가 답. SQLite at edge는 "사용자에게 가까운 읽기 + 한 리전 쓰기"가 적합.

8. 보안

  • 각 제품 모두 mTLS 또는 토큰 인증
  • Turso는 row-level 토큰 (멀티테넌트에 유리)
  • D1은 Cloudflare Access와 통합

9. 결정 가이드

스택추천
Cloudflare WorkersD1 (네이티브)
Fly.ioLiteFS
중립·SDK 자유Turso
대용량·복잡 쿼리위 셋 모두 부적합 → PG

10. 흔한 함정

  • "무한 확장": 쓰기는 한 리전 — 글로벌 라이트 워크로드엔 부적합
  • 스키마 마이그레이션 중 lag: 큰 ALTER는 replica lag 폭증. 점진 적용
  • FTS5 인덱스: SQLite 빌트인 풀텍스트. 한국어는 토크나이저 별도
  • JSON 컬럼: SQLite JSON 함수 지원. 인덱스는 generated column으로

참고

  • turso.tech/docs
  • fly.io/docs/litefs
  • developers.cloudflare.com/d1

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록