GCPのストレージサービスについてまとめてみた

  • Google Cloudに関する記事
12min
こちらの記事は弊社技術ブログに掲載していた内容となります。一部を除き、投稿当時の情報となりますので、紹介内容の最新情報については別途公式情報等をご参照下さい。

こんにちは。クラウドエース編集部です。
こちらは2年前のブログ記事となっていますので、Google Cloud(旧Google Cloud Platform / GCP)とAWSの最新版のサービス比較や値段が気になる場合は、下記の【最新版】AWS・GCP・Azure 3大クラウドサービス 比較表をご覧いただくことをおすすめいたします。
【最新版】AWS・GCP・Azure 3大クラウドサービス 比較表

~Google Cloud Architect取得への道~

「Google Cloud Architect取得への道」第3回です!
今回はGoogle Cloud Platform(以下、GCP)のストレージサービスについてご紹介します。

GCPには様々なストレージサービスがあります。
それぞれのイメージを掴みづらいと感じたので、Google Cloud Storage / Datastore / Bigtable / Cloud SQL の4つのサービスについてまとめてみました。

以下の3つのテーマで書いていきます。

  1. 特徴
  2. 利用料金
  3. 利用イメージ

1.特徴

Google Cloud Storage

Google Cloud Storage(以下、GCS)は、オブジェクトストレージです。
管理がシンプルで、高耐久性、高可用性のストレージを提供します。

利用するためにサービスの概念を知る必要があります。

  • GCP プロジェクト:課金設定の単位
  • バケット:ファイルを格納するコンテナ
  • オブジェクト:格納されるファイル


データを格納するバケットを作成し、作成時にバケット名、データを保存する場所、バケットのデフォルトのストレージクラスを指定します。(後で、オブジェクトごとのストレージクラスの変更も可能です。)

GCS には4つのストレージクラスがあります。
クラスによって、可用性、最小保存期間、利用料金が異なります。

可用性最小保存期間利用料金(GB/月)アクセス頻度(イメージ)
Multi-Regional99.95%なし$0.026
データの取得: 無料
頻繁、リージョン間
Regional99.9%なし$0.023*
データの取得: 無料
頻繁、リージョン内
Nearline99.0%30日$0.016*
データの取得: $0.01/GB
月に1回程度
Coldline99.0%90日$0.01*
データの取得: $0.05/GB
年に1回程度

*利用料金は東京リージョン(asia-northeast1)で計算。

また、どのクラスも共通して以下をサポートしています。

  • 同じツールと API を使用したデータへのアクセス
    (XML API、JSON API、gsutil ツール、GCP Console、クライアント ライブラリ)
  • 同じ OAuth と詳細なアクセス制御によるデータの保護
  • 高い耐久性(99.999999999%(イレブン9)の持続性が維持されるように設計されている。)
  • 低レイテンシ(最初のバイトの転送時間は一般的に数十ミリ秒)
  • 保存時の暗号化を使用した同じデータ セキュリティ

■パフォーマンス
バケットの初期の IO 容量は、およそ毎秒 1,000 件の書き込みリクエストと 5,000 件の読み取りリクエストです。
これは、1 MB のオブジェクトについて 1 か月の平均が 2.5 PB の書き込みと 13 PB の読み取りになります。
特定のバケットのリクエスト レートが増加すると、Cloud Storage は複数のサーバーにリクエストの負荷を分散して、そのバケットの IO 容量を自動的に増やします。

■アクセス制御
GCS のアクセス制御は知っておく必要があります。以下のオプションを組み合わせて使えます。

  • IAM権限
    プロジェクトのすべてのバケットとオブジェクトに対するアクセスを許可します。
    IAM の権限ではプロジェクトに対する幅広い制御が可能ですが、個々のバケットやオブジェクトを細かく制御することはできません。
  • アクセス制御リスト(ACL)
    個々のバケットやオブジェクトへの読み取りまたは書き込みアクセスを許可します。
    ACL は、個々のリソースを細かく制御する必要がある場合にのみ使用します。
  • 署名付きURL
    生成した URL を通じて、オブジェクトへの制限時間付きの読み取りまたは書き込みアクセスを許可します。
    URL を共有する全員が、Google アカウントを持っているかどうかにかかわらず、指定した時間にオブジェクトにアクセスできます。
  • 署名付きポリシードキュメント
    バケットにアップロードできる内容を指定します。
    ポリシー ドキュメントでは、サイズ、コンテンツタイプなどのアップロード特性を、署名付き URL よりも細かく制御でき、ウェブサイトの所有者が、訪問者に GCS へのファイルのアップロードを許可するために使うことができます。

