主な用語

Cloud Storage を効果的に使用するには、サービスの基礎となるコンセプトをいくつか理解する必要があります。このページでは、Cloud Storage の主な用語とコンセプトについて説明します。

Cloud Storage の使用方法については、Console を使用したクイックスタートをご覧ください。

プロジェクト

Cloud Storage 内のデータはすべてプロジェクト内に属します。プロジェクトは、ユーザーのセット、API のセット、課金、認証、これらの API のモニタリング設定で構成されます。1 つのプロジェクトを持つことも複数のプロジェクトを持つこともできます。

バケット

バケットは、データを格納する基本的なコンテナです。Cloud Storage 内に保存するデータはすべてバケットに格納する必要があります。バケットは、データの整理やアクセス制御に使用できますが、ディレクトリやフォルダと異なり、入れ子構造にすることはできません。バケットの作成と削除には制限があるため、オブジェクト オペレーションを集中的に行ってバケット オペレーションを比較的少なくするようにストレージ アプリケーションを設計することをおすすめします。

バケットを作成するときに、グローバルに一意の名前、バケットとそのコンテンツを保存する地理的なロケーション、デフォルトのストレージ クラスを指定します。選択したデフォルトのストレージ クラスは、ストレージ クラスが明示的に指定されていないバケットに追加されたオブジェクトに適用されます。

バケットを作成した後も、デフォルトのストレージ クラスをバケットのロケーションでサポートされる任意のクラスに変更できます。ただし、バケット名とロケーションを変更するには、バケットを削除して再度作成する必要があります。

バケット名

すべてのバケットは Cloud Storage の 1 つの名前空間内に格納されるため、バケット名にはオブジェクト名よりも厳しい制約があり、グローバルに一意である必要があります。また、バケット名は CNAME リダイレクトで使用されることがあるため、DNS 命名規則に準拠する必要があります。詳しくは、バケットの命名ガイドラインをご覧ください。

バケットラベル

バケットラベルは、仮想マシン インスタンス永続ディスクなどの他の Google Cloud Platform リソースとともにバケットをグループ化できる Key-Value のメタデータペアです。たとえば、ラベルを使用して alphabetadelta の値を持つ team キーを作成し、team:alphateam:betateam:delta ラベルを異なるバケットに割り当てて、どのチームがそれらのバケットに関連付けられているかを示すことができます。

各バケットに複数のラベルを適用できます。バケットごとに最大 64 個のラベルを付けることができます。

  • キーと値は、それぞれ 63 文字以下にする必要があります。
  • キーと値に使用できるのは、小文字、数字、アンダースコア、ダッシュだけです。国際文字も使用可能。
  • ラベルのキーは小文字で始める必要があります。国際文字は使用できます。
  • ラベルのキーは空にできません。

請求でリソースの整理にラベルを使用する一般的な例については、BigQuery クエリへの請求のエクスポート例をご覧ください。

オブジェクト

オブジェクトとは、Cloud Storage 内に保存する個々のデータのことです。バケットで作成できるオブジェクトの数に制限はありません。

オブジェクトは、オブジェクト データオブジェクト メタデータという 2 つのコンポーネントで構成されます。オブジェクト データは通常、Cloud Storage に保存するファイルです。オブジェクト メタデータは、オブジェクトのさまざまな性質を記述した名前と値のペアの集合です。

オブジェクト名

オブジェクト名は、Cloud Storage のオブジェクト メタデータとして扱われます。オブジェクト名には任意の Unicode 文字(エンコーディングは UTF-8)を組み合わせて使用できます。オブジェクト名の長さは 1,024 バイト未満である必要があります。

オブジェクト名によく使用される文字としてスラッシュ(/)があります。スラッシュを使用すると、オブジェクトが複数の階層からなる構造の中に保存されているかのように見せることができます。たとえば、あるオブジェクトの名前を /europe/france/paris.jpg とし、別のオブジェクトの名前を /europe/france/cannes.jpg とすることができます。このような名前を付けたオブジェクトを列挙すると、オブジェクトが場所に基づく階層状のディレクトリ構造の中に保存されているかのように見えますが、実際には Cloud Storage では各オブジェクトはいかなる階層関係にもない独立したオブジェクトとして認識されます。

オブジェクトの名前変更などの詳細については、オブジェクトの命名ガイドラインをご覧ください。

オブジェクトのバージョンと世代番号

