3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【GCP】Googleクラウドの提供するデータベース。RDBからNoSQLまで!全部言える?

Posted at

はじめに

Google Cloudが提供する多様なデータベースサービスについて解説します。リレーショナルデータベースからNoSQL、インメモリデータベースまで、用途に応じた選択肢を詳しく説明します。

データベースとは

データベースの基本概念

データベースは、構造化されたデータを効率的に保存・管理・検索するためのシステムです。

データベースの種類

タイプ 説明
リレーショナル(RDB) テーブル形式、SQL MySQL, PostgreSQL
NoSQL 柔軟なスキーマ MongoDB, Cassandra
キーバリュー シンプルなKV形式 Redis, Memcached
ドキュメント JSON形式のドキュメント Firestore, MongoDB
グラフ ノードとエッジで関係を表現 Neo4j
時系列 時間ベースのデータ InfluxDB

RDBとNoSQLの比較

項目 RDB NoSQL
スキーマ 固定 柔軟
スケール 垂直(スケールアップ) 水平(スケールアウト)
整合性 強整合性(ACID) 結果整合性(BASE)
クエリ SQL 各DBの独自API
用途 トランザクション重視 大規模データ、柔軟性重視

Google Cloudのデータベースサービス

データベースサービス一覧

各サービスの位置づけ

サービス タイプ 特徴 用途
Cloud SQL RDB MySQL/PostgreSQL/SQL Server 一般的なWebアプリ
AlloyDB RDB PostgreSQL互換、高性能 分析・トランザクション混合
Cloud Spanner RDB グローバル分散、強整合性 グローバルアプリ
Firestore NoSQL ドキュメント型、リアルタイム モバイル/Web
Bigtable NoSQL 大規模、低遅延 IoT、時系列データ
Memorystore インメモリ Redis/Memcached キャッシュ、セッション

選択のガイドライン(一例)

Cloud SQL

Cloud SQLとは

Cloud SQLは、MySQL、PostgreSQL、SQL Serverをサポートするフルマネージドリレーショナルデータベースサービスです。

Cloud SQLの特徴

特徴 説明
フルマネージド パッチ適用、バックアップ自動化
高可用性 リージョン内フェイルオーバー
スケーラビリティ 読み取りレプリカで読み取り分散
セキュリティ 自動暗号化、VPC接続
統合 Cloud Run、GKE、App Engineと連携

接続方法

方法 説明 セキュリティ
Cloud SQL Proxy 認証付きプロキシ
プライベートIP VPC内接続
パブリックIP インターネット経由 中(SSL必須)

2024年のアップデート

  • PostgreSQL、MySQLのメジャーバージョンアップグレードツールの提供
  • HA構成でのネットワークアーキテクチャ更新
  • 各種パフォーマンス改善

AlloyDB

AlloyDBとは

AlloyDBは、PostgreSQL互換のフルマネージドデータベースで、標準PostgreSQLの4倍のトランザクション性能と100倍の分析クエリ性能を提供します。

AlloyDBの特徴

特徴 説明
高性能 トランザクション4x、分析100x高速
PostgreSQL互換 既存アプリをそのまま移行可能
AI統合 Vertex AIとのネイティブ統合
可用性 99.99% SLA
自動スケーリング ストレージの自動拡張

AlloyDB vs Cloud SQL

項目 Cloud SQL AlloyDB
パフォーマンス 標準 非常に高い
分析クエリ 標準 100x高速
AI機能 なし Vertex AI統合
料金 低い 高い
用途 一般的なワークロード 高性能要件

AI/ML機能

AlloyDBはVertex AIと統合されています:

  • pgvector拡張:ベクトル検索のサポート
  • ML関数:SQLからML予測を実行
  • 時系列予測:2025年にプレビュー提供開始

Cloud Spanner

Cloud Spannerとは

Cloud Spannerは、グローバルに分散しながらも強整合性を保証する唯一のリレーショナルデータベースです。

Cloud Spannerの特徴

特徴 説明
グローバル分散 世界中にデータを分散配置
強整合性 分散環境でもACID準拠
無制限スケール ノード追加で水平スケール
高可用性 99.999% SLA
標準SQL 標準インターフェース

TrueTime

Cloud Spannerは、Googleが開発したTrueTime APIを使用して、グローバルな時刻同期を実現しています。

これにより:

  • 分散トランザクションの一貫性を保証
  • 外部一貫性(External Consistency)を実現

ユースケース

用途 説明
グローバルアプリ 世界中のユーザーに低遅延アクセス
金融システム 厳格なACID要件
ゲーム グローバルランキング、アイテム管理
小売 在庫管理、注文処理

料金モデル

リソース 課金単位
Processing Units 時間単位
ストレージ GB/月
ネットワーク 外向きトラフィック

NoSQLデータベース

Firestore

Firestoreは、サーバーレスのドキュメント指向NoSQLデータベースです。

特徴:

  • リアルタイムリスナーでデータ変更を即座に反映
  • オフラインでもローカルデータにアクセス可能
  • Firebaseとの完全な統合
  • 自動スケーリング

Cloud Bigtable

Cloud Bigtableは、ペタバイト規模のデータを低遅延で処理できるNoSQLデータベースです。

特徴:

  • ペタバイト規模のデータを処理
  • 一貫した低遅延(ミリ秒単位)
  • Apache HBase API互換
  • 時系列データに最適

ユースケース:

用途 説明
IoT センサーデータの収集・分析
金融 取引履歴、リスク分析
広告 クリックストリーム分析
時系列分析 メトリクス、ログデータ

FirestoreとBigtableの比較

項目 Firestore Bigtable
スケール 中規模 大規模(PB)
遅延 低い 非常に低い
クエリ 柔軟 行キーベース
リアルタイム あり なし
オフライン あり なし
用途 モバイル/Web IoT/分析

Memorystore

Memorystoreとは

Memorystoreは、RedisとMemcachedをサポートするフルマネージドインメモリデータストアサービスです。

サポートするエンジン

エンジン 特徴
Redis データ永続化、リッチなデータ型
Memcached シンプルなキャッシュ

Memorystore for Redisの特徴

特徴 説明
フルマネージド パッチ、監視、フェイルオーバー自動化
高可用性 リージョン内レプリケーション
スケーラビリティ 最大300GBまでスケール
セキュリティ VPC内アクセス、暗号化

ユースケース

用途 説明
キャッシング データベースクエリ結果をキャッシュ
セッション管理 Webアプリのセッション保存
リアルタイムランキング ソート済みセット機能
Pub/Sub メッセージング
レート制限 API呼び出し制限

Memorystore for Redis Cluster

大規模なワークロード向けに、Redis Clusterも提供されています:

  • 最大64シャードまでスケール
  • 自動シャーディング
  • 高スループット

まとめ

この記事では、データベースサービスについて以下の内容を学びました:

  • データベースはRDB、NoSQL、インメモリなど多様な種類がある
  • Cloud SQLは一般的なWebアプリ向けのマネージドRDB
  • AlloyDBはPostgreSQL互換の高性能データベース
  • Cloud Spannerはグローバル分散で強整合性を実現
  • Firestoreはモバイル/Web向けドキュメントNoSQL
  • Bigtableは大規模時系列データ向けNoSQL
  • Memorystoreはキャッシュ/セッション管理向けインメモリDB

参考リンク

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?