Google Cloud Bigtable

Bigtable は、低レイテンシと高スループットのワークロードに最適なスケーラビリティの高い NoSQL データベースです。
散在して格納されているテーブルであり、数十億行、数千列の規模に拡張可能です。
これにより数TB、数PBのデータを格納できます。可用性の高さも特徴的で、テーブルにデータを書き込むと3台以上のサーバーに複製されます。

仕組みをイメージする理解が深まるので図で表してみます。
下の図のように、Bigtable を利用する時、クライアントからのリクエストは、フロントエンドサーバーを経由して Bigtable ノードに送信されます(Bigtable ノード> Bigtable クラスタ> Bigtable インスタンス) 。
各ノードはクラスタに対するリクエストの一部を処理するので、クラスタにノードを追加すると処理できるリクエスト数が増えます。

Bigtable のテーブルは内部的に複数の「タブレット」に分割され、タブレットは Google のファイルシステムに格納されます。
各タブレットは個々の Bigtable ノードに関連付けられます。
データはノード自体に保存されるのではなく、各ノードがタブレットのセットに対するポインタを保持しています。
そのため、以下が実現されます。

  • ノード間のタブレット移動(再調整)が極めて高速になる。
    →実データがコピーされず、各ノードのポインタを更新するだけ。
  • ノードの障害復旧が極めて高速になる。
    →置換先の新しいノードにメタデータのみを移動すれば済むため。
  • ノードで障害が発生してもデータが失われることはない。


使用するときには、Bigtable インスタンスを作成します。
デフォルトでは3ノードとなっていますが、ノードを追加してスループットとQPS(1秒あたりのクエリ数)の容量を増やすこともできます。
Bigtable では、大規模にスケーラブルなテーブルにデータが格納されます。
テーブルは行と列で構成されていて、各行の単一の値がインデックスに登録され、この値が行のkeyになります。
keyでスキャンすることはできますが、カラム名でスキャンすることはできません。
また、トランザクションは行単位に限定した処理しかサポートされていません。
整合性を確保する範囲を限定することでスケーラブルにサービスを提供します。

■パフォーマンス
全てが問題なく動作している場合、ノードあたりのパフォーマンスイメージです。
負荷及び表の各行のサイズに応じて変わる可能性があります。

読み取り書き込みスキャン
SSD10,000 QPS*
@ 6 ミリ秒
10,000 QPS
@ 6 ミリ秒
220 MB/秒
HDD500 QPS
@ 200 ミリ秒
10,000 QPS
@ 50 ミリ秒
180 MB/秒

*1 秒あたりのクエリ数(Query Per Second)

Google Cloud Datastore

Datastore は、アプリケーションのバックエンドで使える、スケーラビリティの高いフルマネージド NoSQL データベースです。
シャーディング(データを複数のサーバに分散して格納)とレプリケーションを自動的に処理し、アプリケーションの負荷に合わせて自動的にスケールする、可用性と耐久性に優れたデータベースを提供します。
同じく自動でスケールする GAE のデータベースとして使われることが多いです。
Datastore は、 Bigtable のデータストア機能をベースに Bigtable に不足している機能を追加したデータストアです。
データはバイト配列に変換され、Bigtable に保存されます。

  • ACIDトランザクション
    トランザクションはオプション機能です。
    Bigtable では1行しかトランザクションがサポートできないことに比べ、Datastore では最大25行に対してオペレーションを実行できます。
  • SQL ライクなクエリ
    Datastore はインデックスを利用して、指定した条件を満たすオブジェクトを取得できます。
    ただし、部分文字列の一致、大文字と小文字を区別しない一致、全文検索をサポートしてない、というようなインデックスクエリを利用していることによる制限もあるので注意が必要です。
  • インデックス
    Datastore のクエリは、1つ以上のインデックスを使用して結果を計算しています。
    インデックスは、特定の種類のエンティティのプロパティを、各プロパティの対応する順序で並べたリストに対して定義されます。

Google Cloud SQL

