このページでは、Cloud Storage の概要とその仕組みについて説明します。
Cloud Storage は、Google Cloud でオブジェクトを保存するためのサービスです。オブジェクトとは、任意の形式のファイルで構成される不変のデータのことです。オブジェクトをバケットと呼ばれるコンテナに保存します。バケットにマネージド フォルダを含めることもできます。このフォルダを使用すると、共有の名前接頭辞を持つオブジェクトのグループにアクセスできます。
バケットはすべていずれかのプロジェクトに関連付けられており、複数のプロジェクトを 1 つの組織にまとめることができます。Compute Engine インスタンスと同様に、Google Cloud のそれぞれのプロジェクト、バケット、マネージド フォルダ、オブジェクトがリソースになります。
プロジェクトを作成したら、Cloud Storage バケットを作成してバケットにオブジェクトをアップロードできます。また、バケットからオブジェクトをダウンロードすることもできます。さらに、指定したプリンシパルにデータへのアクセス権を付与したり、公共のインターネット上で誰でもデータにアクセスできるようにしたりすることもできます。
Google Cloud の階層
Cloud Storage 構造を実際に適用する方法は次のとおりです。
組織: Example Inc. が
exampleinc.org
という Google Cloud 組織を作成するとします。プロダクト: Example Inc. は複数のアプリケーションを構築しており、各アプリケーションはプロジェクトに関連付けられます。各プロジェクトに独自の Cloud Storage API のセットと他のリソースがあります。
バケット: 各プロジェクトに、オブジェクトを格納するコンテナである複数のバケットを含めることが可能です。たとえば、アプリで生成するすべての画像ファイル用に
photos
バケットを作成し、別のvideos
バケットを作成するとします。オブジェクト: 各バケットに格納できるオブジェクトに実質的に制限はありません。たとえば、
puppy.png
という画像を含めることができます。マネージド フォルダ: 各バケットには複数の管理フォルダを含めることができます。バケット全体に付与されているアクセス権を超えるアクセス権を追加することもできます。この追加のアクセス権は、マネージド フォルダ名と一致する接頭辞を持つオブジェクトに適用されます。たとえば、
animals/
というマネージド フォルダを作成して、指定したユーザーにanimals/puppy.png
やanimals/kitten.png
などのオブジェクトへの追加アクセス権を付与できます。
Cloud Storage の基本ツール
以下に、Cloud Storage の基本的な操作方法をいくつか示します。
コンソール: Google Cloud コンソールには、ブラウザでデータを管理するためのビジュアル インターフェースが用意されています。
Google Cloud CLI: gcloud CLI を使用すると、
gcloud storage
コマンドを使用してターミナルから Cloud Storage を操作できます。クライアント ライブラリ: Cloud Storage クライアント ライブラリでは、C++、C#、Go、Java、Node.js、PHP、Python、Ruby などの任意の言語を使用してデータを管理できます。
Terraform: Terraform は Infrastructure as Code(IaC)ツールで、Cloud Storage のインフラストラクチャのプロビジョニングに使用できます。
Cloud Storage FUSE: Cloud Storage FUSE を使用すると、Cloud Storage バケットをローカル ファイル システムにマウントできます。これにより、標準のファイル システム セマンティクスを使用して、バケットからの読み取りやバケットへの書き込みを行うことができます。
データの保護
オブジェクトを Cloud Storage にアップロードすると、データの保護と共有の方法をきめ細かく制御できます。以下に、Cloud Storage にアップロードするデータを保護する方法をいくつか示します。
Identity and Access Management: IAM を使用すると、Google Cloud プロジェクトのリソースにアクセスするユーザーを制御できます。リソースには、他の Google Cloud エンティティ(Cloud Storage のバケットやオブジェクト、Compute Engine インスタンスなど)が含まれます。プリンシパルにバケットやオブジェクトへの特定のアクセス権(たとえば、
update
、create
、delete
)を付与できます。データの暗号化: Cloud Storage では、デフォルトでサーバー側での暗号化を使用してデータを暗号化します。また、顧客管理の暗号鍵や顧客指定の暗号鍵など、追加のデータ暗号化オプションも使用できます。
認証: データにアクセスするすべてのユーザーが適切な認証情報を持っていることを確認します。
バケットロック: 保持ポリシーを指定して、バケット内のオブジェクトの保持期間を制御します。
削除(復元可能): 最近削除されたオブジェクトを保持することで、偶発的または悪意のある削除からデータが完全に失われることを防ぎます。Cloud Storage では、デフォルトですべてのバケットに対して削除(復元可能)が有効となり、保持期間は 7 日間です。
オブジェクトのバージョニング: オブジェクトのバージョニングを有効にすると、オブジェクトのライブ バージョンを置き換えるか削除する際に、そのオブジェクトを非現行バージョンとして保持できます。
リソース名
各リソースには、ファイル名のような固有の名前が付いています。バケットのリソース名の形式は projects/_/buckets/BUCKET_NAME
です。ここで、BUCKET_NAME
はバケットの ID です。オブジェクトのリソース名の形式は projects/_/buckets/BUCKET_NAME/objects/OBJECT_NAME
です。ここで、OBJECT_NAME
はオブジェクトの ID です。
リソース名の末尾に付加される #NUMBER
は、オブジェクトの特定の世代を示します。#0
は、オブジェクトの最新バージョンを示す特別な識別子です。#0
を追加することは、そのようにしないとオブジェクト名の最後の文字列が世代番号として解釈される場合に役立ちます。
クイックスタート ガイド
Cloud Storage の基本的な使い方については、次のガイドをご覧ください。
他のプロダクトをお探しですか?
Cloud Storage が適切なストレージ ソリューションでない場合は、次のストレージ サービスの詳細をご確認ください。
- Google ドライブ: 個人ファイルの保存、管理、共有を行います。
- Cloud Storage for Firebase: モバイル アプリケーション用のデータを管理します。
- Persistent Disk: Compute Engine 仮想マシンにブロック ストレージを追加します。
- Filestore: GKE クラスタへのマルチライター アクセス用のファイル ストレージを追加します。
次のステップ
- Google Cloud コンソール または Google Cloud CLI を使用して Cloud Storage の基礎を学習する。
- Cloud Storage を使用した Google Cloud チュートリアルを確認する。
- クライアント ライブラリを使ってみる。
- Storage Transfer Service を使用して、オンライン データの Cloud Storage へのインポートまたは Cloud Storage バケット間でのインポートをすばやく行う。