Rapid Bucket

このページでは、Rapid Bucket について説明します。これは、ゾーンをバケットのロケーションとして設定することで、Rapid Storageにオブジェクトを保存できる機能です。このアプローチでは、データ ストレージをコンピューティング リソースとコロケーションできるため、Cloud Storage の他のストレージ クラスと比較して、レイテンシが大幅に短縮され、スループットが向上します。他のゾーンとリージョンのワークロードも、ネットワーク距離に応じたパフォーマンスでバケットにアクセスできます。

Rapid Bucket を使用してゾーンバケットを作成するには、ゾーンバケットを作成するをご覧ください。サポートされているロケーションの一覧は、ゾーンで確認できます。ゾーンバケット内のオブジェクトを読み取り、追加するには、ゾーンバケット内のオブジェクトを使用するをご覧ください。

バケットで Rapid Bucket を有効にするには、バケットで階層型名前空間と均一なバケットレベルのアクセスも有効にする必要があります。

機能とメリット

Rapid Bucket は、ストレージのボトルネックを解消するように構築されており、AI/ML やデータ分析など、データ量の多いアプリケーションに最適です。Rapid Bucket は、1 ミリ秒未満のレイテンシ、最大 15 TB/秒の集約スループット、2,000 万の秒間クエリ数(QPS)をサポートしています。超低レイテンシにより、瞬時にデータを取得し、リアルタイム推論アプリケーションを大規模に実行できます。大規模なスループットと高い QPS により、高価な GPU クラスタを完全に飽和状態に保ち、モデルのトレーニング時間を大幅に短縮できます。

ゾーンバケットは、低レイテンシと高スループットを実現するだけでなく、次のことも可能にします。

  • オブジェクトの完全な書き換えを行わずに、ゾーンバケット内のオブジェクトに追記する

  • オブジェクトを開き、オペレーションの実行中にストリームを維持することで、後続の読み取りと書き込みを高速化できます。

ユースケース

Rapid Bucket は、AI/ML ワークロードやその他のデータ集約型ワークロードに最適です。このようなワークロードの例としては、モデルのチェックポイント、評価、サービング、ロギング、メッセージ キューなどがあります。また、データのストリーミングや、データベースのストレージの提供にも使用できます。

Rapid Bucket が提供する低レイテンシと高スループットを最大限に活用するには、gRPC 直接接続を有効にしてください。

Rapid Bucket の用語

Cloud Storage のドキュメントでは、次の用語を使用します。

  • Rapid Bucket: ゾーン ロケーションと Rapid Storage ストレージ クラスを使用してバケットを作成できるプロダクト。

  • Rapid Storage: Cloud Storage で最も高いデータアクセスと I/O オペレーションのパフォーマンスを提供するストレージ クラス。Rapid Bucket を使用すると、Rapid Storage を使用するバケットが作成されます。Rapid Storage の詳細については、ストレージ クラスをご覧ください。

  • ゾーンバケット: ゾーンにあるバケット。ゾーンバケット内のオブジェクトは常に Rapid Storage に保存され、追加可能です。

ゾーンバケット内のオブジェクトへのアクセス

ゾーンバケットのパフォーマンス上のメリットを得るには、ストリーミング用にオブジェクトを開き、オブジェクトに対してオペレーションを実行するときにストリームを維持します。ストリームを確立して維持すると、オブジェクトに対する後続の読み取りまたは書き込みオペレーションを非常に低いレイテンシで実行できます。たとえば、Parquet ファイルを読み取る場合、ファイルのメタデータ(フッター)の最初の読み取りと、特定の行の後続の読み取りの両方を 1 つのリクエストで実行できます。この方法は、ステップごとに個別のリクエストを使用するよりも効率的です。

確立されると、Cloud Storage FUSE または Cloud Storage クライアント ライブラリを使用してゾーンバケット オブジェクトにアクセスするときに、オブジェクト ストリームはデフォルトで開いたままになります。

任意の数のホストからオブジェクトに対して複数の読み取りストリームを開くことができます。オブジェクトに確立できる読み取りストリームの数に制限はありません。

オブジェクトの追加

ゾーンバケット内のオブジェクトにデータを追加できます。オブジェクトに付加を行う場合、次のセマンティクスが適用されます。

  • 追加可能なオブジェクトは、書き込みを開始するとすぐにバケット名前空間に表示され、書き込み中も読み取ることができます。

  • オブジェクトに追加できる追加数や、一度に追加できるバイト数に制限はありません。オブジェクトが最大サイズの 5 TiB に達するまで、追加を行うことができます。

  • 新しい追加が永続的に書き込まれるかフラッシュされると、オブジェクトのサイズはリアルタイムで増加します。読み取りストリームを確立すると、オブジェクトのサイズの更新にわずかな遅延が発生することが予想されます。

  • 追加可能なオブジェクトには、一度に 1 つの書き込みのみが可能です。既存の書き込みストリームがすでにあるオブジェクトに対して新しい書き込みストリームが確立されると、Cloud Storage から元のストリームにエラーが返され、元のストリームは書き込みが許可されなくなります。新しいライターは、オブジェクトに他の追加をインターリーブすることなく、最後に永続化されたオフセットから追加を再開できます。

