コンテンツに移動
データベース

Firestore Multiple Databases の一般提供を開始

2024年2月13日
Google Cloud Japan Team

※この投稿は米国時間 2024 年 2 月 6 日に、Google Cloud blog に投稿されたものの抄訳です。

このたび、Firestore Multiple Databases が一般提供となりましたのでお知らせいたします。この機能により複数の Firestore データベースを 1 つの Google Cloud プロジェクトで管理できるようになり、データ分離、セキュリティ、リソース管理、費用追跡が強化されます。このマイルストーンで、複数のデータベースが Google Cloud コンソール、Terraform リソース、Firestore のすべての SDK で完全にサポートされるようになりました。

それぞれの Firestore データベースは独立分離された状態で動作するため、堅牢なデータの分離とパフォーマンスが確保されます。たとえば、1 つのデータベースでトラフィック負荷がホットスポット化しても、プロジェクト内のその他のデータベースのパフォーマンスに悪影響が及ぶことはありません。

Firestore データベースを作成してみる

コンソールを使って、数回クリックするだけで Firestore データベースを作成する方法は、次のとおりです。

  1. Firestore サービスに移動します。
  2. [データベースを作成] ボタンをクリックします。
  3. データベースの識別子であるデータベース ID を選択します。
  4. 必要なデータベース構成設定(データベース モード、ロケーション、セキュリティ ルール構成など)を選択します。

注: データベース ID とロケーションは作成後に変更できないため、慎重に選択してください。

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_-_create_database.max-2200x2200.png

Firestore の作成と管理をさらに自由に行いたい場合は、gcloudFirebase CLI および Terraform を使用して、Firestore データベースを作成および管理できます。こうしたオプションの詳細なガイドについては、Firestore ドキュメントの「データベースの作成」セクションをご覧ください。

データベースのセキュリティを構成する

Firestore なら、IAM 条件を使用して、個々のデータベースにきめ細かいセキュリティ構成を適用できます。この機能により、さまざまなデータベースに個別のセキュリティ ポリシーを適用することで、正確かつ詳細な管理が可能です。たとえば、特定のユーザー グループだけに指定されたデータベースへのアクセス権を付与することで、堅牢なセキュリティとデータ分離が実現します。

条件エディタ ツールを使って特定のデータベースに条件を設定する方法は、次のとおりです。

  • resource.type として "firestore.googleapis.com" を選択します。
  • resource.name にデータベース リソース名を指定します(形式は "projects/<project-id>/databases/<database-id>" とします)。
https://storage.googleapis.com/gweb-cloudblog-publish/images/2_-_conditions_rmJh6vY.max-1600x1600.png

セキュリティ ポリシーを構成する際に知っておくべきことが、いくつかあります。

  • 条件が指定されていない場合、権限が付与されているすべての IAM プリンシパルは本質的に、プロジェクト内のあらゆる Firestore データベースにアクセスできます。
  • Firestore はタグにより統合されます。これによりタグが関連付けされ、データベースの指定されたグループへのアクセスを許可または拒否できます。詳細については、タグと条件付きアクセスのドキュメントをご覧ください。
  • Firestore は類似の機能を Firebase セキュリティ ルールにも適用するため、Firebase プロジェクト内のデータベース アクセスのきめ細かい管理が可能です。Firestore 向けの詳細な Firebase のセキュリティ ルールについて詳しくは、「Firestore セキュリティ ルールを設定する」セクションをご覧ください。

データベースの使用量と費用を請求内訳で確認する

Firestore では、データベースごとに詳しい請求額と使用量の内訳が提供されます。こうした費用データにアクセスするには、BigQuery を使用します。たとえば、以下のクエリは 2023 年 10 月 18 日(UTC)のデータ使用料を、Firestore データベース ID ごとに分類して取得する方法を示しています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/3_-_billing_export_YFWHN64.max-1600x1600.png

Cloud Billing データを BigQuery にエクスポートするためのシームレスなワークフローを確立するには、Cloud Billing のドキュメントで詳細ガイドをご確認ください。また、タグを使用して、複数の Firestore データベースにまたがる詳細な費用内訳を利用することもできます。結果データの構造とスキーマに関して詳しくは、「詳細なデータ エクスポートの構造」のドキュメントをご参照ください。

データベースを削除する

Firestore データベースが目的を達成したため必要なくなった場合、数回クリックするだけで、直接コンソールから簡単に削除できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/4_-_delete_database.max-2200x2200.png

データベースを削除する際に知っておくべきことが、いくつかあります。

  • 削除 - データベースを削除すると、Firestore がユーザーに変わってデータの削除を行います。
  • 費用 - 削除操作の実行に関連する費用は一切かかりません。Firestore は、削除操作を行った 1 日後からストレージ費用の請求を停止します。
  • バックアップ - Firestore のバックアップは、独立したリソースのライフサイクルごとに行われます。Firestore データベースを削除しても、ソース データベースに関連するバックアップの自動削除は行われません

ベスト プラクティス

  • Firestore を初めて使用する場合は、リソース名「(default)」の新しいデータベースで開始することをおすすめします。(default) データベースなら無料枠のサポートを利用でき、即座の費用を負担することなく Firestore のさまざまな機能を試すことができます。さらに、以前の App Engine ランタイムのサポートも、デフォルトのデータベース限定でご利用いただけます。
  • 重要なデータベースでは、常に削除保護を有効にしてください。この安全対策により、データが誤って削除されるのを防ぎ、本番環境でデータの整合性を確保できます。
  • データベースを作成する際、データベースのリソース名とロケーションは慎重に選んでください。こうした属性は、作成後に変更できません。ただし、既存のデータベースを削除した後に、異なるロケーションで同じリソース名の新しいデータベースを作成することは可能です。こうすることで、ロケーションを変更し、元のリソース名を保持できます。新しいロケーションでデータを復元する場合は、必ず事前にバックアップを行ってください。

次のステップ

近日中に、Firebase コンソールが複数の Firestore データベースの管理に対応するようになる予定です。今後の情報にご注目ください。

ー Firestore、ソフトウェア エンジニア Sichen Liu

ー Firestore、シニア プロダクト マネージャー リード Minh Nguyen

投稿先