BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Google、Firestoreの複数データベースを導入

Google、Firestoreの複数データベースを導入

原文リンク(2024-02-24)

Google Cloudは先日、Firestore Multiple Databasesの一般提供を発表した。この新機能は、顧客データを分離し、マイクロサービスや開発、テスト、ステージング環境の管理を容易にするように設計されている。

2023年夏のプレビューで発表されたこの新機能は、同一プロジェクト内で複数のリージョンと、Firestoreのデータベースモードであるネイティブモードとデータストアモードの両方をサポートする。さらに、Firestoreのクラウド・モニタリング・メトリクスと統計情報がデータベース・レベルで集計されるようになった。

1つのプロジェクト内で複数のFirestoreデータベースを管理することが可能になったが、各ドキュメント・データベースは独立した分離状態で動作するため、データの分離とパフォーマンスの両方が保証される。クラウド・プロバイダーは、1つのデータベースのトラフィック負荷がプロジェクト内の他のデータベースのパフォーマンスに悪影響を及ぼすことはないと主張している。

条件付きのアイデンティティ・アクセス管理コントロールを活用することで、プロジェクト内のデータベースに対して異なるセキュリティ・ポリシーを指定することができる。Googleのシニア・ソフトウェア・エンジニアであるSichen Liu氏と、Googleのシニア・プロダクト・マネージャー・リードであるMinh Nguyen氏は、以下のように説明している。

Firestoreでは、IAM条件を通じて個々のデータベースにきめ細かなセキュリティ設定を適用できます。この機能により、異なるデータベースに異なるセキュリティポリシーを適用することができ、正確できめ細かな制御が可能になります。例えば、特定のユーザー・グループに特定のデータベースへのアクセスのみを許可し、強固なセキュリティとデータの分離を保証することができます。

新機能により、コスト追跡も簡素化されたFirestoreでは、データベース単位でのきめ細かな課金と使用量の内訳が可能になった。開発者はBigQueryを使用して、個々のデータベースIDごとにセグメント化されたコストを監視できる。

複数のデータベースをサポートすることは、コミュニティからの長期にわたる要望であった。本番用、ステージング用、開発用にそれぞれ異なるデータベースを作成することの難しさが数年前に浮き彫りになり、一部の開発者は前身であるFirebase Realtime Databaseを代わりに使うようになった。PrivateGPTのフルスタック開発者Francisco Durdin Garcia氏は、2018年にこう質問した。

Firebaseの同じコンソール内にFirestore Databaseの複数のインスタンス(プロジェクトごとに1つ)を作成することは可能でしょうか?Firebase Realtime Databaseでは可能なようですが、Firestoreでは可能なのでしょうか?

HappeoのクラウドアーキテクトであるAzidin Shairi氏は、プレビュー中にこの新機能をテストし、次のように記述している。

これにより、Firestoreデータベースのためだけに複数のプロジェクトを作成する必要がなくなり、小規模な環境であれば、プロジェクト間のアクセス制御の複雑さも軽減されます。

Liu氏とNguyen氏はこう付け加えている。

これらの属性は作成後に変更できないため、作成時にデータベース・リソース名と場所を慎重に選択する必要があります。しかし、既存のデータベースを削除し、その後に同じリソース名で、別の場所に新しいデータベースを作成することが可能です。

GA版によって、複数のデータベースがコンソール、Terraformリソース、すべてのSDKでサポートされるようになった。アプリケーションが複数のデータベースを必要としない場合、Cloud FirestoreクライアントライブラリもGoogle Cloud CLIもデフォルトでデータベースに接続するため、Googleは*(デフォルトの*)データベースを使い続けることを推奨している。

作者について

この記事に星をつける

おすすめ度
スタイル

BT