オブジェクトのファイナライズ

オブジェクトを確定すると、オブジェクトへの追加はできなくなりますが、新しいバージョンでオブジェクトを上書きすることはできます。ファイナライズされたオブジェクトのメタデータは変更可能です。たとえば、新しいタグを追加したり、オブジェクトの名前を変更したりできます。

ゾーンバケットをマウントする

ゾーンバケットをマウントしてアクセスするには、Cloud Storage FUSE または Cloud Storage FUSE CSI ドライバを使用します。Cloud Storage FUSE バージョン 3.7.2 以降を使用してください。Cloud Storage FUSE CSI ドライバを使用するには、Google Kubernetes Engine のバージョンが 1.35.0-gke.3047001 以降である必要があります。

サポートされているツール

ほとんどの Cloud Storage ツールを使用して、ゾーンバケットを操作できます。ただし、次の制限が適用されます。

  • 非ゾーンバケット用の標準クライアント ライブラリ API を使用して、ゾーンバケットに書き込むことはできません。ゾーンバケットに書き込むには、ゾーンバケットでサポートされている API を使用するようにコードを変更する必要があります。使用する API については、ゾーンバケットでオブジェクトを使用するのクライアント ライブラリのコードサンプルをご覧ください。

  • ゾーンバケット内のオブジェクトを読み取るには、JSON API、XML API、または gRPC を使用します。これには、ReadObject などの非双方向 gRPC 読み取りメソッドも含まれます。

  • ゾーンバケットへの書き込みのサポートは API によって異なります。

    • gRPC: gRPC を使用する場合、BidiWriteObject API を使用してのみゾーンバケットに書き込むことができます。追加可能なオブジェクトは、追加可能なモードの BidiWriteObject RPC 呼び出しでのみサポートされます。WriteObject などの双方向以外の gRPC 書き込みメソッドは、ゾーンバケットではサポートされていません。

    • XML API: XML マルチパート アップロードを除き、XML API を使用してゾーンバケットに書き込むことができます。

    • JSON API: JSON API を使用してゾーンバケットに書き込むことはできません。

  • Rapid Bucket は、GCSFS Python ライブラリ バージョン 2026.3.0 以降でサポートされています。

  • Google Cloud CLI の制限事項:

    • サポートされている Google Cloud CLI の最小バージョン: ゾーンバケットをサポートする gcloud CLI の最小バージョンは 553.0.0 です。以前のバージョンは、ゾーン バケットと互換性がありません。最新の機能とバグの修正を利用するために、最新バージョンの gcloud CLI を使用することをおすすめします。ゾーンバケットのスライス化されたオブジェクトのダウンロードとパフォーマンスの最適化には、gcloud CLI バージョン 583.0.0 以降が必要です。詳細については、ゾーンバケットの gcloud CLI のパフォーマンスをチューニングするをご覧ください。

    • 不完全なアップロードの可視性: 他のストレージ クラスのバケットでは、アップロードが完了した後にのみオブジェクトが名前空間に表示されますが、ゾーンバケットでは、部分的にアップロードされたオブジェクトがすぐに表示されます。Google Cloud CLI のアップロード コマンドが失敗するか中断されると、バケットに不完全なオブジェクトが表示されることがあります。これらのアップロードは、コマンドを再実行することで再開できます。

    • オブジェクトの上書き: 標準の Google Cloud CLI の動作がゾーンバケットに適用されます。オブジェクトを上書きするときに、同じ名前のファイルまたはオブジェクトが宛先に存在する場合、Google Cloud CLI の cp、mv、rsync コマンドはデフォルトで上書きします。上書きを防ぐには、--no-clobber フラグを使用します。Google Cloud CLI を使用する場合、既存のオブジェクトにデータを追加することはできません。ソース全体を再アップロードする必要があります。

    • オブジェクトのファイナライズ: Google Cloud CLI を使用してゾーンバケットにアップロードされたオブジェクトでは、オブジェクトのメタデータが完全に同期されるまでに、短い遅延が発生することがあります。Cloud Storage は結果整合性モデルを使用するため、アップロード直後にオブジェクトをダウンロードしようとすると、メタデータがまだ更新されていない場合にハッシュの不一致エラーが発生する可能性があります。

      アップロード直後にハッシュの不一致エラーでダウンロードが失敗した場合は、コマンドを再試行してください。ダウンロードは完全に成功するか、明示的に失敗します。部分的なダウンロードや破損したダウンロードがサイレントに発生することはありません。

  • チェックサム検証のパフォーマンス: ゾーンバケットはデータ検証に CRC32C のみを使用するため、システムはチャンクごと、アップロードまたはダウンロード全体でチェックサムを実行できます。デフォルトでは、Google Cloud CLI は google-crc32c Python ライブラリを使用します。このライブラリは Google Cloud CLI にプリインストールされています。ただし、バンドルされていない Python インストールを使用している場合は、PyPI から google-crc32c ライブラリを明示的にインストールする必要があります。それ以外の場合、Google Cloud CLI は gcloud-crc32c バイナリにフォールバックします。これにより、チャンクごとの CRC 計算のパフォーマンスが低下する可能性があります。

