핵심 요약
CockroachDB 25 multi-region 정책으로 3리전(서울·도쿄·싱가포르) 운영 8개월. table locality·survival goal 조합으로 사용자 리전 가까운 데이터에 single-digit ms 응답, 한 리전 전체 다운에도 다운타임 0. 단, 단가는 RDS의 2배 수준.
1. 핵심 개념
| 개념 | 설명 |
|---|---|
| region | 물리적 리전(서울 등) |
| locality | 테이블·행이 어느 region에 우선 |
| survival goal | region 또는 zone 장애 생존 |
2. 설정 한 줄
SET CLUSTER SETTING server.default_storage_engine = 'pebble';
ALTER DATABASE app PRIMARY REGION "ap-northeast-2";
ALTER DATABASE app ADD REGION "ap-northeast-1", "ap-southeast-1";
ALTER DATABASE app SURVIVE REGION FAILURE;
ALTER TABLE users SET LOCALITY REGIONAL BY ROW;
ALTER TABLE settings SET LOCALITY GLOBAL;
3. Locality 유형
- REGIONAL BY TABLE — 한 region에 마스터, 다른 곳은 readable
- REGIONAL BY ROW — 행마다 region 컬럼으로 분산
- GLOBAL — 모든 region에서 강한 일관성 읽기
4. 측정
| 쿼리 | 일반 DB(서울만) | CRDB 25 |
|---|---|---|
| 서울 사용자 조회(서울 region 행) | 2ms | 3ms |
| 도쿄 사용자 조회(도쿄 region 행) | 52ms | 3ms |
| 전역 설정 읽기 | 2ms | 2ms |
| region 전체 장애 다운타임 | 전체 | 0 |
5. SQL 호환
Postgres wire 호환. pgvector 확장도 25부터. ORM(Drizzle, Prisma) 그대로 사용. 다만 일부 함수·EXPLAIN 출력은 다름.
6. 비용
3리전 9 노드(각 region 3노드, c6i.4xlarge) 월 $14,500. RDS multi-AZ 동급 대비 약 2배. 데이터 송수신비 추가로 운영 비용 신중히.
7. 결정 가이드
- 글로벌 사용자, 리전 가까운 latency 필수 → CRDB
- 단일 리전·단일 region → RDS Postgres 또는 Aurora
- 강한 일관성 + region 장애 생존 → CRDB
자주 묻는 질문
Q. Spanner와 비교? Spanner는 GCP 전용. CRDB는 멀티 클라우드. 컴플라이언스·벤더 락인 회피라면 CRDB.

댓글 0