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

PlanetScale Vitess 19 — MySQL 분산 SQL 6개월 운영

YS
김영삼
조회 1563
PlanetScale Vitess 19 — MySQL 분산 SQL 6개월 운영

핵심 요약

PlanetScale + Vitess 19로 자체 MySQL 클러스터(8 샤드, 1.2TB)를 6개월 운영. 스키마 변경이 무중단으로 한 줄, 글로벌 읽기 복제 자동, 백업·PITR 운영 부담 0. 다만 일부 SQL 제약(FK, 일부 join)과 단가가 약점.

1. 무엇이 좋은가

  • Branch — git branch처럼 스키마 변경 격리 후 deploy
  • VReplication — 무중단 스키마 변경, 샤드 분할
  • 관측 — Vitess 자체 보드 + custom
  • SOC2 · HIPAA

2. Branch 워크플로

pscale branch create main feature/add-coupon
pscale deploy-request create main feature/add-coupon
# 검토 후 merge — 무중단 적용

대규모 ALTER TABLE이 백그라운드 카피로 진행. 사용자 영향 0, 적용 시간만 길어짐(억 단위 행은 시간 단위).

3. 샤딩 — Vindex

# vschema.json
{
  "sharded": true,
  "vindexes": {"hash_md5": {"type":"hash"}},
  "tables": {
    "orders": {"column_vindexes":[{"column":"user_id","name":"hash_md5"}]}
  }
}

한 사용자의 주문이 같은 샤드에 모이도록. cross-shard join은 비싸니 schema 설계 단계에서 결정.

4. 성능

워크로드단일 RDSPS Vitess
단일 키 조회1.2ms1.4ms
샤드 키 포함 쿼리3ms3.5ms
cross-shard fan-out15~40ms
스키마 변경(억 단위)1시간+ 락4시간 무중단

5. 제약 — 신중하게

  • 외래 키(FK) 미지원 — 애플리케이션 보장
  • cross-shard 조인은 가능하지만 비용 큼
  • auto_increment 대신 UUID 또는 sharded sequence 권장

6. 비용

월 비용
self-host MySQL + Percona toolkit$1,200
RDS Aurora MySQL$2,400
PlanetScale Pro(우리 규모)$3,800

인력비 포함하면 PS가 손익분기 가깝거나 우세.

7. 결정 가이드

  • 샤딩이 임박했거나 트래픽 폭증 가능 → PS Vitess
  • FK·복잡 join 중요 → Postgres 또는 RDS MySQL
  • 운영 인력 부족 → PS

자주 묻는 질문

Q. self-host Vitess? 가능. 다만 Vitess 운영은 K8s + 전담 SRE 1명 수준. PS의 가치는 그 부분을 대신.

댓글 0

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