기본 모드와 Datastore 모드 중 선택

새 Firestore 데이터베이스를 만들 때 데이터베이스 인스턴스가 Datastore 모드에서 실행되도록 구성하면 Datastore 이전 버전과 호환됩니다. 이 페이지는 기본 모드Datastore 모드라는 두 가지 Firestore 데이터베이스 모드의 차이점을 이해하는 데 도움이 됩니다.

기본 모드의 Firestore

Firestore는 Datastore의 다음 주 버전이며 이 제품의 리브랜딩입니다. Datastore와 Firebase 실시간 데이터베이스를 최대한 활용하는 Firestore는 자동 확장, 고성능, 간편한 애플리케이션 개발을 위해 빌드된 NoSQL 문서 데이터베이스입니다.

Firestore는 다음과 같은 새로운 기능을 제공합니다.

  • strong consistency를 가진 새로운 스토리지 레이어
  • 컬렉션 및 문서 데이터 모델
  • 실시간 업데이트
  • 모바일 및 웹 클라이언트 라이브러리

Firestore는 Datastore의 이전 버전과 호환되지만 새로운 데이터 모델, 실시간 업데이트, 모바일 및 웹 클라이언트 라이브러리 기능은 호환되지 않습니다. 새로운 모든 Firestore 기능에 액세스하려면 기본 모드의 Firestore를 사용해야 합니다.

Datastore 모드의 Firestore

Datastore 모드의 Firestore는 Datastore 시스템 동작을 사용하지만 Firestore의 스토리지 레이어에 액세스하여 다음과 같은 Datastore 제한사항을 제거합니다.

  • eventual consistency, 모든 Datastore 쿼리는 strong consistency를 가지게 됩니다.
  • 트랜잭션의 쿼리는 더 이상 상위 쿼리일 필요가 없습니다.
  • 트랜잭션이 더 이상 25개의 항목 그룹으로 제한되지 않습니다.
  • 항목 그룹에 대한 쓰기가 더 이상 초당 1회로 제한되지 않습니다.

Datastore 모드에서는 Datastore와 호환되지 않는 Firestore 기능이 중지됩니다.

  • 프로젝트는 Datastore API 요청을 수락하고 Firestore API 요청을 거부합니다.
  • 프로젝트는 Firestore 색인 대신 Datastore 색인을 사용합니다.
  • 이 프로젝트에는 Datastore 클라이언트 라이브러리를 사용할 수 있지만 Firestore 클라이언트 라이브러리는 사용할 수 없습니다.
  • Firestore 실시간 기능은 사용할 수 없습니다.
  • Cloud Console에서 데이터베이스는 Datastore 뷰어를 사용합니다.

Datastore 모드로 자동 업그레이드

기존 Datastore 데이터베이스는 자동으로 Datastore 모드의 Firestore로 업그레이드됩니다. Datastore 데이터베이스가 필요한 새 프로젝트는 Datastore 모드의 Firestore를 사용해야 합니다.

가격 책정 및 위치

기본 모드 데이터베이스와 Datastore 모드 데이터베이스는 동일한 가격 책정 구조를 사용하며 동일한 위치에서 사용될 수 있습니다. 가격 책정 및 위치는 다음 페이지에서 자세히 설명합니다.

기본 모드의 Firestore

Datastore 모드의 Firestore

데이터베이스 모드 선택

Firestore 데이터베이스를 새로 만들 때 데이터베이스 모드를 선택해야 합니다. 같은 프로젝트에서 Native 모드와 Datastore 모드를 모두 사용할 수는 없습니다. 데이터베이스 모드 선택 시 권장사항은 다음과 같습니다.

  • 새 서버 프로젝트에는 Datastore 모드의 Firestore를 사용합니다.

    Datastore 모드의 Firestore를 사용하면 설정된 Datastore 아키텍처를 사용하면서 기본적인 Datastore 제한사항을 제거할 수 있습니다. Datastore 모드는 초당 수백만 회의 쓰기로 자동 확장될 수 있습니다.

  • 새 모바일 및 웹 앱에는 기본 모드의 Firestore를 사용합니다.

    Firestore는 실시간 기능과 오프라인 기능이 있는 모바일 및 웹 클라이언트 라이브러리를 제공합니다. 기본 모드는 동시 클라이언트 수백만 개로 자동 확장될 수 있습니다.

