データベースの作成と管理
このページでは、MongoDB 互換の Firestore データベースを作成、更新、削除する方法について説明します。プロジェクトごとに複数の Firestore データベースを作成できます。複数のデータベースを使用して、本番環境とテスト環境の設定、顧客データの分離、データのリージョン指定を行うことができます。無料枠の使用量
Firestore には無料枠が用意されており、費用をかけずに使い始めることができます。
無料の Tier は、プロジェクトごとに 1 つの Firestore データベースにのみ適用されます。無料枠データベースのないプロジェクトで最初に作成されたデータベースが無料枠を取得します。無料の Tier が適用されたデータベースが削除された場合、次に作成されるデータベースに無料の Tier が適用されます。
始める前に
データベースを作成する前に、次の操作を行う必要があります。
-
Make sure that billing is enabled for your Google Cloud project.
- 次のセクションで説明するように、適切な 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 コンソール
-
Google Cloud コンソールで [データベース] ページに移動します。
- [Firestore データベースを作成する] をクリックします。
- データベース ID を入力します。
- Enterprise Edition を選択します。
- データベースのロケーションを選択します。
- (省略可)暗号化をカスタマイズする必要がある場合は、[暗号化オプションを表示する] をクリックして暗号化オプションを構成します。
- [データベースを作成] をクリックします。
gcloud CLI
gcloud firestore databases create
コマンドを使用して --edition=enterprise
を設定します。
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise
次のように置き換えます。
- DATABASE_ID: 有効なデータベース ID。
- LOCATION: MongoDB 互換の Firestore マルチリージョンまたはリージョンの名前。
削除保護を有効にするには、--delete-protection
フラグを追加します。この設定を無効にするまで、削除からの保護が有効になっているデータベースを削除することはできません。この設定はデフォルトで無効になっています。
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise \ --delete-protection
Terraform
google_firestore_database
リソースを使用して、database_edition
を ENTERPRISE
に設定します。
resource "google_firestore_database" "database" { name = "DATABASE_ID" location_id = "LOCATION" type = "FIRESTORE_NATIVE" database_edition = "ENTERPRISE" // Optional delete_protection_state = "DELETE_PROTECTION_STATE" }
次のように置き換えます。
- DATABASE_ID: 有効なデータベース ID。
- LOCATION: MongoDB 互換の Firestore マルチリージョンまたはリージョンの名前。
- DELETE_PROTECTION_ENABLEMENT:
DELETE_PROTECTION_ENABLED
またはDELETE_PROTECTION_DISABLED
。
削除保護を有効にするには、delete_protection_state
を DELETE_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
-
Google Cloud コンソールで [データベース] ページに移動します。
- データベースのリストからデータベースを選択します。
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 コンソール
-
Google Cloud コンソールで [データベース] ページに移動します。
- 削除するデータベースの [アクション] 列で、 [さらに表示] をクリックします。[削除] をクリックします。ダイアログが表示されます。
[データベースを削除しますか?] ダイアログのテキスト フィールドにデータベース 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
: プロジェクト IDEMAIL
: 特定のアカウントを表すメールアドレス。例: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
: プロジェクト IDEMAIL
: 特定のアカウントを表すメールアドレス。例: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
: プロジェクト IDEMAIL
: 特定のアカウントを表すメールアドレス。例:alice@example.com
制限事項
作成できるデータベースはプロジェクトあたり最大 100 個です。この上限の引き上げをリクエストするには、サポートにお問い合わせください。
次のステップ
- クイックスタート: データベースを作成して接続するを実行します。
- 動作の違いについて学習する。
- MongoDB 互換の Firestore の Cloud Monitoring 指標について学習する。