본문 바로가기

백엔드·인프라/DB

PlanetScale

반응형

PlanetScale

PlanetScale

mysql과 호환(Compatible)되는 serverless 데이터베이스 플랫폼

  • serverless : 서버가 진짜 없는 것이 아닌 서버 유지를 본인이 하지 않아도 된다는 의미이다.
  • 데이터베이스 플랫폼 : 말 그대로 데이터베이스를 제공해준다는 의미이다.

scaling을 자동으로 해줌 ( + no vacumming, no rebalencing, no query planning, no downtime)

Vitess 오픈소스를 통해 MySQL Scaling

CLI를 통해 쉽게 데이터베이스를 다룰 수 있음

  • 마치 Git처럼 메인 데이터베이스 이외에 Branch 데이터베이스를 사용할 수도 있음
  • 이후 Merge를 하면 자동으로 배포가 됨
  • CLI 설치

https://github.com/planetscale/cli

Vitess

Vitess

Vitess는 MySQL을 스케일링하기 위한 데이터베이스 클러스터링 시스템

인터넷에서 가장 큰 사이트를 호스팅하는 강력한 오픈 소스 기술입니다.

유튜브를 scale하기 위해 구글이 만든 오픈 소스

Vitess를 사용하는 이유

  1. 수평 스케일
  2. 고가용성 (Vitess의 기본 복제본 구성은 예기치 않은 이벤트가 발생할 때 기본에서 복제본으로 원활한 장애 조치를 허용합니다.)
  3. MySQL 호환
  4. 쿠버네티스 네이티브
  5. 구체화된 뷰
  6. 온라인 스키마 마이그레이션

PlanetScale CLI

mac 환경에서 설정

brew install planetscale/tap/pscale

brew install mysql-client

pscale auth login

pscale region list

pscale database create databasename --region ap-northeast

  • ap-northeast: region list의 slug 사용
  • admin pannel에서도 동일하게 생성이 가능
  • 보안 터널을 통해 PlanetScale과 컴퓨터를 연결할 수 있다

pscale connect databasename : database와 연결이 된다. 사용가능한 url이 나타난다.

연결한 콘솔창을 닫지 않고 (닫으면 연결이 끊어짐) 그 url 주소를 사용한다.

pscale 에서 제공하는 URL을 데이터베이스에 연결

// .env
DATABASE_URL="mysql://127.0.0.1:3306/{databaseName}"
  • 위에서 생성한 데이터베이스 이름을 넣어준다.

MySQL과 Vitess 차이점

PlanetScale이 데이터베이스로 사용하는 Vitess는 Scalability에 특화돼 있다

Vitess는 데이터베이스를 잘게 쪼개서 여러 서버에 분산시키는 데에 특화되어 있다.

Vitess는 foreign key constraint(제약)를 지원하지 않음 (일반적인 MySQL, PostgresQL은 지원함)

반응형