TL

Cloud Service

Cloud Bigtable

Google Cloud のフルマネージドなワイドカラム NoSQL。ペタバイト級でも一桁ミリ秒の低遅延・高スループットを出す。AWS の DynamoDB や Keyspaces に近い。

中級パフォーマンス効率コスト最適化
最終更新: 2026-06-14公式ドキュメント ↗
TL;DR要点だけ先に
  • 1.大規模・高スループットでも一桁ミリ秒の低遅延を保つワイドカラム型 NoSQL。
  • 2.行キー設計が性能の要で、単調増加キーによるホットスポットを避ける。
  • 3.ノード数でスループットを線形に拡張でき、時系列やIoT、分析の前段に向く。

解決する課題

  • 数十億行・ペタバイト級でも安定して一桁ミリ秒の読み書きを出したい
  • 毎秒数十万〜数百万オペレーションの高スループットを捌きたい
  • 時系列 / IoT / 監視メトリクス / ユーザー行動ログなど書き込みが膨大なワークロードを扱いたい
  • 容量計画やシャーディング、パッチ適用を自分で運用したくない
  • 必要なときだけノードを足してスループットを伸ばし、減らしてコストを抑えたい

主要概念と用語

  • インスタンス: Bigtable の最上位コンテナ。1 つ以上のクラスタとテーブルを束ねる。DynamoDB のリージョン内テーブル群に近い管理単位
  • クラスタ: 実際にリクエストを処理するノード群。特定のゾーンに属し、ノード数でスループットが線形にスケールする
  • ノード: クラスタ内の処理ユニット。CPU と接続を提供し、ストレージとは分離されている
  • テーブル / 行 / 列 / セル: テーブルは行の集合。各行は行キーで一意。列は列ファミリーでグループ化され、セルにはタイムスタンプ付きの複数バージョンを保持できる
  • 行キー(Row Key): 各行を一意に識別するキーで、辞書順にソートして格納される。設計が性能を左右する最重要要素。DynamoDB のパーティションキーに相当する役割
  • 列ファミリー(Column Family): 関連する列をまとめる単位。アクセスパターンやガベージコレクション設定の単位になる
  • ガベージコレクションポリシー: セルのバージョン数や保持期間で古い値を自動削除するルール
  • タブレット(Tablet): 行キー範囲ごとに分割されたデータの塊。負荷に応じて自動分割・再配置される
  • アプリプロファイル: ルーティング方法(単一クラスタ / マルチクラスタ)や優先度を定義する接続設定
  • レプリケーション: 複数クラスタ間でデータを非同期コピーし、可用性や地理的近接、ワークロード分離を実現する

仕様・制限・クォータ

  • インターフェースは HBase 互換 API と独自のクライアントライブラリ。HBase からの移行がしやすい
  • クエリは行キー中心。行キーの完全一致または範囲スキャンが基本で、任意フィールドの二次インデックスや SQL の複雑な結合は持たない(用途が異なる)
  • 整合性は単一クラスタへの読み書きで強整合。マルチクラスタにルーティングすると結果整合になりうる
  • ストレージは SSD と HDD から選択でき、インスタンス作成時に決める(あとから変更不可)
  • 1 行のサイズには上限があり、極端に大きな行(数百 MB 級)は推奨されない。値そのものにもセルサイズの上限がある
  • 最小ノード数ノードあたりの処理上限といった目安があり、必要スループットに応じてノード数を見積もる
  • 上記のような具体的な数値・上限は変動しうるため、設計時は公式ドキュメントの最新値を確認すること

内部の仕組み

Bigtable はストレージとコンピュート(ノード)を分離したアーキテクチャです。実データは Google の分散ファイルシステム上に行キーで辞書順ソートして保持され、ノードはそのデータへのポインタとリクエスト処理だけを担います。データはタブレットと呼ばれる行キー範囲の塊に分割され、各タブレットがノードに割り当てられます。負荷やデータ量が偏ると、Bigtable は**タブレットを自動で分割・再配置(リバランス)**してノード間の負荷を均します。

この仕組みのため、ノードを追加するとスループットがほぼ線形に増加します。一方で、行キーが**単調増加(タイムスタンプ昇順や連番)**だと書き込みが常に末尾のタブレット=特定ノードに集中し、ホットスポットが発生してスケールしません。

