はじめに
Google CloudのPCA(Professional Cloud Architect)認定資格取得に向けて学習した内容を自分なりに整理します。Google Cloudのサービスに限らず、それを扱う上での関連知識についても触れています。
本記事はStorage編ということで、下記の要素を扱います。
- ストレージ
- Cloud Storage
- Cloud Filestore
- Cloud Source Repositories
- データ転送
- Transfer Appliance
- Storage Transfer Service
この記事における「現在」や「最近」などの表現は、特に断らない限り2025年6月時点を指します
ストレージ
Cloud Storage
Google Cloudが提供するオブジェクトストレージサービス
- データは「バケット」単位で管理される
- バケットはグローバルに一意な名前を持つ
- 容量無制限、高耐久、高可用性
- コマンドでの操作は
gsutil
で行う
ストレージクラス
- Standard / Nearline / Coldline / Archive
- 後者のものほど保存料金は安くなるが取り出し料金は高くなる
- ライフサイクル管理: データのアクセス頻度に応じて自動的にストレージクラスを移動したり、削除したり出来る
- e.g. 90日間アクセスがないオブジェクトをColdlineに移行する、など
リージョン
- マルチリージョンストレージ(Multi-region)
- 複数の大陸内の複数のリージョンにまたがって自動的にレプリケーションされる
- リージョン単位の障害が発生しても、データの可用性と冗長性を維持できる
- 世界中にユーザーが居る場合、エンドユーザーへのアクセス高速化にも寄与する
- 単一のMulti-Regionalバケットは一つの大陸しかカバーしないため、グローバルアクセスするサービスは、複数のMulti-Regionalバケットへの配置が推奨される
- デュアルリージョンストレージクラス(Dual-region)
- データは2つの特定のリージョン間でレプリケーションされる
- マルチリージョンストレージと同等の可用性を保ちつつ、リージョンを詳細に指定したい場合に有用
- リージョナルストレージクラス
- データは単一のリージョン内の複数のゾーンにレプリケーションされる
- 特定のリージョン内でのソーン障害に対する高可用性が提供される
セキュリティ
暗号化
- 転送中の暗号化
- クライアントとCloud Storage間の転送はSSL/TLSを用いて暗号化される
- 保存中の暗号化
- 暗号化キーのオプション
- Google管理キー(GMEK: Google-managed encryption keys)
- 何も設定しなくても、自動的にGoogleが管理する暗号鍵(GMEK)が使われる
- デフォルトはこの管理方法であり、通常のユースケースはこれで十分
- カスタマー管理キー(CMEK: Customer-managed encryption keys)
- Cloud KMSを使用して暗号化キーを作成・管理する
- Cloud KMSを通じた鍵のローテーションや無効化などの管理が可能
- 鍵のライフサイクル制御、アクセス制御、監査ログ記録が可能
- セキュリティや監査の要件が厳しい場合に有効
- バケット単位の暗号化、またはオブジェクト単位でアップロード時の指定も可能
- Cloud KMSを使用して暗号化キーを作成・管理する
- カスタマー提供キー(CSEK: Customer-supplied encryption key)
- カスタマー自信が用意した暗号化キーを用いる。Cloud Storageには保存されない
- 鍵の管理などをすべて自分で行うことになるので、Google Cloudの推奨する管理方法ではない
- 主にレガシーなセキュリティ要件がある場合に利用される
- 鍵の設定はboto設定ファイルなどで保持する
- Google管理キー(GMEK: Google-managed encryption keys)
- 暗号化キーのオプション
データ保護
- バージョニング
- 上書き保存しても以前のバージョンのオブジェクトを取り出せる
- バケット単位でバージョニングを有効にできる
- バケットロック
- オブジェクトを一定期間、削除や変更不可の状態にする
- 署名付きURL
- 特定の操作に対して、特定の期間、アクセスを許可するURLを発行できる
- Googleアカウントなどの認証情報を持たないユーザーでもリソースに対する操作を行える
アクセス制御
- 「均一な管理」と「きめ細かい管理」
Cloud Filestore
POSIX互換のマネージド型NFSファイルストレージ
- 高いIOPS
- 低レイテンシ
- 高スケーラビリティ
Cloud Source Repositories
- Gitベースのコードリポジトリサービス
- GitHubのように、バージョン管理されたソースコードをホスティングするためのもの
- gsutil ではなく gcloud や git などのコマンドでアクセスする
データ転送
Transfer Appliance
- ネットワーク転送が困難な場合に大量のデータを物理的にGoogle Cloudへ送るための物理ハードウェア
- リクエストしてからデータがアップされるまでに1週間から10日程度かかる
- 金額も安価ではない
- ただネットワーク経由のアップロードはデータ破損のリスクもあるため、Google推奨の方法はこちら
- 数十テラバイトからペタバイト規模のデータ転送で使用される
- データ規模によっては、ネットワーク経由のほうが速いこともある
- コストや転送時間を最小限に抑えたいのであれば、ネットワーク経由
- gsutilコマンドを使用して転送する
- マルチスレッドで処理すれば処理時間の短縮も期待できる
- データ規模によっては、ネットワーク経由のほうが速いこともある
- 物理ハードウェアに保存されたデータは暗号化され、暗号化されたままアップロードされる
- Transfer Appliance RehydratorというCLIツールを使い、ユーザーのみが保持する鍵で復元する
- この仕組みにより、 Googleも中身を見ることができない
Storage Transfer Service
大規模データの転送や同期を行うためのマネージド型データ転送サービス
- 下記の目的に使用される
- AWS S3など、サードパーティのオブジェクトストレージからCloud Storageへの移行
- オンプレミスのファイルシステムからCloud Storageへの移行
- Storage Transfer Agentというツールを使用
- Cloud Storage同士で、リージョンをまたいだデータ再配置や複製
- 下記の機能が提供される
- スケジュール実行
- 差分転送
- 失敗時のリトライやログ取得
- IAMによるアクセス制御