皆様、こんにちは!
アイレット株式会社 DX開発事業部の楊林と申します。
前回の投稿では、Google Cloud のオブジェクトストレージサービスである Cloud Storage について整理しました。
今回は Google Cloud の構造化データ向けストレージサービスをまとめて紹介していきます。
Cloud SQL
Cloud SQL は MySQL、PostgreSQL、SQL Server を扱えるフルマネージドRDBサービスです。パッチや更新は自動適用され、運用管理の負担を大きく軽減できます。
Cloud SQL では HA(高可用性) 構成を利用することができます。
同一リージョン内にプライマリとスタンバイのインスタンスが構成され、永続ディスクは同期レプリケーションされます。トランザクション commit 前に両ゾーンへ書き込みが複製されるため、障害発生時には永続ディスクがスタンバイにアタッチされ、新しいプライマリとしてフェイルオーバーします。アプリケーションは透過的に新プライマリへルーティングされます。
また、ポイントインタイムリカバリ、自動/オンデマンドバックアップ、mysqldump や CSV によるインポート/エクスポート、スケールアップ・スケールアウトなど、日常運用で必要な機能が揃っています。
接続方式はセキュリティやパフォーマンスに影響します。
同じプロジェクト内・同じリージョンのアプリからは プライベート IP 接続 が推奨され、インターネットに露出しない最も安全で高性能な接続を実現します。
別リージョンのアプリ、他プロジェクト、オンプレミスや外部ネットワークから接続する場合には、Cloud SQL Auth Proxy、SSL 手動構成、暗号化なし接続などが利用可能です。
Cloud Spanner
Cloud Spanner は、リレーショナルデータベースの機能と非リレーショナルの水平スケーリングを両立させた、Google Cloud 独自の フルマネージド分散RDB です。
PB 規模の水平スケール、グローバルトランザクション整合性、SQL、スキーマ、自動同期レプリケーションなどを備え、金融系や在庫管理などミッションクリティカルなワークロードに適しています。
Cloud Spanner のインスタンスはデータを複数ゾーンへ同期レプリケーションします。
単一リージョン構成もマルチリージョン構成も可能で、データベースを配置するリージョンを選択できます。Google のグローバルファイバーネットワークを介して同期されるため、高い可用性と地理分散が実現されています。
以下のようなケースでは Cloud SQL ではなく Cloud Spanner が適しています:
- 既存のRDBではスケールが限界
- シャーディングが必要になるほどスループットを求める場合
- 強いトランザクション整合性が必須
- グローバルデータに対して強整合性が必要
- 複数DBの統合が必要
AlloyDB
AlloyDB for PostgreSQL は、PostgreSQL 互換の ハイパフォーマンスRDBサービス で、トランザクションと分析の両ワークロードに適したクラウドネイティブDBです。Google の独自DBエンジンとマルチノードアーキテクチャを組み合わせ、エンタープライズレベルの性能・可用性を提供します。
バックアップ、レプリケーション、パッチ、容量管理などは自動化されています。
さらに、ML による適応型アルゴリズムによって、バキューム管理、ストレージ/メモリ最適化、データ階層化、分析高速化も行われます。
PostgreSQL より 4倍以上のトランザクション性能 を持ち、100倍の速度で分析クエリを処理できます。99.99% の高可用性 SLA を提供し、複数リードレプリカや巨大データセットを扱うエンタープライズ用途に最適です。
Vertex AI と統合されているため、DB から直接 ML モデルを呼び出せる点も特徴です。
Bigtable
Cloud Bigtable は Google 内部の検索・Gmail・マップなど多数のサービスを支える、フルマネージド NoSQL ビッグデータデータベースです。
PB 規模に対応し、非常に低レイテンシ、高スループットで、急速に変化する大規模データに強みがあります。ML アプリケーション向けストレージエンジンとしても優秀で、HBase API をサポートするため導入ハードルも低いです。
データは 並べ替え可能な Key-Value マップ として格納され、行キー、列ファミリー、列修飾子の構造を持ちます。1セルには複数バージョンのデータを保存でき、時系列での変化履歴も追えます。
また Bigtable は スパーステーブル であり、データのないセルは容量を消費しません。
以下のようなケースに適しています:
- 1TB を超える大量の構造化/半構造化データ
- 高スループット・高速更新が必要
- RDB のトランザクションセマンティクスが不要
- 時系列データ、大規模解析データ
- ML アルゴリズムの大規模データ処理
- Dataflow/Spark などストリーム/バッチ処理との統合利用
API で Java や REST ベースのクライアントから読み書きでき、Dataflow や Spark を通じたストリーミング・バッチ処理にも対応しています。
BigQuery
BigQuery は Google Cloud のサーバーレス・大規模データウェアハウスです。
ペタバイト級データを高速に分析でき、SQL を使って手軽にクエリを実行できます。フルマネージドであり、インフラ管理をすべて Google に任せられるのが特徴です。
アクセス方法は Cloud コンソール、CLI、クライアントライブラリ(Java, .NET, Python 等)、REST API、さらには多くのサードパーティBIツールからも利用できます。
最後に
今回は Google Cloud でよく利用される構造化データ向けストレージサービスを紹介しました。
次回は、Google Cloud のその他ストレージサービス、および用途別のストレージ選択方法についてまとめていく予定です。
続けて読んでいただけると嬉しいです!
以前の投稿
【Google Cloud入門】クラウドサービスの特徴とGoogle Cloudの触り方
【Google Cloud入門】リソースマネージメント
【Google Cloud入門】アクセス管理の基本 - IAM
【Google Cloud入門】サービスアカウントとCloud Identity
【Google Cloud入門】Compute Engineの基礎
【Google Cloud入門】コンピューティングオプションとマネージドインスタンスグループ
【Google Cloud入門】GKE入門の前準備-コンテナの基礎
【Google Cloud入門】GKE入門の前準備-Kubernetesの基礎
【Google Cloud入門】GKE入門の前準備-Kubernetesの構成
【Google Cloud入門】Googleのコンテナ仮想環境ーGoogle Kubernetes Engine
【Google Cloud入門】GCEとGKE以外のコンピューティングサービス
【Google Cloud入門】Google Cloudネットワークの基礎
【Google Cloud入門】Google Cloudネットワークへの接続とVPCの共有
【Google Cloud入門】Google Cloudネットワークの負荷分散
【Google Cloud入門】オブジェクトストレージサービスーCloud Storage