2023/12/05

テクノロジー

GCPのストレージ・データベースサービスたちをまとめてみた

この記事の目次

    はじめに

    GCPにはさまざまなストレージサービスやデータベースサービスがあります。
    GCP試験の勉強中、頭がごちゃごちゃになったポイントでした。(私の場合)
    今回は6つのストレージサービスについて簡単にまとめていこうと思います。

    Google Cloud Storage(GCS)

    特徴

    • オブジェクトストレージサービス
    • 容量無制限
    • 低価格
      ◦Amazon S3と同じ感じ

    いろいろ

    ストレージクラス
    GCSには以下の4つのストレージクラスがあります。

    種類説明費用目安
    Standardアクセス頻度の高いデータや短期間だけ保存されるデータ用。ウェブサイト、ストリーミング系、モバイルアプリ$0.02~[GB 単位/月]
    Nearline月一程度のアクセス頻度のデータ保存用。30日以上保存が必要なバックアップデータ$0.01~[GB 単位/月]
    Coldline四半期に一度程度のアクセス頻度のデータ保存用。90日以上保存が必要なバックアップデータ$0.004~[GB 単位/月]
    Archive年一程度のアクセス頻度のデータ保存用。データアーカイブ、バックアップ$0.0012~[GB 単位/月]

    ユースケース

    • 画像、テキスト、動画、その他のファイル形式などいろんなものを入れたいとき。
    • 頻繁なアクセスのないバックアップデータなど。
    • 非構造化データ置き場
    • 基本はS3的な使いどころ

    Cloud SQL

    特徴

    • フルマネージドなリレーショナルデータベースサービス
    • MySQL、PostgreSQL、SQL Serverを使用可能
    • 適切なディスクタイプとサイズを選択可能
      ◦専用コア: 最大 64 TB
      ◦共有コア: 最大 3 TB

    いろいろ

    Cloud SQLの特長を掘り下げていこうと思います。

    高可用性(HA構成)

    • プライマリインスタンスと別のゾーンにスタンバイインスタンス配置
      ◦プライマリインスタンスとスタンバイインスタンスは同期レプリケーション
      ◦障害時、スタンバイインスタンスにフェイルオーバー

    リードレプリカ

    • リードレプリカは非同期レプリケーション
    • 読み取りワークロードの負荷分散が可能

    ※クロスリージョンレプリカ:リージョン間でのデータ同期が可能

    ユースケース

    • リレーショナルがいいけどオートスケールが不要な時
    • PostgreSQLを使用するとき
    • CRM
    • ERP系
    • Eコマースやウェブ系
    • SaaSアプリの構築

    BigQuery

    特徴

    • サーバレスで費用対効果に優れたエンタープライズデータウェアハウス
    • 大量のデータセットを格納しながら即時処理が可能
    • データクエリ用の双方向性のあるSQLインターフェイス

    いろいろ

    データドリブンな分析機能がいくつかあるのでまとめていきます。

    リアルタイム分析

    • イベント ドリブンな分析でビジネス イベントにリアルタイムで対応することが可能
    • 組み込みのストリーミング機能あり
      ◦ストリーミングデータを自動的に取り込み、すぐにクエリが可能

    予測分析

    • レコメンデーションと検出のシステムの構築が可能
    • BigQuery と BigQuery ML を使用する必要がある
      ◦BigQuery ML :BigQuery で GoogleSQL クエリを使用して機械学習モデルを作成し、実行することができるもの

    ログ分析

    • ログデータを保存して探索したり、クエリを実行することが可能
      ◦Googleアナリティクスで収集しているデータ(メジャメントプロトコル)をBigQueryに送り、集計・可視化することも…

    マーケティングデータウェアハウス

    • スケーラブルなマーケティングデータウェアハウスの構築が可能
      ◦BigQuery でマーケティング データと広告データを統合
      ◦キャンペーンあたり、ユーザーあたりのコンバージョンに与える影響についての記述的分析
      ◦BigQuery はキャンペーン マネージャー 360 の元データにアクセスできるため、この情報を利用可能

    ユースケース

    • 大規模なデータ分析
    • SQLを使ったビッグデータ処理

    Cloud Bigtable

    特徴

    • フルマネージド NoSQL ビッグデータのデータベース サービス
    • 数十億行、数千列の規模にスケール可能(=数テラバイト、あるいは数ペタバイトのデータを格納可能)
      ◦Google 検索、アナリティクス、マップ、Gmail など、多数の主要サービスを支えているのと同じデータベース

    いろいろ

    個人的に料金体系がパッと見だとよくわからなかったので要点をまとめます。

    • 課金対象
      ◦Bigtable インスタンスのタイプ、使用しているインスタンスのクラスタに含まれる合計ノード数
        ◦数/時間 ◦テーブルで使用しているストレージ量
        ◦GB/日
        ◦1か月での平均値から、月額を算出
      ◦ネットワーク帯域幅の使用量
        ◦GB/日

    Cloud Bigtable の料金の公式ドキュメントには、事例に基づき料金の例が載っているので大変助かります

    ユースケース

    • 時系列データ
      ◦複数のサーバーにおける時間の経過に伴う CPU とメモリの使用状況など
    • マーケティング データ
      ◦購入履歴や顧客の好みなど
      ◦低レイテンシーな読み書きを要するシステム
        ◦IoT・AdTech・金融サービス等
    • グラフデータ
    • クレジットカードの不正利用検出(にも活用できるらしい)

    Cloud Spanner

    特徴

    • 無制限のスケーリング
    • リージョンにわたる強整合性
    • 最大 99.999% の可用性※マルチリージョン構成の場合
    • フルマネージド

    いろいろ

    Spannerの特長的な部分をいくつかピックアップします。

    強整合性と水平スケーリングの両方が可能

    Spannerはリレーショナルデータベースなので強整合性を保証しつつ、 noSQLデータベースでもあるため、グローバルに水平スケーリングが可能です。
    (なかなか珍しいらしい…)

    読み取り方式

    Spannerには「強力な読み取り方式」と「ステイル読み取り方式」があります。

    • 「強力な読み取り方式」
      ◦デフォルトの読み取り方式
      ◦強整合性を持った読み取りが可能◎
      ◦読み取りの都度最新のデータであるかチェックするため、 内部通信が発生しレイテンシが大きい△
    • 「ステイル読み取り方式」
      ◦高速な読み取りが可能
      ◦レプリカ自身が持つ最新のデータであるかのチェックをスキップする
        ◦強整合性が重要ではない場合は良さそう

    ユースケース

    Datastore

    特徴

    • アプリケーション向けのNoSQLデータベース
    • シャーディングとレプリケーションを自動で処理
    • 負荷に合わせて自動的にスケールが可能
    • 可用性と耐久性に優れている

    いろいろ

    Datastoreの特徴的な機能についてまとめていきます。

    ACIDトランザクション

    • 単一のトランザクションで複数のデータストアオペレーションを実行するACIDの特性により、データの整合性を確保
      ◦不可分性(Atomicity)
      ◦貫性(Consistency)
      ◦独立性(Isolation)
      ◦永続性(Durability)

    多様なデータ型

    • 複数のデータ型が使用可能
      ◦整数
      ◦浮動小数点数
      ◦文字列
      ◦日付
      ◦バイナリデータ

    管理ダッシュボード

    • さまざまな機能をダッシュボード上で使用可能
      ◦エンティティ統計の表示
      ◦データベースのクエリ
      ◦インデックスの表示
      ◦データのバックアップと復元

    ユースケース

    • どれだけ増えても処理速度の変化を発生させたくないもの
    • ゲームデータ
    • ユーザデータ
    • Google App Engineのデータベース

    さいごに

    今回は6つのストレージ・データベースサービスについてまとめてみました。
    それぞれの特長によって、使い分けしていきたいと思います。

    ※本記事は2023年12月時点の情報です。

    著者:マイナビエンジニアブログ編集部