Vitess
Vitess
YouTube가 개발한 MySQL 샤딩 미들웨어로, 수천 개의 MySQL 인스턴스를 단일 논리적 데이터베이스처럼 관리하고 수평 확장, 자동 샤딩, 쿼리 라우팅, 연결 풀링을 제공하는 데이터베이스 클러스터링 시스템
목적: MySQL 수평 확장, 샤딩 자동화, 대규모 트래픽 처리, 고가용성
특징: MySQL 프로토콜 호환, 샤딩 미들웨어, VTGate(쿼리 라우팅), VTTablet(MySQL 관리), 자동 페일오버
구성요소: VTGate(프록시, 라우팅), VTTablet(MySQL 에이전트), 토폴로지 서비스(etcd/Consul/ZooKeeper), VTCtld(관리 서버)
VTGate: 클라이언트 연결 수신, 쿼리 분석·재작성, 샤드 라우팅, 결과 집계
VTTablet: MySQL 인스턴스 관리, 백업·복제 관리, 헬스 체크, 쿼리 실행
샤딩: 수평 샤딩(Range, Hash), VSchema로 샤딩 키 정의, 투명한 쿼리 라우팅
동작: 클라이언트 → VTGate → 쿼리 분석 → 샤드 결정 → VTTablet → MySQL → 결과 집계 → 클라이언트
장점: MySQL 확장성, 투명한 샤딩, 대규모 트래픽 처리, 자동 관리, Kubernetes 네이티브
단점: 복잡한 설정, 학습 곡선, 크로스 샤드 트랜잭션 제한
적용사례: YouTube, Slack, GitHub, Square, 대규모 MySQL 클러스터
비교: Vitess(샤딩미들웨어/MySQL) vs ProxySQL(프록시) vs TiDB(분산SQL)
연관: MySQL, 샤딩, 수평 확장, Kubernetes, 데이터베이스 미들웨어