これにより数TB、数PBのデータを格納できます。可用性の高さも特徴的で、テーブルにデータを書き込むと3台以上のサーバーに複製されます。仕組みをイメージする理解が深まるので図で表してみます。下の図のように、Bigtableを利用する時、クライアントからのリクエストは、フロントエンドサーバーを経由してBigtableノードに送信されます。(Bigtableノード>Bigtableクラスタ>Bigtableインスタンス)。各ノードはクラスタに対するリクエストの一部を処理するので、クラスタにノードを追加すると処理できるリクエスト数が増えます。Bigtableのテーブルは内部的に複数の「タブレット」に分割され、タブレットはGoogleのファイルシステムに格納されます。各タブレットは個々のBigtableノードに関連付けられます。データはノード自体に保存されるのではなく、各ノードがタブレットのセットに対するポインタを保持しています。そのため、以下が実現されます。ノード間のタブレット移動(再調整)が極めて高速になる。→実データがコピーされず、各ノードのポインタを更新するだけ。ノードの障害復旧が極めて高速になる。→置換先の新しいノードにメタデータのみを移動すれば済むため。ノードで障害が発生してもデータが失われることはない。使用するときには、Bigtableインスタンスを作成します。デフォルトでは3ノードとなっていますが、ノードを追加してスループットとQPS(1秒あたりのクエリ数)の容量を増やすこともできます。Bigtableでは、大規模にスケーラブルなテーブルにデータが格納されます。テーブルは行と列で構成されていて、各行の単一の値がインデックスに登録され、この値が行のkeyになります。keyでスキャンすることはできますが、カラム名でスキャンすることはできません。トランザクションは行単位に限定した処理しかサポートされていません。整合性を確保する範囲を限定することでスケーラブルにサービスを提供します。■パフォーマンス全てが問題なく動作している場合、ノードあたりのパフォーマンスイメージです。負荷及び表の各行のサイズに応じて変わる可能性があります。シャーディング(データを複数のサーバに分散して格納)とレプリケーションを自動的に処理し、アプリケーションの負荷に合わせて自動的にスケールする、可用性と耐久性に優れたデータベースを提供します。自動でスケールするGAEのデータベースとして使われることが多いです。Datastoreは、Bigtableのデータストア機能をベースにBigtableに不足している機能を追加したデータストアです。データはバイト配列に変換され、Bigtableに保存されます。ACIDトランザクショントランザクションはオプション機能です。Bigtableでは1行しかトランザクションがサポートできないことに比べ、Datastoreでは最大25行に対してオペレーションを実行できます。SQLライクなクエリDatastoreはインデックスを利用して、指定した条件を満たすオブジェクトを取得できます。部分文字列の一致、大文字と小文字を区別しない一致、全文検索をサポートしてない、というようなインデックスクエリを利用していることによる制限もあるので注意が必要です。インデックスDatastoreのクエリは、1つ以上のインデックスを使用して結果を計算しています。インデックスは、特定の種類のエンティティのプロパティを、各プロパティの対応する順序で並べたリストに対して定義されます。PostgreSQL(ベータ版)のデータベースを提供しています。インスタンスが提供する機能とほとんど同じです。IOPS、1インスタンスにつき208GBのRAMを提供します。バックアップ、レプリケーション、パッチ、アップデートはGoogle側で自動的に行われます。GCEののインスタンスを利用しているので、ライブマイグレーションにより高い可用性を確保できます。GCEやGAEなどのGCPサービスと簡単に連携できます。・Multi-Regional(米国/EU/アジア)・Regional(米国/EU/アジア)の2タイプが選択可能。・Multi-Regional(米国/EU)・Regional(米国/EU/アジア)の2タイプが選択可能。各サービスを利用した場合、本来は各ストレージの利用料だけではなく、ネットワーク利用料も発生しますが、今回はネットワーク利用料は外して考えます。StorageGCSでは、ストレージクラスに寄って利用料金が異なります。$0.05/GB*利用料金は東京リージョンで計算。BigtableBigtableは、次のように課金が発生します。MB/秒のデータ転送を処理します。DatastoreDatastoreには日単位で適用される無料の割り当てがあります。それを超えた場合、以下の料金が発生します。無料*日本リージョンで利用した場合の金額です。以下の料金が発生します。分ごとに課金されます。Engineに基づきます。日本リージョンでの料金はマシンタイプに寄って異なりますが、下のようになります。日本リージョンの場合、以下のストレージ利用料が発生します。格納する必要がある場合の利用に適しています。主なワークロードとしては以下です。以下)を扱う、非常に高いスループットとスケーラビリティを必要とするアプリケーションに最適です。一括オペレーション、ストリーム処理と分析、機械学習アプリケーションといった用途にも優れています。データベースではありません。クエリや結合、さらには複数行トランザクションもサポートしていません。トランザクションのサポートが不要な場合、またはデータが高度に構造化されていない場合に向いています。超大容量のデータ(数テラバイトまたは数ペタバイト)を比較的長期間にわたって処理する場合に性能を発揮します。未満)をほんの短い時間処理するのに適した設計にはなっていません。主なワークロードとしては以下です。DatastoreDatastoreの利点は「サービス規模がどれだけ拡大しても自動的にスケールし処理速度が変化しない」ことにあります。(データ件数がそこまで多くない場合は、CloudSQLの方が、けた違いに高速にCRUD処理や検索処理を実行できます。スケーラブルで大規模な構造化データに依存するアプリケーションに適しています。Engine(GAE)のデータベースとして利用することが多いです。GAEセットで使えば非常に簡単にオートスケールするアプリケーションを作ることが出来ます。主なワークロードとしては以下です。データベースが必要な場合に向いています。MySQLやPostgreSQLを利用しているアプリケーションを、GCPへ移行する際にも利用できます。主なワークロードとしては以下です。イメージの観点からまとめてみました。それぞれの特徴を掴み、GCP上でサービスを作るときのストレージ選択のお手伝いができれば嬉しいです!次回はGCPのコンピュートサービスについてまとめ記事を書く予定ですので、お楽しみに。Ace)というGCPの導入・運用支援サービスを提供しておりますので、ご興味のある方はこちらまでお問い合わせください。GAEに限らず、あらゆるGCPサービスのサポートが可能です。