はじめに
本記事はClassmethod Odyssey(DevelopersIO 2024)のリアルイベント(7/20)において Classmethod の大栗さんが講演された「Google Cloud の RDB を徹底比較! 選び方と最新機能紹介」のレポートです。
公式セッション紹介
Google Cloud はリレーショナルデータベースのサービスを多数提供していますが、どのように使い分けるか難しい問題になっています。本セッションでは各種リレーショナルデータベースサービスの機能やパフォーマンスを比較しつつ、ユースケースをご紹介します。
発表資料
概要/おすすめポイント
Google CloudのRDBとしては以下のサービスがあります。
- CloudSQL Enterprise (MySQL, PostgreSQL, SQL Server)
- CloudSQL Enterprise Plus (MySQL, PostgreSQL)
- AlloyDB (PostgreSQL)
- Cloud Spanner
- BigQuery
- (Bare Metal Solution(Oracle Database))
本セッションでは、CloudSQL Enterprise(MySQL, PostgreSQL)、CloudSQL Enterprise Plus(MySQL, PostgreSQL)、AlloyDB(PostgreSQL)について、性能面・機能面での比較を行われていました。特に性能面では実際にHammerDBでの負荷がけを行い、結果を評価されていたのが興味深かったです。
※性能評価は一例なのでご自身のワークロードで試してくださいね、と何度か強調されてました
セッション内容の紹介
性能面以外の比較という面では、機能面においてそれぞれのデータベースの特長が紹介されていました。
- メンテナンスにおける1秒未満のダウンタイム(スケールアップ・ダウン)
- CloudSQL Enterprise Plus, AlloyDB
- カラム型エンジン
- AlloyDB
- Vector検索
- CloudSQL(PostgreSQL) ← pgvector
- AlloyDB ← pgvector互換 SCaNNインデックス
- CloudSQL(MySQL) ← Google独自実装
- クロスリージョン Zero Data Loss スイッチオーバー
- AlloyDB
Gemini in Databaseもプレビューですが実装されてきているとのことでした。この辺は今後拡充されそうですね。
Spannerについてもアーキテクチャから触れられてましたが、クラウドネイティブなデータベースとSpanner や Regional, dual-region, and multi-region configurations 辺りを確認すると良いかと思います。
また、6月に発表されたOracle社との提携の話にも触れられていました。
Azureでもまだ日本では相互接続はできますがOracle Database@Azure(Azureのリージョン内でOCIのOracle Databaseサービスを利用すること)は利用できないので、今後実際にどのような使われ方をされるのかは興味あります。。
最後に、どのような場合にどのデータベースを選択するのか、をフローチャート化されており、とても興味深かったです。発表でも触れられてましたが、ワークロードの他にもいろいろなファクターがあるので、なかなかチャートのようにはいかないと思いますが、考え方として覚えておくと参考になるのでは、と思いました。
まとめ
それぞれのリレーショナルデータベースを横並びで比較する、というのはAWSなどでも実施されてますが、比較軸を定めるだけでも難しく、さらに性能評価は条件やワークロードによっても違った結果になるのでなかなか難しい試みですが、一つの結果としてとても興味深かったです。
大変そうですが、Query Insightsの結果等で何がネックになっているのかとかが見られると、さらにおもしろそうだと思いました。