[DB] PlanetScale

Leejunyoung·2023년 4월 14일
0

DB

목록 보기
3/5
post-thumbnail

PlanetScale이란?

MySQL과 호환되는 serverless 데이버베이스를 제공해주는 데이터베이스 플랫폼이다.

데이터베이스 플랫폼이라는 건 데이터베이스를 제공해준다는 의미이고, serverless는 서버를 우리가 관리하고, 유지보수 필요가 없다는 뜻이다.

서버를 만들고, 적당한 크기를 설정하는 등 모든 것을 직접해야하는 AWS의 RDS(관계형 데이터베이스 서비스) 같은 건 아니다.

예를 들어 AWS의 RDS는 백만 명이 데이터베이스에 연결되면 직접 scaling(확장)시켜 줘야한다.
하지만 이런 serverless 플랫폼을 사용하면 그런 작업을 대신 해준다.

MySQL serverless platform 이 아닌 이유

가장 중요한 포인트는 이것이다.

Vitess는 가장 scaling 기능이 뛰어난 오픈소스 데이터베이스이다.
Vitess는 유튜브를 scale 하기 위해 구글이 만든 것으로, 대기업들이 규모에 맞게 MySQL을 scale 하기 위해 쓰는 방법이다. 왜냐면 scaling이 가장 까다로운 부분이기 때문이다. SQL 데이터베이스를 하나만 갖고 있어도 많은 유저들을 위해서 엄청 많은 일을 할 수 있고, 서버가 하나만 있어도 정말 많은 일을 할 수 있다. 하지만 매초 수백만 개의 쿼리를 처리해야 하고 수십만개의 연결이 들어오고 수만개의 노드가 필요하다면 거기서부턴 정말 어려운 일이 시작된다. 데이터베이스에 horizontal scaling도 해야하고 sharding도 해야하고 데이터베이스 유지보수도 해야하는 등 많은 노력이 필요하다.

MySQL을 horizontal scaling 하기 위한 database clustering system이다. 즉, MySQL을 좀 더 쉽게 scaling 할 수 있도록 하는 시스템이라는 것이다.

PlanetScale의 가장 좋은 매력은 Developer Experience이다.
PlanetScale는 CLI가 있는데 깃(github)을 사용하는 것처럼 데이터베이스를 다룰 수 있다.

예를 들어 데이터베이스에 user라는 새 model을 추가한다고 가정한다면,
모두가 사용하는 메인 데이터베이스를 직접 수정하는 대신 데이터베이스에 branch를 만들 수 있다.
그 branch에서 schema를 수정하고, 새 model도 만들고, fields도 수정하고 원하는 수정을 다 한다음에 schema를 옮기는 것인데, 그것을 알아서 merge 해주는 것이다.

profile
안녕하세요

0개의 댓글