Next.js를 사용하면 개발자가 서버 측 렌더링 기능으로 전체 스택 응용 프로그램을 빌드할 수 있습니다. Vercel과 Netlify는 서버리스 기능으로 백엔드 API를 작성하는 데 도움을 줍니다. 따라서 다음 질문은 Next.js 앱에 이상적인 데이터베이스가 무엇인지입니다. 이번 포스트에서는 Next.js 커뮤니티에서 인기 있는 데이터베이스를 리뷰하겠습니다. 서버리스 모델에 어떻게 맞는지 설명하겠습니다. 확인해야 할 두 가지 사항:
- 서버리스 가격 책정:가격은 종량제입니까? 데이터베이스를 사용하지 않을 때도 비용을 지불해야 하나요?
- 서버리스 연결:HTTP 기반 연결을 지원합니까? 따라서 서버리스 기능에서 흔히 발생하는 연결 문제가 없어야 합니다.
TLDR
PlanetScale, Supabase, Upstash, Fauna, DynamoDB 및 MongoDB Atlas를 검토했습니다. 각 제품의 기능 세트를 비교하려면 아래 표를 확인하십시오.
기능 | 플래닛스케일 | 수파베이스 | 업스태시 | 동물군 | DynamoDB | MongoDB 아틀라스 |
---|---|---|---|---|---|---|
API | MySQL | PostgreSQL | 레디스 | 동물군 | DynamoDB | 몽고DB |
유형 | 관계형 | 관계형 | KV 스토어 | 문서 | 문서 | 문서 |
프리 티어 | ||||||
서버리스 가격 책정 | (최소 $29) | (최소 $25) | (최소 $22.5) | |||
REST API | 🔴 | |||||
GraphQL API | 🔴 | 🔴 | 🔴 | 🔴 | 🔴 | |
전역 복제 | 🔴 | 🔴 | (전용 전용) | |||
데이터베이스 분기 | 🔴 | 🔴 | 🔴 | 🔴 | 🔴 | |
실시간 업데이트 | 🔴 | 🔴 | 🔴 | (Realm을 통해) | ||
가격 읽기 | $1.5 / 1천만 | $0.09/GB | $0.2 / 100K | $0.45 / 100만(4KB) | $0.25 / 1백만(2KB) | $0.3/1백만(4KB) |
가격 쓰기 | $1.5/1백만 | $0.09/GB | $0.2 / 100K | $2.25 / 1백만(1KB) | $1.25 / 100만(1KB) | $1.25 / 100만(1KB) |
가격 저장 | $1.25/GB | $0.125/GB | $0.25/GB | $0.23/GB | $0.25/GB | $0.25/GB |
플래닛스케일
- PlanetScale은 서비스형 MySQL 호환 데이터베이스입니다.
- 백그라운드에서 Vites를 사용합니다. YouTube와 같은 거대 기업에서 Vites를 적극적으로 사용하고 있기 때문에 매우 좋습니다.
- PlanetScale은 데이터베이스 분기 개념을 도입했습니다. git처럼 브랜치를 만들고 스키마 변경 사항을 프로덕션 데이터베이스에 병합할 수 있습니다. Afaik, 이 기능은 PlanetScale의 고유한 기능입니다.
- 한 달에 1억 번 읽을 수 있는 무료 등급이 있습니다.
- 유료 요금제는 $29부터 시작합니다. 유료 플랜의 주요 가격 구성 요소는 다음과 같습니다.
- 저장용량/월:처음 25GB 이후 GB당 $1.25
- 읽기/월:처음 5억 이후 1천만당 $1.50
- 쓰기/월:1백만당 $1.50, 최초 5천만 이후
- PlanetScale에는 HTTP/REST 기반 API가 없습니다.
내 댓글:
- 홈페이지에 Trusted By Github, Square, Slack 등이라고 나와 있습니다. 이 회사들은 PlanetScale이나 Vitess를 사용합니까? 이러한 회사가 PlanetScale을 사용한다면 훌륭합니다. 그렇지 않으면 이러한 유형의 마케팅에 대해 기분이 좋지 않습니다.
Trusting Vitess
및Trusting PlanetScale
다른 것들 - PlanetScale을 사용하려면 TCP 기반 연결(MySQL 연결)을 사용해야 합니다. 이는 상태 비저장 기능인 서버리스 기능에 문제가 될 수 있습니다. Vitess에게는 연결 수가 문제가 되지 않지만 계획에는 여전히 최대 연결 제한이 있다고 합니다.
- HTTP/REST API가 없으면 TCP 연결을 허용하지 않기 때문에 Cloudflare 작업자 및 Vercel Edge 플랫폼에서 PlanetScale을 사용할 수 없습니다.
- Planetscale 유료 계획은 $29부터 시작하므로 가격이 0으로 조정되지 않습니다. DB를 사용하지 않더라도 최소한 DB당 29달러는 사용해야 합니다. 이것이
serverless
의 정의와 충돌한다고 생각합니다. .
유용한 링크:
- 자세한 가격
- Next.js 및 Prisma와 함께 Planetscale을 사용하는 자습서
- Planetscale 및 Next.js를 사용한 후 Vercel에 배포하는 비디오 자습서
- PlaneScale 출시에 대한 Hackernew의 논평
수파베이스
- Supabase는 데이터베이스, 인증 서비스, 스토리지를 포함한 개발자 도구 모음입니다. 그들은 스스로를
Open Source Firebase Alternative
이라고 부릅니다. - Supabase는 PostgreSQL 데이터베이스를 제공합니다.
- Firebase와 마찬가지로 Supabase를 사용하면 개발자가 데이터베이스의 변경 사항을 실시간으로 들을 수 있습니다.
- Supabase는 PostgREST를 사용하여 RESTful API를 제공합니다. 이는 특히 서버리스 기능에서 Supabase를 사용하려는 경우에 유용합니다.
- Supabase는 REST API 덕분에 Cloudflare 작업자에서 사용할 수 있습니다. 이것을 확인하십시오.
- Supabase 프리 티어는 500MB 저장용량과 월간 2GB 데이터 전송으로 제한됩니다.
- PlanetScale과 유사하게 Supabase는 유료 데이터베이스에 대한 최소 비용이 $25/월입니다. 유료 가격 요약:
- 저장용량:GB당 월 $0.125
- 데이터 전송:GB당 $0.09
내 댓글:
- Supabase는 데이터베이스, 인증 서비스, 개체 스토리지 및
serverless functions
을 제공합니다. 오고있다. 스타트업이 많은 서비스를 고품질로 제공하고 구글이 지원하는 Firebase와 경쟁하기 어려울까 걱정입니다. 그들이 성공하기를 바랍니다. - PlanetScale과 마찬가지로 가격이 진정한 서버리스가 아니라고 생각합니다. 유료 요금제는 고정된 월간 비용이 필요하므로 절대 0으로 확장되지 않습니다.
유용한 링크:
- 자세한 가격
- Next.js 시작하기
- 동영상:Supabase 단기 집중 과정
- 동영상 자습서:Next.js가 포함된 Supabase
업스태시 Redis
- Upstash는 요청당 가격으로 Redis를 서비스로 제공합니다.
- Redis와 REST API를 모두 제공합니다. 따라서 서버리스 및 에지(Cloudflare 작업자) 기능 모두와 함께 사용할 수 있습니다.
- Upstash에는 지역 및 글로벌 옵션이 있습니다. 글로벌 데이터베이스는 데이터를 여러 지역에 복제합니다.
- 하루 최대 10,000개의 명령이 있는 무료 계층이 있습니다. 종량제 가격은 다음과 같습니다.
- 명령:100,000개 명령당 $0.2
- 저장용량:GB당 $0.25
내 댓글:
- 우리(Upstash)와 RedisLabs는 Redis가 고전적인 Redis 사용 사례(캐싱, kv-store) 외에도 많은 사용 사례에 충분히 강력하다고 생각합니다. 그러나 여전히 많은 개발자가 SQL 데이터베이스를 기본 데이터 저장소로 선호하는 것으로 나타났습니다. 복잡한 쿼리 기능이 필요한 경우 Redis가 첫 번째 선택이 아닐 수 있습니다.
유용한 링크:
- 자세한 가격
- Next.js 및 Redis 시작하기
- Next.js Edge 기능 시작하기
- 동영상:Next.js와 함께 서버리스 Redis 사용
동물군
- Fauna는 Globally Replicated Strongly Consistent 데이터베이스를 클라우드 서비스로 제공합니다.
- Fauna API 외에 GraphQL API를 제공합니다.
- 연결은 HTTP 기반이므로 연결 관련 문제 없이 서버리스 기능에서 Fauna를 사용할 수 있습니다.
- 가장 기본적인 플랜(개인)은 월 $22.5부터 시작합니다.
- 동물 가격:
- 읽기:$0.45/백만 단위(4KB)
- 쓰기:$2.25/백만 단위(1KB)
- 저장용량:$0.23/GB
내 댓글:
- 글로벌 강력한 일관성에는 추가 성능 비용이 따릅니다. 쓰기는 다른 대체 데이터베이스보다 대기 시간이 더 깁니다.
- GraphQL을 사용한다면 훌륭하지만 그렇지 않으면 FQL을 배우고 사용하기가 어려웠습니다.
- 동물군 가격 책정에는 자체 단위(TRO, TWO, TCO)와 다양한 차원이 있습니다. 가격을 이해하려면 기사를 읽어야 합니다.
유용한 링크:
- 가격 페이지
- 동물군과 함께 Next.js 사용
- 동영상:동물군과 함께 Next.js 사용
몽고DB 아틀라스
- Atlas는 서버리스, 공유 및 전용 계획이 있는 관리형 서비스인 MongoDB입니다.
- 데이터(REST) API가 최근에 발표되었습니다. 이렇게 하면 HTTP를 사용하여 데이터베이스에 액세스할 수 있습니다.
- MongoDB Atlas에는 몇 가지 제한 사항이 있는 서버리스 계획이 있습니다. 이 계획의 가격은 작업별로 책정되므로 서버리스 제품에서 예상한 대로 0으로 조정됩니다.
- 다중 지역 복제는 전용 요금제에서만 사용할 수 있습니다.
- 서버리스 가격:
- 읽기:백만 단위당 $0.30(4KB)
- 쓰기:백만 단위(1KB)당 $1.25
- 저장용량:$0.25/GB-월
내 댓글:
- 서버리스 계획 및 데이터 API는 MongoDB Atlas가 서버리스 공간을 무시하지 않는다는 것을 알려줍니다. 그러나 두 솔루션 모두 미리 보기 단계에 있으며 서버리스 애플리케이션에 이상적인 데이터 솔루션이 되려면 몇 가지 개선 사항이 필요합니다.
유용한 링크:
- 가격 페이지
- MongoDB를 Next.js 앱에 통합하는 방법
- 동영상:MongoDB를 NextJS 앱에 통합
DynamoDB
- 키-값 및 문서 데이터 모델이 있는 완전 관리형 NoSQL 데이터베이스
- 연결은 HTTP 기반이므로 서버리스 애플리케이션에 적합합니다.
- 데이터 전송 비용 외에 작업당 가격이 책정됩니다. 따라서 0으로 조정됩니다.
- 기본적으로 읽기는 최종 일관성이 있습니다. 강력하게 일관된 읽기를 요청할 수도 있지만 몇 가지 제한 사항이 있습니다.
- 추가 비용으로 다중 지역 복제를 활성화할 수 있습니다.
- 가격:
- 읽기:백만 읽기 요청 단위당 $0.25(2KB)
- 쓰기:100만 읽기 요청 단위(1KB)당 $1.25
- 데이터 전송(출력):GB당 $0.09
- 저장용량:GB당 월 $0.25
내 댓글:
- 저에게 DynamoDB API는 Redis나 MongoDB만큼 직관적이지 않습니다.
- 공급업체 종속 문제가 있습니다. DynamoDB는 AWS에만 있으며 코드를 변경하지 않고는 애플리케이션을 다른 공급자로 이동할 수 없습니다.
유용한 링크:
- 가격 페이지
- 예시 앱:DynamoDB가 있는 Next.js
- 동영상 과정:DynamoDB를 사용한 Next.js
결론
그렇다면 Next.js에 가장 적합한 데이터베이스는 무엇입니까? 예상대로 정답은 없습니다. 그러나 몇 가지 조건부 답변을 제공하겠습니다.
- 관계형 DB가 필요한 경우 👉🏻 Supabase 또는 PlanetScale
- 데이터베이스 분기가 필요한 경우 👉🏻 PlanetScale
- 실시간 업데이트가 필요한 경우 👉🏻 Supabase 또는 MongoDB Atlas
- 글로벌 짧은 지연 시간이 필요한 경우 👉🏻 Upstash 또는 DynamoDB
- 글로벌 강한 일관성이 필요하다면 👉🏻 동물군
- 저지연 키값 저장이 필요하다면 👉🏻 Upstash
- PostgreSQL을 사랑한다면 👉🏻 Supabase
- MySQL을 사랑한다면 👉🏻 PlanetScale
- Redis를 사랑한다면 👉🏻 Upstash
- Mongo를 사랑한다면 👉🏻 MongoDB Atlas
- GraphQL이 필요하다면 👉🏻 동물군
나는 공정하고 정확하려고 노력했다. 수정해야 할 부분이 있다고 생각하시면 제 트위터에 댓글을 남겨주세요.