App Engine 요구사항

Firestore 데이터베이스가 App Engine 앱에 연결된 경우 데이터베이스에는 동일한 프로젝트의 활성 App Engine 앱이 필요합니다. 활성 App Engine 앱이 없으면 데이터베이스에 대한 읽기 및 쓰기 액세스가 중지됩니다.

활성 App Engine 요구사항

활성 App Engine 앱은 동일한 프로젝트에 앱이 있고 이 앱이 중지되지 않았음을 의미합니다. 앱이 사용되어야 할 필요는 없습니다. 연결된 앱과 데이터베이스는 같은 리전에 있어야 합니다.

App Engine 앱을 사용 중지하면 해당 앱에 연결된 Firestore 데이터베이스에 대한 액세스도 사용 중지됩니다.

요구사항 업데이트

향후 Firestore 출시 버전에서는 기본적으로 새 데이터베이스가 App Engine에서 연결 해제되어 프로비저닝됩니다. 또한 기존 데이터베이스와 새로 만든 데이터베이스 등 모든 데이터베이스에는 다음 요구사항이 있습니다.

  • Google Cloud 콘솔 및 gcloud CLI에서 데이터베이스를 관리하려면 프로젝트에서 Firestore API를 사용 설정해야 합니다. 기본 모드의 Firestore와 Datastore 모드 데이터베이스의 Firestore 모두에 필요한 단계입니다.
  • Google Cloud 콘솔 또는 gcloud CLI에서 실행할 경우 아래 관리 작업에 다음 IAM 권한이 필요합니다.

    • 데이터베이스 만들기: datastore.databases.create
    • 데이터베이스 메타데이터 보기: datastore.databases.getMetadata
    • 데이터베이스 메타데이터 수정: datastore.databases.update
데이터베이스가 요구사항 변화에 영향을 받는 경우 Google Cloud Console의 Firestore 페이지에 다음 알림이 표시됩니다.

데이터베이스를 관리하는 데 곧 Firestore API가 필요하게 됩니다. API를 사용 설정하고 필요한 권한이 있는지 확인하세요.

데이터베이스에 대한 액세스 권한이 영향을 받지 않도록 IAM 권한을 확인합니다. 커스텀 역할을 사용하는 경우 datastore.databases.getMetadata 권한이 없을 수 있습니다. datastore.databases.getMetadata는 커스텀 역할을 지원합니다.

IAM 권한 업데이트

Google Cloud Console을 통해 데이터베이스에 액세스하는 계정에 필요한 권한이 있는지 확인합니다.

  • 데이터베이스 만들기: datastore.databases.create
  • 데이터 보기: datastore.databases.getMetadata
  • 데이터 수정: datastore.databases.update

Datastore 사용자Datastore 뷰어와 같은 사전 정의된 역할에는 필요한 권한이 있습니다. 커스텀 IAM 역할을 생성한 경우 위의 권한을 포함하도록 역할을 업데이트해야 할 수 있습니다.

커스텀 역할을 사용하여 콘솔에 대한 액세스 권한을 관리하는 경우 datastore.databases.getMetadata로 커스텀 역할을 업데이트하거나 사전 정의된 역할을 사용하여 계속 액세스할 수 있도록 합니다.

연결된 App Engine 앱을 사용 중지하면 데이터베이스에 대한 읽기 및 쓰기 액세스도 사용 중지됩니다. 이 경우 Google Cloud Console의 Firestore 데이터 페이지에는 App Engine 앱에서 데이터베이스를 연결 해제할 수 있는 옵션이 표시됩니다. 데이터베이스 연결 해제를 클릭하여 프로세스를 시작합니다.

Firestore 데이터로 이동

REST API를 통해 데이터베이스의 연결을 해제할 수도 있습니다.

curl -X PATCH
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header "Content-type: application/json" \
--data '{"app_engine_integration_mode": "DISABLED"}' \
"https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/(default)?updateMask=appEngineIntegrationMode"

데이터베이스를 연결 해제하면 데이터베이스에 대한 액세스에 영향을 주지 않고 App Engine을 중지할 수 있습니다. 연결 해제는 되돌릴 수 없습니다. 연결 해제 작업이 적용되는 데 최대 5분이 걸릴 수 있습니다.

REST API를 통해 연결 해제 상태를 확인할 수도 있습니다.

curl  --header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header "Content-type: application/json" \
"https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/(default)"