Google Cloud SQL は、GCP 上に構築されたフルマネージドの My SQL と PostgreSQL(ベータ版)のデータベースを提供しています。
Cloud SQL インスタンスが提供する MySQL 機能は、ローカルにホストされた MySQL インスタンスが提供する機能とほとんど同じです。
Cloud SQL は高パフォーマンスかつスケーラブルで、最大10TBのストレージ容量、25000 IOPS、1インスタンスにつき208GBの RAM を提供します。
バックアップ、レプリケーション、パッチ、アップデートはGoogle側で自動的に行われます。
GCE ののインスタンスを利用しているので、ライブマイグレーションにより高い可用性を確保できます。
また、GCE や GAE などの GCP サービスと簡単に連携できます。

特徴まとめ

Cloud StorageBigtableDatastoreCloud SQL
ストレージ
タイプ
オブジェクト(BLOB)ストアNo SQL、ワイドカラムNo SQL、ドキュメントリレーショナル SQL
格納する
データ型
バイナリデータ、オブジェクトデータRAW バイト文字列整数、浮動小数点数、文字列、日付、バイナリデータ整数、浮動小数点数、文字列、日付、バイナリ、BLOB型など、MySQLが対応するデータ型
レイテンシ約5ミリ秒未満
(同じリージョン内のロケーションのネットワークレイテンシの場合)
トランザクション
管理
××
データの
保存地域
・Multi-Regional
(米国/EU/アジア)
・Regional
(米国/EU/アジア)
の2タイプが選択可能。
zoneのみ選択。
(米国/EU/アジア)
・Multi-Regional
(米国/EU)
・Regional
(米国/EU/アジア)
の2タイプが選択可能。
Regional
(米国/EU/アジア)
とzoneを選ぶ
東京リージョンが
選択できる
×
(アジアでは台湾のみ)
複雑なクエリ×××
データの
暗号化

2.利用料金

各サービスを利用した場合、本来は各ストレージの利用料だけではなく、ネットワーク利用料も発生しますが、今回はネットワーク利用料は外して考えます。

Google Cloud Storage

GCS では、ストレージクラスに寄って利用料金が異なります。

利用料金(GB/月)
Multi-Regional$0.026
データの取得: 無料
Regional$0.023*
データの取得: 無料
Nearline$0.016*
データの取得: $0.01/GB
Coldline$0.01*
データの取得: $0.05/GB

*利用料金は東京リージョンで計算。

Google Cloud Bigtable

Bigtable は、次のように課金が発生します。

・インスタンスのタイプとノード数

料金
本番環境インスタンスノードあたり $0.65/時間(最小 3 ノード)
各ノードは最大で 10,000 QPS および
10 MB/秒のデータ転送を処理します。
開発インスタンス$0.65/時間

・テーブルで利用しているストレージ量

SSD ストレージ(GB/月)HDD ストレージ(GB/月)
$0.17$0.026

Google Cloud Datastore

Datastore には日単位で適用される無料の割り当てがあります。
それを超えた場合、以下の料金が発生します。

1日あたりの無料枠無料枠を超えた場合の料金
保存データ(GB/月)1 GB ストレージ$0.23
エンティティの読み込み数
(/10万エンティティ)
50,000$0.08
エンティティの書き込み数
(/10万エンティティ)
20,000$0.23
エンティティの削除数
(/10万エンティティ)
20,000$0.03
小規模な操作無料無料

*日本リージョンで利用した場合の金額です。

Google Cloud SQL

Cloud SQL では以下の料金が発生します。

・インスタンス利用料
インスタンスが実行している間、1 分ごとに課金されます。
課金額はマシンタイプに寄って異なり、マシンタイプは Google Compute Engine に基づきます。
日本リージョンでの料金はマシンタイプに寄って異なりますが、下のようになります。

標準利用料100%の継続使用割引付き
600 MB~208 GB RAM$0.0195 – $5.2312 /時間$0.0137 – $3.6618 /時間
例:1CPU、メモリ3.75GMの
「db-n1-standard-1」のマシンタイプ
$0.1255/時間$0.0878/時間

・ストレージ利用料
日本リージョンの場合、以下のストレージ利用料が発生します。

SSD$0.22 /GB・月
HDD$0.12 /GB・月
バックアップ$0.10 /GB・月

利用料金まとめ

Cloud StorageBigtableDatastoreCloud SQL
データ保存(GB/月)
  • $0.026
    (Multi-Regional)
  • $0.023
    (Regional)
  • $0.016
    (Nearline)
  • $0.01
    (Coldline)
  • $0.17 (SSD)
  • $0.026 (HDD)
