データベースの作成と管理

このページでは、MongoDB 互換の Firestore データベースを作成、更新、削除する方法について説明します。プロジェクトごとに複数の Firestore データベースを作成できます。複数のデータベースを使用して、本番環境とテスト環境の設定、顧客データの分離、データのリージョン指定を行うことができます。

無料枠の使用量

Firestore には無料枠が用意されており、費用をかけずに使い始めることができます。

無料の Tier は、プロジェクトごとに 1 つの Firestore データベースにのみ適用されます。無料枠データベースのないプロジェクトで最初に作成されたデータベースが無料枠を取得します。無料の Tier が適用されたデータベースが削除された場合、次に作成されるデータベースに無料の Tier が適用されます。

始める前に

データベースを作成する前に、次の操作を行う必要があります。

  1. Make sure that billing is enabled for your Google Cloud project.

  2. 次のセクションで説明するように、適切な Identity and Access Management のロールを割り当てます。

必要なロール

データベースを作成して管理するには、Owner または Datastore Owner の Identity and Access Management ロールが必要です。これらのロールにより必要な権限が付与されます。

必要な権限

データベースを管理するには、次の権限が必要です。

  • データベースを作成する: datastore.databases.create
  • データベース構成を読み取る: datastore.databases.getMetadata
  • データベースを構成する: datastore.databases.update
  • データベースを削除する: datastore.databases.delete

データベースの作成

MongoDB 互換の Firestore データベースを作成するには、次のいずれかの方法を使用します。

Google Cloud コンソール
  1. Google Cloud コンソールで [データベース] ページに移動します。

    [データベース] に移動

  2. [Firestore データベースを作成する] をクリックします。
  3. データベース ID を入力します。
  4. Enterprise Edition を選択します。
  5. データベースのロケーションを選択します。
  6. (省略可)暗号化をカスタマイズする必要がある場合は、[暗号化オプションを表示する] をクリックして暗号化オプションを構成します。
  7. [データベースを作成] をクリックします。
gcloud CLI

gcloud firestore databases create コマンドを使用して --edition=enterprise を設定します。

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--edition=enterprise

次のように置き換えます。

削除保護を有効にするには、--delete-protection フラグを追加します。この設定を無効にするまで、削除からの保護が有効になっているデータベースを削除することはできません。この設定はデフォルトで無効になっています。

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--edition=enterprise \
--delete-protection
Terraform

google_firestore_database リソースを使用して、database_editionENTERPRISE に設定します。

resource "google_firestore_database" "database" {
  name             = "DATABASE_ID"
  location_id      = "LOCATION"
  type             = "FIRESTORE_NATIVE"
  database_edition = "ENTERPRISE"

  // Optional
  delete_protection_state = "DELETE_PROTECTION_STATE"
}

次のように置き換えます。

削除保護を有効にするには、delete_protection_stateDELETE_PROTECTION_ENABLED に設定します。この設定を無効にするまで、削除からの保護が有効になっているデータベースを削除することはできません。この設定はデフォルトで無効になっています。

データベース ID

有効なデータベース ID には、次の要件に準拠する ID が含まれます。

  • 使用できるのは英字、数字、ハイフン(-)のみです。
  • 文字は小文字のみを使用できます。
  • 最初の文字は英字でなければなりません。
  • 最後の文字は英字または数字にしてください
  • 4 文字以上。
  • 63 文字以内。
  • UUID、または UUID に似た ID は使用しないでください。たとえば、f47ac10b-58cc-0372-8567-0e02b2c3d479 のような ID は使用しないでください。

データベースを削除すると、5 分経過するまではデータベース ID を再利用することはできません。

削除保護

削除保護を使用すると、データベースの誤削除を防ぐことができます。削除保護は次のように機能します。

  • 削除保護を無効にするまで、削除保護が有効になっているデータベースを削除することはできません。
  • 削除保護はデフォルトで無効になっています。
  • 削除保護は、データベースの作成時に有効にすることも、データベース構成を更新して削除保護を有効にすることもできます。

データベースの一覧取得

データベースを一覧表示するには、次の方法のいずれかを使用します。