非互換性

ゾーンバケットは、次のプロダクトやサービスと互換性がありません。

  • データのアップロードと管理

    • Rapid Cache

    • Autoclass

    • バケットロック

    • 複合オブジェクト

    • XML マルチパート アップロード

    • オブジェクト保留

    • オブジェクトのライフサイクル管理の SetStorageClass アクション

    • オブジェクト保持ロック

    • バケットの再配置

    • 再開可能なアップロード

    • オブジェクトの書き換え

    • リクエスト元による支払い

  • メタデータ

    • ゾーンバケット内のオブジェクトには MD5 ハッシュがありません。

    • サポートされていない機能やプロダクトに関連付けられたメタデータ プロパティは、ゾーンバケットまたは追加可能オブジェクトのリソース表現に表示されません。また、書き込み不可になります。次に例を示します。

      • softDeleteTime メタデータ プロパティと hardDeleteTime メタデータ プロパティは、Objects リソースのリソース表現に表示されません。これは、ゾーンバケット内のオブジェクトで削除(復元可能)がサポートされていないためです。

      • ゾーンバケット内のオブジェクトの storageClass メタデータは常に RAPID の値を持ち、書き換えることはできません。ゾーンバケットは常に Rapid Storage ストレージ クラスを使用する必要があるためです。

  • アクセス制御

    • オブジェクト レベルのアクセス制御リスト(ACL)

    • CORS 構成

    • 顧客指定の暗号鍵(CSEK)

    • HMAC キー

  • データ保護と障害復旧

    • オブジェクトのバージョニング

    • 削除(復元可能)

    • クロスバケット レプリケーション

  • その他の Google Cloud サービス

    • BigQuery

割り当て

プロジェクトの各ゾーンには、デフォルトのストレージ容量割り当てがあります。プロジェクトごとの各ゾーンには、Cloud Storage からGoogle サービスへのデフォルトの下り(外向き)割り当てもあります。これらの割り当てを表示するには、割り当てと上限をご覧ください。

データの下り(外向き)使用量をモニタリングして帯域幅の増強をリクエストする方法については、帯域幅の使用量のモニタリングをご覧ください。

料金

Rapid Bucket を使用すると、データ ストレージ、オペレーション、ネットワーキングの料金が発生します。詳細については、料金をご覧ください。

ベスト プラクティス

ゾーンバケットを使用する際のパフォーマンスとリソース使用率を最適化するには、次のベスト プラクティスを検討してください。

  • オブジェクトの読み取りを最適化する: gcloud CLI を使用してゾーンバケットからオブジェクトを読み取る場合、CLI はデフォルトの同時実行とスライスの構成を自動的に適用します。特定のワークロードに合わせてこれらの設定をさらに調整するには、ゾーンバケットの gcloud CLI パフォーマンスを調整するをご覧ください。

  • Cloud Storage FUSE ファイル ハンドル: Cloud Storage FUSE でゾーンバケットを使用する際のパフォーマンスを最適化するには、マウントされたゾーンバケット内のオブジェクトへのオープン ファイル ハンドルを維持し、複数のオペレーションで使用します。この方法により、Cloud Storage FUSE は繰り返しの読み取りで不要なネットワーク ラウンド トリップを回避するため、パフォーマンスが向上します。

  • 並列書き込みレイテンシを最適化する: 独自の gRPC 並列書き込みロジックを維持する場合は、未確定のオブジェクトを含む事前に開かれたライターのプールを使用して、ストリームの設定を書き込みパスから移動することを検討してください。事前オープンのライターのプールは、アプリケーションで必要になる前に、オブジェクト ストリームを開き、バケットに新しい空の追加可能なオブジェクトを作成します。詳細については、書き込みレイテンシを最適化するをご覧ください。

次のステップ