Cloud Storage のオブジェクトは複数のバージョンを持つことができます。デフォルトでは、オブジェクトを上書きすると、Cloud Storage は古いバージョンを削除して新しいバージョンに置き換えます。バケットでオブジェクトのバージョニングを有効にすると、上書きまたは削除が行われても古いバージョンがバケットに残ります。

オブジェクトの各バージョンは、オブジェクトのメタデータに含まれる世代番号によって一意に識別されます。オブジェクトのバージョニングによって古いバージョンのオブジェクトが作成されている場合は、世代番号を使用して古いバージョンを参照できます。そのため、バケット内の上書きされたオブジェクトを復元することも、不要になった古いオブジェクトのバージョンを完全に削除することもできます。世代番号は、リクエストに前提条件を含めるときにも使用されます。

リソース

リソースとは、Google Cloud Platform 内のエンティティです。Compute Engine インスタンスと同様に、Google Cloud Platform のそれぞれのプロジェクト、バケット、オブジェクトがリソースになります。

リソース名

各リソースには、ファイル名のような固有の名前が付いています。バケットのリソース名は projects/_/buckets/[BUCKET_NAME] で、[BUCKET_NAME] はバケットの ID です。オブジェクトのリソース名は projects/_/buckets/[BUCKET_NAME]/objects/[OBJECT_NAME] で、[OBJECT_NAME] はオブジェクトの ID です。

リソース名の末尾に付加される #[NUMBER] は、オブジェクトの特定の世代を示します。#0 は、オブジェクトの最新バージョンを示す特別な識別子です。#0 を追加することは、そのようにしないとオブジェクト名の最後の文字列が世代番号として解釈される場合に役立ちます。

地域的な冗長性

地理的に冗長なデータは、少なくとも 100 マイル離れている 2 つ以上の場所に保存されています。マルチリージョン ロケーションに保存されているデータは、そのストレージ クラスに関係なく地理的に冗長です。

地理的な冗長性は非同期的に発生しますが、どの Cloud Storage も、アップロードの直後に少なくとも 1 つの地理的な場所内で冗長性を維持します。

地理的な冗長性により、天災などの大規模な災害が発生した場合でも、データの可用性が最大限確保されます。デュアル リージョンのロケーションの場合、2 つの場所を使用することで地理的な冗長性を実現します。他のマルチリージョン ロケーションの場合は、特定のマルチリージョン内のデータセンターを組み合わせることで地理的な冗長性を実現します。リージョンのロケーションとして明示的に公開されていないデータセンターも使用できます。

データの不透明性

オブジェクトのデータ コンポーネントは、Cloud Storage に対して完全に不透明となります。つまり、データ コンポーネントは Cloud Storage には単なるデータのかたまりとしてしか認識されません。

オブジェクトの不変性

オブジェクトは不変です。具体的には、アップロードされたオブジェクトは、その保存期間が終わるまで変わることはありません。オブジェクトの保存期間とは、オブジェクトが作成(アップロード)された時点から、オブジェクトが削除された時点までを指します。つまり、後からオブジェクトに付加や切り捨てなどのオペレーションで部分的な変更を加えることはできません。ただし、Google Cloud Storage に保存されているオブジェクトを上書きすることは可能で、この上書きはアトミックに行われます。新しいアップロードが完了するまではオブジェクトの古いバージョンがリーダーに配信され、アップロードが完了すると、オブジェクトの新しいバージョンがリーダーに配信されます。したがって、上書きオペレーションを 1 回行うと、1 つの不変オブジェクトの保存期間が終了し、別の新たな不変オブジェクトの保存期間が開始することになります。

バケット内でのオブジェクトの作成または更新の間隔に制限はありません。ただし、同じオブジェクトの更新または上書きは、1 秒あたり 1 回しか実行できません。たとえば、バケット foo にオブジェクト bar がある場合、foo/bar の新しいコピーのアップロードは 1 秒あたり 1 回しか行えません。同じオブジェクトを 1 秒あたり 1 回以上の速さで更新すると、429 Too Many Requests エラーが発生する可能性があります。

失敗したリクエストは、切り捨て型指数バックオフを使用して再試行してください。

階層

Cloud Storage はフラットな名前空間を使用してオブジェクトを格納します。ただし、一部のツール(Google Cloud Platform Consolegsutil など)では、利便性のために、オブジェクトが仮想階層に保存されているかのように処理できます。

名前空間

Cloud Storage の名前空間は 1 つだけです。つまり、すべてのバケットにそれぞれ Cloud Storage 名前空間全体の中で一意の名前を付ける必要があります。オブジェクト名は、特定のバケット内でのみ一意であることが必要です。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。