Computer >> 컴퓨터 >  >> 프로그램 작성 >> Redis

Next.js를 위한 최고의 데이터베이스

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가 없습니다.

Next.js를 위한 최고의 데이터베이스

내 댓글:

  • 홈페이지에 Trusted By Github, Square, Slack 등이라고 나와 있습니다. 이 회사들은 PlanetScale이나 Vitess를 사용합니까? 이러한 회사가 PlanetScale을 사용한다면 훌륭합니다. 그렇지 않으면 이러한 유형의 마케팅에 대해 기분이 좋지 않습니다. Trusting VitessTrusting 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

Next.js를 위한 최고의 데이터베이스

내 댓글:

  • 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

Next.js를 위한 최고의 데이터베이스

내 댓글:

  • 우리(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

Next.js를 위한 최고의 데이터베이스

내 댓글:

  • 글로벌 강력한 일관성에는 추가 성능 비용이 따릅니다. 쓰기는 다른 대체 데이터베이스보다 대기 시간이 더 깁니다.
  • 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-월

Next.js를 위한 최고의 데이터베이스

내 댓글:

  • 서버리스 계획 및 데이터 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

Next.js를 위한 최고의 데이터베이스

내 댓글:

  • 저에게 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이 필요하다면 👉🏻 동물군

나는 공정하고 정확하려고 노력했다. 수정해야 할 부분이 있다고 생각하시면 제 트위터에 댓글을 남겨주세요.