← 학습 카테고리

Learn

SQL

32개 모듈 · 현재 30번째

SQL 모듈 30/32 sql-learn-30

서버리스 SQL의 실전 이슈 — 콜드 스타트, 커넥션 풀링, 데이터베이스 브랜칭

Serverless SQL Databases 2026: Why DEs Are Migrating — blog Understanding Cold Starts and Connection Limits / The Game-Changer: Database Branching / When Should You Use Serverless? / Popular Serverless Databases (pp.6-11)

이 모듈을 다 읽으면

  • 콜드 스타트와 커넥션 고갈이라는 서버리스 DB의 두 가지 대표 문제와 완화 방법을 설명할 수 있다
  • 데이터베이스 브랜칭이 스토리지 분리 위에서 어떻게 가능해지는지 설명할 수 있다
  • 서버리스 DB를 선택해야 할 상황과 대표 벤더를 구분할 수 있다

서버리스 SQL 데이터베이스를 실무에 적용할 때 반드시 마주치는 두 문제가 콜드 스타트와 커넥션 고갈이며, 각각 사전 예열된 컴퓨트 풀과 내장 커넥션 풀러로 완화한다. 스토리지가 분리되어 있다는 특성은 카피-온-라이트 스냅샷 기반의 데이터베이스 브랜칭도 가능하게 해, 프로덕션에 영향 없이 개발/실험 브랜치를 만들 수 있다.

콜드 스타트와 커넥션 고갈

서버리스를 이야기할 때 항상 등장하는 두 가지 문제가 콜드 스타트(cold start)와 커넥션 관리다. 콜드 스타트는 컴퓨트가 유휴 상태로 있다가 꺼진 뒤, 다시 요청이 들어왔을 때 짧게는 수십 밀리초에서 길게는 몇 초까지 대기 시간이 발생하는 현상이다. 이를 완화하기 위해 서버리스 데이터베이스 공급자들은 사전에 준비된 경량 컴퓨트 풀이나 빠르게 기동 가능한 실행 환경(가벼운 마이크로VM 등)을 활용해 체감 대기 시간을 거의 0에 가깝게 줄인다(원문은 이를 '유니커널(unikernel)'이라 표현하지만, 실제로 Neon·AWS Lambda류 서비스가 널리 쓰는 기법은 사전 예열된 컴퓨트 풀이나 Firecracker 같은 경량 마이크로VM에 가깝다 — 정정).

커넥션 고갈은 AWS Lambda 같은 서버리스 함수가 일시적(ephemeral)이라는 데서 비롯된다 — 서버리스 함수 1,000개가 동시에 전통적인 데이터베이스에 접속하면 즉시 '커넥션이 너무 많다' 오류가 발생한다. 서버리스 데이터베이스는 대개 PgBouncer 같은 내장 커넥션 풀러(또는 자체 프록시)를 제공해 수천 개의 커넥션을 매끄럽게 처리한다.

핵심 포인트

  • 콜드 스타트: 유휴 상태 컴퓨트가 다시 깨어날 때 발생하는 지연으로, 사전 예열된 컴퓨트 풀이나 경량 마이크로VM 기술로 완화한다(블로그의 '유니커널' 표현은 부정확 — 정정).
  • 커넥션 고갈: 일시적인 서버리스 함수(Lambda 등)가 대량으로 동시 접속하면 전통 DB의 커넥션 한도를 순식간에 소진한다 — 서버리스 DB는 내장 커넥션 풀러(PgBouncer류)로 이를 완화한다.

데이터베이스 브랜칭과 언제 서버리스를 쓸지

스토리지가 컴퓨트와 분리되어 있다는 특성은 또 다른 강력한 기능을 가능하게 한다 — 브랜칭(branching)이다. 공급자는 필요할 때 데이터의 '카피-온-라이트(copy-on-write)' 스냅샷을 만들 수 있다. 프로덕션 데이터를 전부 담은 '개발' 브랜치를 만들어 마이그레이션이나 실험 코드를 그 위에서 돌려보고, 실제 프로덕션 사용자에게 영향을 주지 않은 채 그 브랜치를 삭제할 수 있다. 이는 데이터베이스를 Git처럼 다루는 워크플로를 가능하게 한다.

모든 프로젝트가 서버리스여야 하는 것은 아니지만, 다음과 같은 경우 적합한 선택이 된다: 트래픽이 스파이크성인 경우(이커머스, 이벤트 앱, 업무 시간에만 쓰는 도구), MVP를 만드는 경우(첫 고객이 생기기도 전에 매달 30달러를 데이터베이스에 쓰고 싶지 않은 경우), 엣지(Vercel, Netlify, Cloudflare 같은 곳에 함수를 전역 배포하는 경우 전역 커넥션을 처리할 수 있는 데이터베이스가 필요한 경우)다.

핵심 포인트

  • 스토리지 분리 덕분에 카피-온-라이트 스냅샷으로 '데이터베이스 브랜칭'이 가능해져, 프로덕션 데이터를 담은 개발 브랜치에서 마이그레이션/실험을 안전하게 시도하고 버릴 수 있다.
  • 서버리스가 적합한 경우: 스파이크성 트래픽, 초기 MVP(고정 월 비용 회피), 엣지 배포(전역 저지연 커넥션 필요).

대표 벤더 지형

서버리스 SQL/NoSQL 데이터베이스 시장의 대표 주자는 다음과 같다. PlanetScale은 Vitess 기반의 MySQL 호환 데이터베이스로 '데이터베이스 브랜칭' 워크플로를 개척했다(다만 2025년부터는 Vitess가 아닌 자체 스토리지 엔진 기반의 Postgres 제품도 함께 선보이며 라인업을 넓혔다 — 정정, 최신 동향은 공식 자료로 재확인 권장). NeonDB는 완전 관리형 서버리스 Postgres로 밀리초 단위로 콜드 스타트에서 깨어나는 기능을 제공한다. Prisma Postgres는 Prisma ORM과 매끄럽게 통합되도록 설계된 Postgres 제품으로 내장 커넥션 풀러를 갖췄다. Turso는 SQLite의 포크인 libSQL 기반으로, 전 세계 사용자와 물리적으로 가까운 위치에 데이터 복제본을 둘 수 있는 '엣지'용 데이터베이스다. AWS는 관계형 경험을 자동 확장과 함께 제공하는 Aurora Serverless와, 서버리스 NoSQL의 사실상 표준인 DynamoDB를 제공한다(Aurora Serverless v2는 초기에는 완전한 스케일-투-제로를 지원하지 않고 최소 컴퓨트 용량이 있었으나, 이후 0까지 스케일할 수 있는 기능이 추가되었다 — 정정, 최신 사양은 AWS 공식 문서 확인 권장).

핵심 포인트

  • PlanetScale(Vitess 기반 MySQL 호환, 브랜칭 워크플로 개척), NeonDB(관리형 서버리스 Postgres), Prisma Postgres(ORM 통합), Turso(libSQL/SQLite 기반 엣지 DB), AWS Aurora Serverless(관계형)·DynamoDB(NoSQL)가 대표 벤더다.
  • PlanetScale의 2025년 Postgres 제품 추가, Aurora Serverless v2의 스케일-투-제로 지원 확대처럼 세부 사양은 빠르게 바뀌므로 최신 공식 문서로 재확인이 필요하다.