Datastore 모드로 Cloud Firestore 사용

Firestore는 자동 확장, 고성능, 간편한 애플리케이션 개발을 위해 설계된 NoSQL 문서 데이터베이스입니다. Datastore의 최신 버전이며 Datastore에 비해 여러 가지 부분이 개선되었습니다.

Datastore 모드의 Firestore는 서버 사용 사례 및 App Engine에 최적화되어 있으므로 App Engine 앱에서 주로 사용하는 데이터베이스에는 Datastore 모드의 Firestore를 사용하는 것이 좋습니다. 기본 모드의 Firestore는 모바일 및 실시간 알림 사용 사례에 가장 유용합니다. Firestore 모드에 대한 자세한 내용은 Native 모드와 Datastore 모드 중 선택을 참조하세요.

App Engine에서 Datastore 모드 사용

App Engine에서 Datastore 모드를 사용하려면 다음 안내를 따르세요.

  1. 아직 만들지 않았다면 데이터베이스를 만들고 Datastore 모드에서 Firestore를 선택합니다.

    기존 Datastore 데이터베이스를 App Engine 앱에 사용할 수 있습니다. 이러한 기존 데이터베이스는 자동으로 Datastore 모드의 Firestore로 업그레이드됩니다.

  2. Cloud NDB 사용

    사용하여 Datastore 모드 데이터베이스에서 항목을 생성, 검색, 관리합니다.

Python 2 앱을 Python 3으로 업그레이드하는 경우 몇 가지 옵션이 있습니다.

  • Python 2 앱이 App Engine NDB를 사용하여 Datastore와 상호작용하는 경우 Datastore 모드 클라이언트 라이브러리 대신 Cloud NDB로 마이그레이션하는 것이 좋습니다. 전자의 경우 훨씬 비슷한 사용자 경험을 제공합니다.

  • App Engine NDB를 사용하는 Python 2 앱을 Python 3로 먼저 포팅한 다음 Cloud NDB로 마이그레이션할 수도 있습니다. Python 3에서 App Engine NDB에 액세스하는 방법은 Python 3용 App Engine 번들 서비스 액세스 페이지를 참조하세요.

추가 리소스와 App Engine NDB를 사용하는 Python 2 webapp 앱에서 App Engine NDB가 사용 설정된 동등한 Python 3 Flask 앱으로 마이그레이션하는 예는 Python 3용 번들 서비스 페이지를 참조하세요.

색인 구성

Datastore 모드는 애플리케이션에서 생성되는 모든 쿼리에 색인을 사용합니다. 이러한 색인은 항목이 변경될 때마다 업데이트되므로 앱이 쿼리를 생성할 때 결과가 신속하게 반환될 수 있습니다.

Datastore 모드는 단순 유형의 쿼리에 사용할 단일 속성 색인을 자동으로 생성합니다. 여러 속성이 포함된 복잡한 쿼리의 경우 앱의 index.yaml 파일에서 복합 색인을 구성해야 합니다.

App Engine 개발 서버는 테스트를 실행하는 데 필요한 복합 색인으로 index.yaml 파일을 업데이트합니다. 마찬가지로 테스트를 실행할 때 Datastore 모드 에뮬레이터가 색인을 생성할 수 있습니다.

로컬 테스트를 실행하지 않거나 테스트에 복잡한 쿼리가 포함되지 않은 경우 앱의 index.yaml 파일에 색인을 수동으로 추가할 수도 있습니다.

데이터베이스 권한 설정

기본적으로 앱에는 Google Cloud 프로젝트에서 Datastore 모드와 Firestore 데이터베이스를 읽고 쓰는 데 필요한 권한이 모두 있습니다.

이러한 권한을 관리하기 위해 각 App Engine 앱은 앱과 동일한 프로젝트에서 Datastore 모드와 Firestore 데이터베이스에 대한 전체 읽기 및 쓰기 액세스 권한을 부여하는 기본 서비스 계정을 사용합니다. 기본 서비스 계정의 권한을 변경할 수는 있지만 필요한 권한이 있는 IAM 역할을 할당하지 않으면 앱에서 액세스 권한을 상실할 수 있습니다.

다른 사용자, 앱, 프로젝트에서 데이터베이스에 액세스하도록 허용하는 방법은 데이터베이스 액세스를 참조하세요.

가격, 할당량, 한도

Datastore 모드는 일일 한도가 있는 무료 할당량을 제공합니다. 유료 계정은 스토리지, 읽기 및 쓰기 작업을 무제한으로 제공합니다. 자세한 내용은 Datastore 할당량 페이지를 참조하세요.