設計の鉄則

性能の 8 割は行キー設計で決まります。アクセスパターン(どんな範囲スキャンをするか)を先に決め、よく一緒に読む値が近い行キーに並ぶよう設計します。書き込みの偏りを避けるには、フィールドの順序を入れ替える、ハッシュやソルトを前置する、タイムスタンプは逆順にするなどでキー空間に書き込みを分散させます。

設計パターン / ベストプラクティス

  • アクセスパターン(読みたい範囲・絞り込みキー)を列挙し、それに合わせて行キーを設計する
  • 行キーには頻繁に絞り込む属性を前方に置き、範囲スキャンが効くよう連結する(例: ユーザー ID + 逆順タイムスタンプ)
  • 単調増加キーを避け、必要ならハッシュ前置やフィールドの並べ替えで分散させる
  • 関連して読む列を同じ列ファミリーにまとめ、アクセスしない列を無駄に読まない
  • 古いデータはガベージコレクションポリシーでバージョン数・保持期間を絞り、ストレージとスキャン量を抑える
  • 本番投入前にKey Visualizerでホットスポットの兆候(特定キー範囲への偏り)を確認する
  • 高可用やワークロード分離が要る場合はレプリケーション+アプリプロファイルでルーティングを設計する
  • 複雑な集計・分析が必要なら、Bigtable をストレージ層に据えて BigQuery など分析サービスと組み合わせる

運用・監視

  • Cloud Monitoring で CPU 使用率、ディスク使用率、レイテンシ、リクエスト数などのメトリクスを監視する
  • CPU 使用率が高止まりしたらノードを増やす。逆に余裕があれば減らしてコストを下げる。オートスケーリングでノード数を負荷に追従させることもできる
  • Key Visualizer で行キーへのアクセス分布をヒートマップとして可視化し、ホットスポットを早期発見する
  • レプリケーションを使う場合はレプリケーション遅延を監視し、整合性要件と照らす
  • バックアップ機能でテーブルのスナップショットを取得し、誤操作や障害から復元できるようにする
  • ストレージタイプ(SSD / HDD)はインスタンス作成後に変更できないため、用途を見極めて初期選択する

コスト

Bigtable のコストは主にノード数(プロビジョニングしたコンピュート)ストレージ量(SSD / HDD で単価が異なる)、そしてネットワーク下り(外向き)転送量で構成されます。DynamoDB のオンデマンド課金とは異なり、ノード単位で時間課金される点が大きな違いで、アイドル時もノードを保持していれば費用が発生します。

コスト要素課金の単位節約のコツ
ノード(コンピュート)クラスタのノード数 × 稼働時間オートスケーリングで負荷に追従させる
ストレージ保存バイト数(SSD か HDD で単価が違う)用途に合わせてHDD選択 / GCで古い値を削除
レプリケーション追加クラスタのノードとストレージ本当に必要なクラスタ構成に絞る
ネットワーク下り外向き転送量(リージョン跨ぎは割高)近いリージョンに配置 / 不要な転送を避ける

セキュリティ

  • 保存時暗号化はデフォルトで有効(Google 管理鍵、または CMEK で顧客管理鍵を利用可能)
  • アクセス制御は Cloud IAM のロール(例として閲覧者・ユーザー・管理者に相当するロール)で付与し、サービスアカウントには最小権限を割り当てる
  • アクセス権限はインスタンス単位やテーブル単位で絞り込め、用途に応じた分離ができる
  • ネットワーク到達制御やデータ持ち出し防止には VPC Service Controls を組み合わせ、境界の外からのアクセスを遮断する
  • 監査は Cloud Audit Logs で管理操作やデータアクセスを記録する
用途のミスマッチに注意

Bigtable は任意フィールドでの検索やトランザクション整合の更新、複雑な集計には向きません。これらが必要なら Firestore(ドキュメント NoSQL)や Cloud SQL / AlloyDB(リレーショナル)、分析なら BigQuery を選びます。アクセスパターンが行キーの一致・範囲スキャンに収まるかを最初に見極めてください。