$0.23
無料利用枠あり
  • $0.22 (SSD)
  • $0.12 (PD Standard)
  • $0.10 (backups)
読み込み
  • $0.01(Nearline)
  • $0.05(Coldline)
なし$0.08(/10 万エンティティ)
無料枠あり
なし
書き込みなしなし$0.23(/10 万エンティティ)
無料枠あり
なし
インスタンス(/時間)なし$0.65なし$0.0195 – $5.2312(日本)

3.利用イメージ

Google Cloud Storage

大容量の画像やムービーなど、10 MB の超える大規模な不変 blob を格納する必要がある場合の利用に適しています。

主なワークロードとしては以下です。

  • マルチメディアの保存とストリーミング
  • カスタムデータ分析パイプライン用のストレージ
  • アーカイブ、バックアップ、ディザスタ リカバリ

Google Cloud Bigtable

Bigtable は非構造化キー / 値データ(それぞれの値のサイズが 10 MB 以下)を扱う、非常に高いスループットとスケーラビリティを必要とするアプリケーションに最適です。
また、MapReduce の一括オペレーション、ストリーム処理と分析、機械学習アプリケーションといった用途にも優れています。
Bigtable はリレーショナル データベースではありません。
したがって、SQL クエリや結合、さらには複数行トランザクションもサポートしていません。
ですので、ACID トランザクションのサポートが不要な場合、またはデータが高度に構造化されていない場合に向いています。
また、超大容量のデータ(数テラバイトまたは数ペタバイト)を比較的長期間にわたって処理する場合に性能を発揮します。
少量のデータ(1TB 未満)をほんの短い時間処理するのに適した設計にはなっていません。

主なワークロードとしては以下です。

  • IoT、ファイナンス、アドテック
  • モニタリング
  • 地理空間データセット
  • グラフ

Google Cloud Datastore

Datastore の利点は「サービス規模がどれだけ拡大しても自動的にスケールし処理速度が変化しない」ことにあります。(データ件数がそこまで多くない場合は、CloudSQL の方が、けた違いに高速に CRUD 処理や検索処理を実行できます。)
Datastore は、スケーラブルで大規模な構造化データに依存するアプリケーションに適しています。
また、Google App Engine(GAE)のデータベースとして利用することが多いです。
GAE セットで使えば非常に簡単にオートスケールするアプリケーションを作ることが出来ます。

主なワークロードとしては以下です。

  • ユーザー プロフィール
  • プロダクト カタログ
  • ゲームデータ

Google Cloud SQL

SQL を完全にサポートするオンライン トランザクション処理(OLTP)システム向けのリレーショナル データベースが必要な場合に向いています。
また、すでに MySQL や PostgreSQL を利用しているアプリケーションを、GCP へ移行する際にも利用できます。

主なワークロードとしては以下です。

  • ウェブサイト、ブログ、コンテンツ管理システム(CMS)
  • ビジネス インテリジェンス(BI)アプリケーション
  • ERP、CRM、e コマース アプリケーション
  • 地理空間アプリケーション

最後に

いかがでしたでしょうか?
今回は、GCP の4つのストレージサービスについて、特徴、料金、利用イメージの観点からまとめてみました。
それぞれの特徴を掴み、GCP 上でサービスを作るときのストレージ選択のお手伝いができれば嬉しいです!

次回は GCP のコンピュートサービスについてまとめ記事を書く予定ですので、お楽しみに。

また、記事冒頭でもご紹介しました【最新版】AWS・GCP・Azure 3大クラウド比較表では、2021年4月版のGoogle Cloudのストレージサービスの比較をご覧いただけます。
Google Cloud を含めた、AWS や Azure プロダクトとの対応表となっていますので、他クラウドとのストレージサービスと比較検討されたい方にもおすすめです。
すでに1万人以上の方に読まれている人気資料となっていますので、貴社と相性のストレージサービスをお探しの場合はぜひご活用ください!

【最新版】AWS・GCP・Azure 3大クラウドサービス 比較表

クラウドエースは、クラウドの導入設計から運用・保守までをワンストップでサポートをする Google Cloud™ を専門としたクラウドインテグレーターです。
Google Cloud の全サービスが3% OFFになる総合支援サービスをはじめ、コンサルティング、システム開発、Google Cloud 認定トレーニングを提供しています!
クラウドに関する相談、サービスに関するご質問等がありましたら、お気軽にご相談ください。

合わせて読みたい