Cloud Storage のプロダクト概要

このページでは、Cloud Storage の概要とその仕組みについて説明します。

Cloud Storage は、Google Cloudでオブジェクトを保存するためのサービスです。オブジェクトとは、任意の形式のファイルで構成される不変のデータのことです。オブジェクトはバケットと呼ばれるコンテナに保存されます。必要に応じて、フォルダを使用して、バケットに保存されたオブジェクトを整理できます。

バケットはすべていずれかのプロジェクトに関連付けられており、複数のプロジェクトを 1 つの組織にまとめることができます。Compute Engine インスタンスと同様に、 Google Cloud の各プロジェクト、バケット、マネージド フォルダ、オブジェクトが Google Cloudのリソースになります。

プロジェクトを作成したら、Cloud Storage バケットを作成してバケットにオブジェクトをアップロードできます。また、バケットからオブジェクトをダウンロードすることもできます。さらに、指定したプリンシパルにデータへのアクセス権を付与したり、公共のインターネット上で誰でもデータにアクセスできるようにすることもできます。

Google Cloud 階層

Cloud Storage 構造を実際に適用する方法は次のとおりです。

  • 組織: Example Inc. が exampleinc.org という Google Cloud組織を作成するとします。

  • プロダクト: Example Inc. は複数のアプリケーションを構築しており、各アプリケーションはプロジェクトに関連付けられます。各プロジェクトに独自の Cloud Storage API のセットと他のリソースがあります。

  • バケット: 各プロジェクトに、オブジェクトを格納するコンテナである複数のバケットを含めることが可能です。たとえば、アプリで生成するすべての画像ファイル用に photos バケットを作成し、別の videos バケットを作成するとします。

    • 階層型名前空間が有効なバケット: バケットで階層型名前空間を有効にできます。これにより、フォルダを使用して、データを論理ファイル システム構造に保存できます。フォルダの管理は、作成、削除、一覧表示、名前変更などのフォルダ固有のオペレーションを使用して行います。階層型名前空間が有効になっているバケットでは、階層型名前空間が有効になっていないバケットと比較して、オブジェクトの読み取りと書き込みの初期 QPS 上限が最大 8 倍になります。これは、分析や AI/ML ワークロードなどのデータ集約型のタスクに適しています。
  • オブジェクト: バケットには、puppy.png という名前の画像などのオブジェクトが含まれます。各バケットに格納できる個々のオブジェクトに実質的に制限はありません。

  • フォルダ: 階層型名前空間が有効になっているバケットにはフォルダを格納できます。フォルダを使用すると、シミュレートされたファイル システムではなく、オブジェクトを保存するための実際のファイル システムが有効になります。1 回のオペレーションで、フォルダとその中のすべてのオブジェクトの名前をアトミックに変更できます。

  • マネージド フォルダ: 各バケットには、バケットに設定された IAM 権限を超える追加のアクセス権を付与または取り消すマネージド フォルダを含めることもできます。マネージド フォルダは実際のディレクトリ ツリー構造を使用しません。マネージド フォルダは、権限チェックにのみ使用されるリソース オーバーレイです。

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 などの任意の言語を使用してデータを管理できます。

  • REST API: JSON または XML API を使用してデータを管理します。

  • Terraform: Terraform は Infrastructure as Code(IaC)ツールで、Cloud Storage のインフラストラクチャのプロビジョニングに使用できます。詳細については、Cloud Storage を使用してリソースをプロビジョニングするをご覧ください。

  • gRPC: gRPC を使用すると、Cloud Storage を操作できます。gRPC は、Google が開発した高パフォーマンスのオープンソース ユニバーサル RPC フレームワークです。gRPC では、プロトコル バッファを使用してサービスを定義できます。

  • Cloud Storage FUSE: Cloud Storage FUSE を使用すると、Cloud Storage バケットをローカル ファイル システムにマウントできます。これにより、標準のファイル システム セマンティクスを使用して、バケットからの読み取りやバケットへの書き込みを行うことができます。

データの保護

オブジェクトを Cloud Storage にアップロードすると、データの保護と共有の方法をきめ細かく制御できます。以下に、Cloud Storage にアップロードするデータを保護する方法をいくつか示します。

  • Identity and Access Management: IAM を使用して、 Google Cloud プロジェクトのリソースにアクセスできるユーザーを制御します。リソースには、Cloud Storage のバケットやオブジェクトのほか、Compute Engine インスタンスなどの Google Cloud エンティティも含まれます。プリンシパルにバケットやオブジェクトへの特定のアクセス権(たとえば、updatecreatedelete)を付与できます。

  • データの暗号化: Cloud Storage では、デフォルトでサーバー側での暗号化を使用してデータを暗号化します。また、顧客管理の暗号鍵顧客指定の暗号鍵など、追加のデータ暗号化オプションも使用できます。

  • 認証: データにアクセスするすべてのユーザーが適切な認証情報を持っていることを確認します。

  • 削除(復元可能): 最近削除されたオブジェクトとバケットを保持することで、偶発的または悪意のある削除でデータが完全に失われないようにします。Cloud Storage では、デフォルトですべてのバケットに対して削除(復元可能)が有効となり、保持期間は 7 日間です。

  • オブジェクトのバージョニング: オブジェクトのバージョニングを有効にすると、オブジェクトのライブ バージョンを置き換えるか削除する際に、そのオブジェクトを非現行バージョンとして保持できます。

  • バケット IP フィルタリング: バケット IP フィルタリングを使用すると、リクエストの送信元 IP アドレスに基づいてバケットへのアクセスを制限し、特定の IP アドレスまたは Virtual Private Cloud(VPC)による不正アクセスからデータを保護できます。

  • バケットロック: 保持ポリシーを指定して、バケット内のオブジェクトの保持期間を制御します。

リソース名

各リソースには、ファイル名のような固有の名前が付いています。バケットのリソース名の形式は 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 Managed Lustre: AI ワークロードと HPC ワークロード向けに最適化された、高パフォーマンスでフルマネージドの並列ファイル システムにデータを保存します。

  • Google ドライブ: 個人ファイルの保存、管理、共有を行います。

  • Cloud Storage for Firebase: モバイル アプリケーション用のデータを管理します。

  • Persistent Disk: Compute Engine 仮想マシンにブロック ストレージを追加します。

  • Filestore: GKE クラスタへのマルチライター アクセス用のファイル ストレージを追加します。

  • Googleが提供するその他のストレージ サービスを確認します。

次のステップ