기능 비교

다음 표는 데이터베이스 모드의 시스템 동작을 비교한 것입니다.

Firestore
Native 모드
Firestore
Datastore 모드
데이터 모델 문서와 컬렉션으로 구성된 문서 데이터베이스 종류 및 항목 그룹으로 구성된 항목
스토리지 레이어 항상 strong consistency를 가지는 새로운 스토리지 레이어 항상 strong consistency를 가지는 새로운 스토리지 레이어
쿼리 및 트랜잭션
  • 전체 데이터베이스에서 strong consistency를 가지는 쿼리
  • 원하는 수의 컬렉션에서 트랜잭션당 최대 500개의 문서
  • 제한사항: 프로젝션 쿼리가 없습니다.
  • Datastore의 이전 일관성 제한사항을 제거합니다.
  • 전체 데이터베이스에서 strong consistency를 가지는 쿼리
  • 트랜잭션은 제한 없는 개수의 항목 그룹에 액세스할 수 있음
Datastore v1 API 지원 아니요, 요청이 거부됨
Firestore v1 API 지원 아니요, 요청이 거부됨
실시간 업데이트

실시간 업데이트에 필요한 문서 또는 문서 집합을 리슨할 수 있는 기능을 지원합니다.

문서 하나 또는 문서 집합을 리슨하는 동안 클라이언트는 데이터 변경사항을 받고 최신 데이터 세트를 보냅니다.

지원되지 않음
오프라인 데이터 지속성 모바일 및 웹 클라이언트 라이브러리는 오프라인 데이터 지속성을 지원합니다. 지원되지 않음
클라이언트 라이브러리 Firestore 클라이언트 라이브러리:
  • 자바
  • Python
  • PHP
  • Go
  • Ruby
  • C#
  • Node.js
  • Android
  • iOS
Datastore 클라이언트 라이브러리:
  • 자바
  • Python
  • PHP
  • Go
  • Ruby
  • C#
  • Node.js
보안
  • ID 및 액세스 관리(IAM)는 데이터베이스 액세스를 관리합니다.
  • Firestore 보안 규칙이 모바일 및 웹 클라이언트 라이브러리에 대한 서버리스 인증 및 승인을 지원
IAM은 데이터베이스 액세스를 관리함
성능 수백만 개의 동시 클라이언트로 자동 확장됩니다. 초당 최대 10,000회의 쓰기. 초당 쓰기 수백만 회로 자동 확장됩니다.
SLA Firestore SLA. Firestore SLA.
위치
  • 미국(멀티 리전)
  • 유럽(멀티 리전)
  • 몬트리올
  • 로스앤젤레스
  • 사우스캐롤라이나
  • 북 버지니아
  • 상파울루
  • 런던
  • 프랑크푸르트
  • 도쿄
  • 뭄바이
  • 시드니
  • 미국(멀티 리전)
  • 유럽(멀티 리전)
  • 몬트리올
  • 로스앤젤레스
  • 사우스캐롤라이나
  • 북 버지니아
  • 상파울루
  • 런던
  • 프랑크푸르트
  • 도쿄
  • 뭄바이
  • 시드니
가격 책정 동일한 가격 책정 구조
Console Firebase Console 및 Cloud Console Firestore 뷰어 Cloud Console Datastore 뷰어
네임스페이스 지원되지 않음 네임스페이스가 지원됨
App Engine 클라이언트 라이브러리 통합

App Engine 표준 환경 Python 2.7 및 PHP 5.5 런타임에서는 지원되지 않음

App Engine 표준 환경의 Python 3.7, PHP 7.2, 자바 8, Go, Node.js 런타임에서 지원됨

App Engine 가변형 환경의 모든 런타임에서 지원됨

모든 런타임에서 지원됨