Well-Architected の観点

  • パフォーマンス効率: ノード追加でスループットがほぼ線形にスケールし、ストレージとコンピュートが分離されているため大規模でも一桁ミリ秒を維持しやすい。行キー設計とホットスポット回避が前提条件
  • コスト最適化: ノードの時間課金が中心。オートスケーリングでアイドルコストを抑え、低頻度アクセスのデータには HDD ストレージを選んでストレージ単価を下げる
  • 信頼性: タブレットの自動分割・再配置でノード障害や負荷偏りを吸収。レプリケーションで複数ゾーン / リージョンに分散すると可用性とワークロード分離が向上する
  • 運用上の優秀性: フルマネージドでパッチやシャーディングの手運用が不要。Key Visualizer と Cloud Monitoring で性能を継続的に観測できる

試験で問われるポイント

頻出
  • 大規模・高スループット・低遅延のワイドカラム NoSQL → Cloud Bigtable が定番の答え。時系列・IoT・監視メトリクス・ユーザー行動ログが典型ユースケース
  • 性能の鍵は行キー設計。単調増加(タイムスタンプ昇順 / 連番)キーはホットスポットを生むため避け、分散させること
  • スループットはノード数で線形にスケールし、ストレージとコンピュートが分離されていること
  • 任意フィールド検索・複雑な集計・強いトランザクションが要るなら Bigtable ではなく Firestore / Cloud SQL / BigQuery を選ぶという使い分け
  • ホットスポットの発見には Key Visualizer、スループット不足はノード追加 / オートスケーリングで対処する
  • 相当する AWS サービスは DynamoDB(および Cassandra 互換の Amazon Keyspaces)。HBase 互換 API を持つ点も押さえる

関連サービス・比較

観点Cloud Bigtable(GCP)Amazon DynamoDB / Keyspaces(AWS)
データモデルワイドカラム(行キー + 列ファミリー)キーバリュー/ドキュメント(DynamoDB)、ワイドカラム(Keyspaces)
主キー行キー(辞書順ソート)パーティションキー + ソートキー
クエリ行キー一致 / 範囲スキャン中心キー検索 + GSI/LSI(DynamoDB)
スケール単位ノード数(線形に拡張)オンデマンド or プロビジョンドキャパシティ
課金の中心ノードの時間課金 + ストレージ読み書きキャパシティ/リクエスト + ストレージ
互換 APIHBase 互換 APIKeyspaces は Cassandra(CQL)互換
得意分野ペタバイト級・高スループット・低遅延サーバーレスで運用レス、可変負荷に強い

関連する Google Cloud サービスとしては、ドキュメント型でモバイル同期に強い Firestore、リレーショナルでグローバル整合の Cloud Spanner、分析用データウェアハウスの BigQuery があり、アクセスパターンと整合性要件で使い分けます。

ハンズオン / CLI例

# Bigtable API を有効化
gcloud services enable bigtable.googleapis.com bigtableadmin.googleapis.com

# SSD ストレージのインスタンスとクラスタを作成(ノード数を指定)
gcloud bigtable instances create my-instance \
  --display-name="My Bigtable" \
  --cluster-config=id=my-cluster,zone=us-central1-b,nodes=3 \
  --cluster-storage-type=SSD

# クラスタのオートスケーリングを有効化(ノード数を負荷に追従させる)
gcloud bigtable clusters update my-cluster \
  --instance=my-instance \
  --autoscaling-min-nodes=2 \
  --autoscaling-max-nodes=10 \
  --autoscaling-cpu-target=60

# cbt CLI でテーブルと列ファミリーを作成し、1 行書き込んで読む
cbt -instance=my-instance createtable user-events
cbt -instance=my-instance createfamily user-events activity
cbt -instance=my-instance set user-events "user123#20260614" activity:type=click
cbt -instance=my-instance read user-events

Google Cloud Service

Cloud Bigtableを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

データベース

比較で見る軸

クラウド: Google Cloud / カテゴリ: データベース / 難易度: intermediate

導入後に効く点

行キー設計が性能の要で、単調増加キーによるホットスポットを避ける。

先に潰すリスク

サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。

数字・仕様の読み方
クラウド
Google Cloud
カテゴリ
データベース
難易度
intermediate
関連資格
設計柱
performance / cost

判断チェックリスト

  • 自社の用途が「データベース / performance」に近いか確認する。
  • 強みである「大規模・高スループットでも一桁ミリ秒の低遅延を保つワイドカラム型 NoSQL。」が本当に評価軸になるか確認する。
  • 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

データベースperformancecost