GCPのストレージについて
ストレージ種類
-
ストレージを選択する時主な考慮事項はアクセス時間です。
- ナノ秒(ns)、10⁻⁹秒
- マイクロ秒(us)、10⁻⁶秒
- ミリ秒(ms)、10⁻³秒
-
もう一つ考慮事項は永続性です。
- キャッシュでが、データアクセスのレイテンシが最短であるが、サーバーがシャットダウンしたら、データが失われる
- ディスクドライブの場合、耐久性は高いが、故障する可能性がある、この場合、冗長化でリスクが下げる
-
GCPのストレージサービスは以下通り。
- キャッシュ用のマネージドRedisキャッシュサービス
- MemorystoreとのマネージドRedisサービスです、1GB~30GBまで構成できる
- 仮想マシンで使用するための永続ディスクストレージ
- GCE,GKEの仮想マシンに接続永続ディスク
- 接続永続ディスクはSSD及びHDD構成で使用できる、いずれも64TBまで拡張できる。
- 高いスループットが重要の場合、SDDを選択する
- HDDではレイテンシが大きくなりますが、コストは下がる
- 永続ディスクのデータは自動暗号化される
- リソース全体でファイルへの共有アクセスを提供するオブジェクトストレージ
- CGPはCloud Storageとのオブジェクト ストレージサービスを提供する
- Cloud Storageに格納されるファイルは原子性をもつ単位で取扱われます。
- Cloud Storageは同時実行とロック機能はサポートされない。
- バケットはCloud Storageの組織論理単位です、バケット名はグローバルで一意でなければならない
- バケットはは実際のディレクトリーではないため、サブディレクトリーなの機能をサポートされない
- Cloud Storage Fuseを使用すると、ファイルシステムとして、バケットをマウントして
ファイルシステムコマンドを使用してファイルのアップロードとダウンロードすることができる
- 長期にわたる、頻度が低いアクセス要件に対応するアーカイブストレージ
- キャッシュ用のマネージドRedisキャッシュサービス
-
GCSの種別、以下通りである。
- Standard
- バケット作成する時、作成場所を指定して、バケットとその内容はこの場所に保存され、単一リージョン
または複数リージョンにデータを格納することができる、リージョンバケットはゾーン全体冗長する - データは頻繁に使用される場合、利用される、ファイルのアクセスやアップロードの時
- バケット作成する時、作成場所を指定して、バケットとその内容はこの場所に保存され、単一リージョン
- Nearline
- Coldline
- NearlineとColdlineはデータのアクセス頻度は低い時、使用される。
- Nearlineは想定されるのは月1回未満との設計です
- Coldlineは想定されるのは年1回以下との設計です
以下の図は
- Standard
-
バージョニングとライフサイクル
- バケットのバージョニングは有効にすると、ファイルは削除、上書きされるたびに、オブジェクトのコピーがアーカイブされる
- Cloud Storageには、ライフサイクル管理ポリシーも導入されている、このポリシーはルールの集合で、ルールには条件とアクションが含まれる
ストレージデータモデル
-
GCP上使えるデータモデルは以下のカテゴリーである
- オブジェクト
- GCS(Cloud Storage)
- リレーショナル
- Cloud SQL
- Cloud Spanner
- Cloud SQLとCloud Spannerなどのリレーショナルデータベースは、トランザクションをサポートする
- Cloud SQLはマネージドデータベースサービスであり、MySQLとPostgreSQLを提供する
Cloud SQLは水平拡張できないが、垂直拡張(メモリ、CPU)に拡張できる - Cloud Spannerはグローバルで分散する必要がある、かつデータ量が非常に多い時、全てのサーバーで整合性とトランザクションの完全性を保証するため使用される、Cloud SQLと比べて、大幅にコストが高くになる
- Cloud Spannerの構成では、インスタンス名、インスタンスID、Node数の指定は必須である
- BigQuery
- データウェアハウス及びアナリティクスアプリケーション向け設計されたサービスである
- BigQueryはマネージドサービスで、ストレージだけではなく、クエリ、統計、器械学習分析ツールも提供
- BigQueryを使用するには、まずデータを格納するデータセットを作成する。
- NoSQL
NoSQLデータベースはリレーショナルモデルを使用しないため、固定の構造やスキーマは必要なし- Cloud Datastore
- Datastoreはドキュメントデータベースであり、テキスト系のドキュメント保存ための意味ではなくドキュメントはキーと値のペアで構成される。
- Datastoreを使うため、Entityを作成する必要があり
- Cloud Filestore
- Cloud FilestoreはマネージドNoSQLデータベースであり、ドキュメントデータモデルを使用する
- Cloud Filestoreは分散されて、データを格納、同期、参照するために設定された
- Cloud Filestoreはトランザクションをサポートし、マルチリージョンのレプリケーションも実現
- BigTable
- Bigtableは別のNoSQLデータベースで、Datastoreと異なって、ドキュメント構造ではなく、列指向データベースです、多数の列を含むテーブルを格納する
- Bigtableはデータ量が多く、データの取り込みが高速で実行されるため設計されて、整合性ありかつサブミリ秒のレイテンシを実現する
- インスタンス名とIDを指定、本番モードまたは開発モードを選択できる、本番クラスタでは最低3つクNode
- Cloud Datastore
- オブジェクト
-
GCP上ストレージソリューション選択時のガイドライン
- 読み書きパターン
- 整合性
- トランザクションサポート
- コスト
- レイテンシ