Firestore는 자동 확장, 고성능, 간편한 애플리케이션 개발을 위해 설계된 NoSQL 문서 데이터베이스입니다. Datastore의 최신 버전이며 Datastore에 비해 여러 가지 부분이 개선되었습니다.
Datastore 모드의 Firestore는 서버 사용 사례 및 App Engine에 최적화되어 있으므로 App Engine 앱에서 주로 사용하는 데이터베이스에는 Datastore 모드의 Firestore를 사용하는 것이 좋습니다. 기본 모드의 Firestore는 모바일 및 실시간 알림 사용 사례에 가장 유용합니다. Firestore 모드에 대한 자세한 내용은 Native 모드와 Datastore 모드 중 선택을 참조하세요.
App Engine에서 Datastore 모드 사용
App Engine에서 Datastore 모드를 사용하려면 다음 안내를 따르세요.
아직 만들지 않았다면 데이터베이스를 만들고 Datastore 모드에서 Firestore를 선택합니다.
기존 Datastore 데이터베이스를 App Engine 앱에 사용할 수 있습니다. 이러한 기존 데이터베이스는 자동으로 Datastore 모드의 Firestore로 업그레이드됩니다.
앱에서
go get cloud.google.com/go/datastore
명령어를 사용하여 Datastore를 종속 항목으로 선언합니다. 또는 앱의go.mod
파일에서 종속 항목을 선언할 수 있습니다. 종속 항목 지정에 대해 자세히 알아보세요.Google Cloud 클라이언트 라이브러리를 사용하여 항목 읽기 및 쓰기와 데이터 쿼리를 수행합니다.
색인 구성
Datastore 모드는 애플리케이션에서 생성되는 모든 쿼리에 색인을 사용합니다. 이러한 색인은 항목이 변경될 때마다 업데이트되므로 앱이 쿼리를 생성할 때 결과가 신속하게 반환될 수 있습니다.
Datastore 모드는 단순 유형의 쿼리에 사용할 단일 속성 색인을 자동으로 생성합니다. 여러 속성이 포함된 복잡한 쿼리의 경우 앱의
index.yaml
파일에서 복합 색인을 구성해야 합니다.App Engine 개발 서버는 테스트를 실행하는 데 필요한 복합 색인으로
index.yaml
파일을 업데이트합니다. 마찬가지로 테스트를 실행할 때 Datastore 모드 에뮬레이터가 색인을 생성할 수 있습니다.로컬 테스트를 실행하지 않거나 테스트에 복잡한 쿼리가 포함되지 않은 경우 앱의
index.yaml
파일에 색인을 수동으로 추가할 수도 있습니다.데이터베이스 권한 설정
기본적으로 앱에는 Google Cloud 프로젝트에서 Datastore 모드와 Firestore 데이터베이스를 읽고 쓰는 데 필요한 권한이 모두 있습니다.
이러한 권한을 관리하기 위해 각 App Engine 앱은 앱과 동일한 프로젝트에서 Datastore 모드와 Firestore 데이터베이스에 대한 전체 읽기 및 쓰기 액세스 권한을 부여하는 기본 서비스 계정을 사용합니다. 기본 서비스 계정의 권한을 변경할 수는 있지만 필요한 권한이 있는 IAM 역할을 할당하지 않으면 앱에서 액세스 권한을 상실할 수 있습니다.
다른 사용자, 앱, 프로젝트에서 데이터베이스에 액세스하도록 허용하는 방법은 데이터베이스 액세스를 참조하세요.
로컬 테스트용 Datastore 모드 에뮬레이터 사용
Google Cloud CLI에는 프로덕션 Datastore 모드 환경의 로컬 에뮬레이터가 포함되어 있습니다. 에뮬레이터를 사용하여 로컬에서 애플리케이션을 개발하고 테스트할 수 있습니다. 또한 에뮬레이터를 사용하면 프로덕션 Datastore 모드 인스턴스의 색인을 생성하고 필요하지 않은 색인을 삭제할 수 있습니다.앱을 테스트하는 데 App Engine 로컬 개발 서버를 사용할 경우 서버를 시작할 때
--support_datastore_emulator=true
플래그를 설정하여 서버가 Datastore 모드 에뮬레이터를 사용하도록 할 수 있습니다.Datastore 모드 에뮬레이터를 사용하면 dev_appserver에 다음이 표시됩니다.
... Using Cloud Datastore Emulator.
가격 책정, 할당량, 한도
Datastore 모드는 일일 한도가 있는 무료 할당량을 제공합니다. 유료 계정은 스토리지, 읽기 및 쓰기 작업을 무제한으로 제공합니다. 자세한 내용은 Datastore 할당량 페이지를 참조하세요.