Rapid Bucket

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

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

特典

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

Rapid Bucket の用語

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

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

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

  • ゾーンバケット: ゾーンに配置されているバケット。ゾーンバケット内のオブジェクトは常に Rapid Storage に保存され、追加できます。

ゾーンバケットの機能

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

  • オブジェクトを完全に書き換えることなく、ゾーンバケット内のオブジェクトに追加する

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

ユースケース

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

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

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

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

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

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

オブジェクトの追加

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

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

  • オブジェクトに追加できる回数や、一度に追加できるバイト数に制限はありません。オブジェクトが最大サイズ 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 以降であることを確認してください。

料金

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

制限事項

  • ゾーンバケットでは、階層型 Namespace均一なバケットレベルのアクセスを有効にする必要があります。

  • Google Cloud CLI の制限事項:

    • サポートされている Google Cloud CLI の最小バージョン: ゾーンバケットをサポートする gcloud CLI の最小バージョンは 553.0.0 です。以前のバージョンはゾーンバケットと互換性がありません。最新の機能とバグ修正を入手するには、 最新バージョンの gcloud CLI を使用することをおすすめします。

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

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

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

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

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

非互換性

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

  • ツール

  • データ保護と障害復旧

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

    • 削除(復元可能)

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

  • データ マネジメント

    • Rapid Cache

    • Autoclass

    • バケットロック

    • オブジェクトの作成

    • オブジェクト保留

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

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

    • バケットの再配置

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

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

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

  • アクセス制御

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

    • CORS 構成

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

    • HMAC キー

  • メタデータ

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

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

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

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

  • サービス

    • BigQuery

割り当て

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

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

ベスト プラクティス

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

次のステップ