このページでは、Cloud Storage リソースであるバケットについて説明します。Cloud Storage の一般的な概要については、Cloud Storage プロダクトの概要をご覧ください。
バケット
バケットは、データをオブジェクトとして保持する基本的なコンテナです。Cloud Storage 内に保存するデータはすべてバケットに格納する必要があります。バケットは、データの整理やアクセスの制御に使用できますが、ディレクトリやフォルダと異なり、入れ子構造にはできません。
プロジェクトまたはロケーション内のバケット数に上限はありません。
バケットを作成するときに、グローバルに一意の名前と、バケットとそのコンテンツを保存する地理的位置を指定します。
- 既存のバケットの名前は変更できません。代わりに、必要な名前を持つ新しいバケットを作成し、古いバケットから新しいバケットにコンテンツを移動できます。詳しい手順については、バケットの移動と名前の変更をご覧ください。
- 料金(データ ストレージ、データ処理、ネットワーク アウトバウンド データ転送など)は、バケットのロケーションやバケット内のオブジェクトのストレージ クラスなどの要因によって異なります。詳しくは、Cloud Storage の料金をご覧ください。
- Identity and Access Management(IAM)を使用して、個々のバケットへのアクセスを制御できます。
バケット名
バケット名は次の要件を満たす必要があります。
- バケット名には、英小文字、数字、ハイフン(
-
)、アンダースコア(_
)、ドット(.
)のみ使用できます。スペースは使用できません。ドットを使用している名前には確認が必要です。 - バケット名の先頭と末尾は、数字または文字にする必要があります。
- バケット名の長さは 3~63 文字にする必要があります。ドットを使用している名前には最大 222 文字を使用できますが、ドットで区切られている各要素は 63 文字以下である必要があります。
- バケット名はドット区切りの十進表記の IP アドレス(例: 192.168.5.4)として表すことはできません。
- バケット名の先頭に接頭辞「goog」は使用できません。
- バケット名に「google」や「google」と類似する表記(「g00gle」など)を含めることはできません。
バケット名の例
有効なバケット名の例を次に示します。
my-travel-maps
0f75d593-8e7b-4418-a5ba-cb2970f0b91e
test.example.com
(example.com
の所有権の検証が必要になります)
無効なバケット名の例を次に示します。
My-Travel-Maps
(大文字を含む)my_google_bucket
(「google」を含む)test bucket
(スペースを含む)
バケット名の考慮事項
バケット名は、すべての Cloud Storage ユーザーが共有する 1 つの名前空間に属します。これは次のことを意味します。
バケット名はグローバルに一意でなければなりません。
example-bucket
などの既存のバケットに属している名前のバケットを作成しようとすると、Cloud Storage によってエラー メッセージが返されます。バケット名は一般公開されます。
ユーザー ID、メールアドレス、プロジェクト名、プロジェクト番号、個人を特定可能な情報(PII)をバケット名に使用しないでください。バケットの存在を誰でも調べることができます。
削除したバケットの名前は新しいバケットに再利用できます。
削除されたバケットの名前が再び利用可能になるまでにかかる時間は、通常は数秒です。ただし、次の点に注意してください。
削除するプロジェクトにバケットが含まれていると、バケットも事実上削除され、バケット名は数週間以上解放されない可能性があります。
他のユーザーがバケットの名前を再利用した場合、バケットで削除(復元可能)が有効になっていても、削除したバケットを復元することはできません。
同じ名前の新しいバケットが別の場所で、古いバケットの削除から 10 分以内に作成された場合、この 10 分間に新しいバケットに対して行われたリクエストが
404-Bucket Not Found
エラーにより失敗することがあります。リクエストが XML API を介して実行される場合、新しいロケーションで名前を再利用するバケットを作成しようとすると、古いバケットの削除後最大 10 分間
404-Bucket Not Found
エラーで失敗することがあります。
他のユーザーがバケットの名前を再利用した場合、削除された元のバケット宛てのデータやリクエストが誤って受信される可能性があります。このリスクを軽減するには、次のベスト プラクティスを検討してください。
バケットを作成する際に、推測や予測が容易でない強力な命名規則を使用します。
バケットを削除する際に、外部ドキュメントやオープンソース リポジトリなどから、削除したバケット名のすべての参照を確実に削除します。
バケットが不要になった場合、バケットを削除するのではなく、バケットからすべてのオブジェクトを削除してバケットを保持することを検討します。
バケット名は、
CNAME
やA
リダイレクトの一部として、DNS レコードで使用できます。これを行うには、バケット名が標準の DNS 命名規則に従う必要があります。つまり、バケット名にアンダースコア(
_
)は使用できません。また、ドットを連続して使用したり、ドットとダッシュを隣り合わせて使用しないでください。たとえば、..
、-.
、.-
は、DNS 名内の無効な文字の組み合わせです。
フォルダまたはディレクトリを使用してバケット内のデータにアクセスする
Cloud Storage は非構造化データをオブジェクトの形式で保存しますが、一部の機能ではフォルダまたはディレクトリを使用してデータにアクセスし、管理できます。
階層名前空間
バケットを作成するときに、バケットに対して階層型名前空間を有効にできます。これにより、フォルダを使用して、ファイル システムのようにオブジェクトを保存できます。オブジェクトをフォルダに整理すると、大規模なデータに対するオペレーションの実行が容易になり、パフォーマンス、整合性、管理の容易性が向上します。階層型名前空間が有効になっているバケットを使用すると、データ集約型のワークロードやファイル指向のワークロードを扱う場合に特にメリットがあります。
階層型名前空間の使用を開始するには、階層型名前空間を有効にしてバケットを作成するをご覧ください。
Cloud Storage FUSE
Cloud Storage FUSE は、バケットをローカル ファイル システムとしてマウントしてアクセスできるようにする FUSE アダプタです。これにより、アプリケーションは、標準のファイル システムのセマンティクスを使用して、バケット内のオブジェクトの読み取りと書き込みを行うことができます。Cloud Storage FUSE を使用すると、Cloud Storage のすべてのメリットを享受しながら、アプリケーションのコードを変更することなくデータにアクセスできます。
Cloud Storage FUSE の使用方法については、Cloud Storage FUSE クイックスタートをご覧ください。