Console

Google Cloud コンソールで [データベース] ページに移動します。

[データベース] に移動

gcloud CLI

gcloud firestore databases list コマンドを使用して、プロジェクト内のすべてのデータベースを一覧表示します。

gcloud firestore databases list

データベースの詳細を表示する

単一のデータベースの詳細を表示するには、次のいずれかの方法を使用します。

Console
  1. Google Cloud コンソールで [データベース] ページに移動します。

    [データベース] に移動

  2. データベースのリストからデータベースを選択します。
gcloud CLI

gcloud firestore databases describe コマンドを使用します。

gcloud firestore databases describe --database=DATABASE_ID

DATABASE_ID をデータベース ID に置き換えます。

データベース構成を更新する

データベースの構成設定を更新するには、gcloud firestore databases update コマンドを使用します。

削除保護を変更、有効化、無効にするには、このコマンドを使用します。

削除保護の設定を更新する

データベースの削除保護を有効にするには、--delete-protection フラグを指定して gcloud firestore databases update コマンドを使用します。次に例を示します。

gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --delete-protection

DATABASE_ID をデータベース ID に置き換えます。

データベースの削除保護を無効にするには、--no-delete-protection フラグを指定して gcloud firestore databases update コマンドを使用します。次に例を示します。

gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection

DATABASE_ID をデータベース ID に置き換えます。

データベースを削除する

データベースを削除するには、コンソールまたはコマンドライン ツールを使用します。データベースを削除しても、削除オペレーションの料金は発生しません。

データベースで削除保護の設定が有効になっている場合は、まず削除保護を無効にする必要があります。

Google Cloud コンソール
  1. Google Cloud コンソールで [データベース] ページに移動します。

    [データベース] に移動

  2. 削除するデータベースの [アクション] 列で、 [さらに表示] をクリックします。[削除] をクリックします。ダイアログが表示されます。
  3. [データベースを削除しますか?] ダイアログのテキスト フィールドにデータベース ID を入力して、削除を確定します。[削除] をクリックします。オペレーションの成功または失敗がコンソールに表示されます。

    オペレーションが失敗した場合は、データベースの詳細を表示し、削除保護が無効になっていることを確認します。削除保護を無効にするには、削除保護の設定を更新するをご覧ください。

gcloud CLI

「gcloud firestore databases delete」コマンドを使用します。

gcloud firestore databases delete --database=DATABASE_ID

DATABASE_ID は、削除するデータベース ID に置き換えます。

データベースごとのアクセス権限を構成する

Identity and Access Management の条件を使用して、データベースごとにアクセス権限を構成できます。次の例では、Google Cloud CLI を使用して 1 つ以上のデータベースに条件付きアクセスを割り当てます。コンソールで IAM 条件を定義する Google Cloud こともできます。

既存の IAM ポリシーを表示する

gcloud projects get-iam-policy PROJECT_ID

プロジェクト ID に PROJECT_ID を設定します。

データベースへのアクセス権を付与する

gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name=="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'

以下のとおりに設定します。

  • PROJECT_ID: プロジェクト ID
  • EMAIL: 特定のアカウントを表すメールアドレス。例: alice@example.com
  • DATABASE_ID: データベース ID。
  • TITLE: 式のタイトル(省略可)。
  • DESCRIPTION: 式の説明(省略可)。

1 つを除くすべてのデータベースにアクセス権を付与する

gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name!="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'

以下のとおりに設定します。

  • PROJECT_ID: プロジェクト ID
  • EMAIL: 特定のアカウントを表すメールアドレス。例: alice@example.com
  • DATABASE_ID: データベース ID。
  • TITLE: 式のタイトル(省略可)。
  • DESCRIPTION: 式の説明(省略可)。

特定のメンバーとロールのポリシーを削除する

gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all

以下のとおりに設定します。

  • PROJECT_ID: プロジェクト ID
  • EMAIL: 特定のアカウントを表すメールアドレス。例: alice@example.com

制限事項

作成できるデータベースはプロジェクトあたり最大 100 個です。この上限の引き上げをリクエストするには、サポートにお問い合わせください。

次のステップ