Firestore Multiple Databases の一般提供を開始
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 データベースを作成する方法は、次のとおりです。
- Firestore サービスに移動します。
- [データベースを作成] ボタンをクリックします。
- データベースの識別子であるデータベース ID を選択します。
- 必要なデータベース構成設定(データベース モード、ロケーション、セキュリティ ルール構成など)を選択します。
注: データベース ID とロケーションは作成後に変更できないため、慎重に選択してください。
Firestore の作成と管理をさらに自由に行いたい場合は、gcloud、Firebase CLI および Terraform を使用して、Firestore データベースを作成および管理できます。こうしたオプションの詳細なガイドについては、Firestore ドキュメントの「データベースの作成」セクションをご覧ください。
データベースのセキュリティを構成する
Firestore なら、IAM 条件を使用して、個々のデータベースにきめ細かいセキュリティ構成を適用できます。この機能により、さまざまなデータベースに個別のセキュリティ ポリシーを適用することで、正確かつ詳細な管理が可能です。たとえば、特定のユーザー グループだけに指定されたデータベースへのアクセス権を付与することで、堅牢なセキュリティとデータ分離が実現します。
条件エディタ ツールを使って特定のデータベースに条件を設定する方法は、次のとおりです。
- resource.type として "firestore.googleapis.com" を選択します。
- resource.name にデータベース リソース名を指定します(形式は "projects/<project-id>/databases/<database-id>" とします)。
セキュリティ ポリシーを構成する際に知っておくべきことが、いくつかあります。
- 条件が指定されていない場合、権限が付与されているすべての IAM プリンシパルは本質的に、プロジェクト内のあらゆる Firestore データベースにアクセスできます。
- Firestore はタグにより統合されます。これによりタグが関連付けされ、データベースの指定されたグループへのアクセスを許可または拒否できます。詳細については、タグと条件付きアクセスのドキュメントをご覧ください。
- Firestore は類似の機能を Firebase セキュリティ ルールにも適用するため、Firebase プロジェクト内のデータベース アクセスのきめ細かい管理が可能です。Firestore 向けの詳細な Firebase のセキュリティ ルールについて詳しくは、「Firestore セキュリティ ルールを設定する」セクションをご覧ください。
データベースの使用量と費用を請求内訳で確認する
Firestore では、データベースごとに詳しい請求額と使用量の内訳が提供されます。こうした費用データにアクセスするには、BigQuery を使用します。たとえば、以下のクエリは 2023 年 10 月 18 日(UTC)のデータ使用料を、Firestore データベース ID ごとに分類して取得する方法を示しています。
Cloud Billing データを BigQuery にエクスポートするためのシームレスなワークフローを確立するには、Cloud Billing のドキュメントで詳細ガイドをご確認ください。また、タグを使用して、複数の Firestore データベースにまたがる詳細な費用内訳を利用することもできます。結果データの構造とスキーマに関して詳しくは、「詳細なデータ エクスポートの構造」のドキュメントをご参照ください。
データベースを削除する
Firestore データベースが目的を達成したため必要なくなった場合、数回クリックするだけで、直接コンソールから簡単に削除できます。
データベースを削除する際に知っておくべきことが、いくつかあります。
- 削除 - データベースを削除すると、Firestore がユーザーに変わってデータの削除を行います。
- 費用 - 削除操作の実行に関連する費用は一切かかりません。Firestore は、削除操作を行った 1 日後からストレージ費用の請求を停止します。
- バックアップ - Firestore のバックアップは、独立したリソースのライフサイクルごとに行われます。Firestore データベースを削除しても、ソース データベースに関連するバックアップの自動削除は行われません。
ベスト プラクティス
- Firestore を初めて使用する場合は、リソース名「(default)」の新しいデータベースで開始することをおすすめします。(default) データベースなら無料枠のサポートを利用でき、即座の費用を負担することなく Firestore のさまざまな機能を試すことができます。さらに、以前の App Engine ランタイムのサポートも、デフォルトのデータベース限定でご利用いただけます。
- 重要なデータベースでは、常に削除保護を有効にしてください。この安全対策により、データが誤って削除されるのを防ぎ、本番環境でデータの整合性を確保できます。
- データベースを作成する際、データベースのリソース名とロケーションは慎重に選んでください。こうした属性は、作成後に変更できません。ただし、既存のデータベースを削除した後に、異なるロケーションで同じリソース名の新しいデータベースを作成することは可能です。こうすることで、ロケーションを変更し、元のリソース名を保持できます。新しいロケーションでデータを復元する場合は、必ず事前にバックアップを行ってください。
次のステップ
近日中に、Firebase コンソールが複数の Firestore データベースの管理に対応するようになる予定です。今後の情報にご注目ください。
ー Firestore、ソフトウェア エンジニア Sichen Liu
ー Firestore、シニア プロダクト マネージャー リード Minh Nguyen