Cloud Storage とは

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

Cloud Storage は、Google Cloud でオブジェクトを保存するためのサービスです。オブジェクトとは、任意の形式のファイルで構成される不変のデータのことです。オブジェクトをバケットと呼ばれるコンテナに保存します。すべてのバケットがプロジェクトに関連付けられ、組織のプロジェクトをグループ化できます。Compute Engine インスタンスと同様に、Google Cloud のそれぞれのプロジェクト、バケット、オブジェクトがリソースになります。

プロジェクトを作成したら、Cloud Storage バケットを作成してバケットにオブジェクトをアップロードできます。また、バケットからオブジェクトをダウンロードすることもできます。また、指定したプリンシパルがデータにアクセスするための権限を付与することや、特定のユースケース(ウェブサイトのホスティングなど)のために公共インターネット上で誰でもアクセスできるようにすることもできます。

Google Cloud の階層

Cloud Storage の構造は次のようになります。

Cloud Storage インフラストラクチャの図

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

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

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

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

  • オブジェクト: 個々のファイル(たとえば、puppy.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 などの任意の言語を使用してデータを管理できます。

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

  • Terraform: Terraform は Infrastructure as Code(IaC)ツールで、Cloud Storage のインフラストラクチャのプロビジョニングに使用できます。

データの保護

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

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

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

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

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

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

Cloud Storage のユースケース

静的ウェブサイトのホスティングを開始して、Cloud Storage バケットを介してサイトのファイルのアップロードや共有を行う方法を学習できます。他の Google Cloud サービス(ビッグデータ、ウェブ開発、機械学習、コンテナなど)と一緒に Cloud Storage を使用する方法については、Cloud Storage を使用する Google Cloud のチュートリアルをご覧ください。

リソース名

各リソースには、ファイル名のような固有の名前が付いています。バケットのリソース名の形式は 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 仮想マシンにブロック ストレージを追加します。
  • Storage Transfer Service: オンライン データを Cloud Storage に、または Cloud Storage バケット間ですばやくインポートします。
  • Filestore: ファイルベースのワークロードを作成します。

次のステップ