こちらの記事は弊社技術ブログに掲載していた内容となります。一部を除き、投稿当時の情報となりますので、紹介内容の最新情報については別途公式情報等をご参照下さい。こんにちは。クラウドエース編集部です。 こちらは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.特徴Google Cloud StorageGoogle 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 BigtableBigtable は、低レイテンシと高スループットのワークロードに最適なスケーラビリティの高い 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 DatastoreDatastore は、アプリケーションのバックエンドで使える、スケーラビリティの高いフルマネージド NoSQL データベースです。 シャーディング(データを複数のサーバに分散して格納)とレプリケーションを自動的に処理し、アプリケーションの負荷に合わせて自動的にスケールする、可用性と耐久性に優れたデータベースを提供します。 同じく自動でスケールする GAE のデータベースとして使われることが多いです。 Datastore は、 Bigtable のデータストア機能をベースに Bigtable に不足している機能を追加したデータストアです。 データはバイト配列に変換され、Bigtable に保存されます。ACIDトランザクション トランザクションはオプション機能です。 Bigtable では1行しかトランザクションがサポートできないことに比べ、Datastore では最大25行に対してオペレーションを実行できます。SQL ライクなクエリ Datastore はインデックスを利用して、指定した条件を満たすオブジェクトを取得できます。 ただし、部分文字列の一致、大文字と小文字を区別しない一致、全文検索をサポートしてない、というようなインデックスクエリを利用していることによる制限もあるので注意が必要です。インデックス Datastore のクエリは、1つ以上のインデックスを使用して結果を計算しています。 インデックスは、特定の種類のエンティティのプロパティを、各プロパティの対応する順序で並べたリストに対して定義されます。Google Cloud SQLGoogle 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 StorageGCS では、ストレージクラスに寄って利用料金が異なります。利用料金(GB/月)Multi-Regional$0.026 データの取得: 無料Regional$0.023* データの取得: 無料Nearline$0.016* データの取得: $0.01/GBColdline$0.01* データの取得: $0.05/GB*利用料金は東京リージョンで計算。Google Cloud BigtableBigtable は、次のように課金が発生します。・インスタンスのタイプとノード数料金本番環境インスタンスノードあたり $0.65/時間(最小 3 ノード) 各ノードは最大で 10,000 QPS および 10 MB/秒のデータ転送を処理します。開発インスタンス$0.65/時間・テーブルで利用しているストレージ量SSD ストレージ(GB/月)HDD ストレージ(GB/月)$0.17$0.026Google Cloud DatastoreDatastore には日単位で適用される無料の割り当てがあります。 それを超えた場合、以下の料金が発生します。1日あたりの無料枠無料枠を超えた場合の料金保存データ(GB/月)1 GB ストレージ$0.23エンティティの読み込み数 (/10万エンティティ)50,000$0.08エンティティの書き込み数 (/10万エンティティ)20,000$0.23エンティティの削除数 (/10万エンティティ)20,000$0.03小規模な操作無料無料*日本リージョンで利用した場合の金額です。Google Cloud SQLCloud 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 BigtableBigtable は非構造化キー / 値データ(それぞれの値のサイズが 10 MB 以下)を扱う、非常に高いスループットとスケーラビリティを必要とするアプリケーションに最適です。 また、MapReduce の一括オペレーション、ストリーム処理と分析、機械学習アプリケーションといった用途にも優れています。 Bigtable はリレーショナル データベースではありません。 したがって、SQL クエリや結合、さらには複数行トランザクションもサポートしていません。 ですので、ACID トランザクションのサポートが不要な場合、またはデータが高度に構造化されていない場合に向いています。 また、超大容量のデータ(数テラバイトまたは数ペタバイト)を比較的長期間にわたって処理する場合に性能を発揮します。 少量のデータ(1TB 未満)をほんの短い時間処理するのに適した設計にはなっていません。主なワークロードとしては以下です。IoT、ファイナンス、アドテックモニタリング地理空間データセットグラフGoogle Cloud DatastoreDatastore の利点は「サービス規模がどれだけ拡大しても自動的にスケールし処理速度が変化しない」ことにあります。(データ件数がそこまで多くない場合は、CloudSQL の方が、けた違いに高速に CRUD 処理や検索処理を実行できます。) Datastore は、スケーラブルで大規模な構造化データに依存するアプリケーションに適しています。 また、Google App Engine(GAE)のデータベースとして利用することが多いです。 GAE セットで使えば非常に簡単にオートスケールするアプリケーションを作ることが出来ます。主なワークロードとしては以下です。ユーザー プロフィールプロダクト カタログゲームデータGoogle Cloud SQLSQL を完全にサポートするオンライン トランザクション処理(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 認定トレーニングを提供しています! クラウドに関する相談、サービスに関するご質問等がありましたら、お気軽にご相談ください。