このページでは、バケットのロケーションとしてゾーンを設定して、高速ストレージ クラスにオブジェクトを保存できる機能である高速バケットについて説明します。このアプローチにより、データ ストレージをコンピューティング リソースとコロケーションできるため、Cloud Storage の他のストレージ クラスと比較して、レイテンシが大幅に短縮され、スループットが向上します。他のゾーンとリージョンのワークロードもバケットにアクセスできますが、パフォーマンスはネットワーク距離に比例します。Rapid バケットは、AI/ML やデータ分析など、データ集約型のアプリケーションに最適です。
Rapid Bucket を使用してゾーンバケットを作成するには、ゾーンバケットを作成するをご覧ください。ゾーン バケット内のオブジェクトを読み取って追加するには、ゾーン バケット内のオブジェクトを使用するをご覧ください。
Rapid Bucket の用語
Cloud Storage のドキュメントでは、次の用語を使用します。
Rapid Bucket: ゾーン ロケーションと Rapid ストレージ クラスでバケットを作成できるプロダクト。
Rapid ストレージ: Cloud Storage で最高のデータアクセスと I/O オペレーションのパフォーマンスを提供するストレージ クラス。Rapid Bucket を使用すると、Rapid Storage を使用するバケットが作成されます。Rapid ストレージの詳細については、ストレージ クラスをご覧ください。
ゾーンバケット: ゾーンにあるバケット。ゾーンバケット内のオブジェクトは常に Rapid ストレージに保存され、追加可能です。
ゾーンバケットの機能
低レイテンシと高スループットを実現するだけでなく、ゾーンバケットでは次のことも可能です。
オブジェクト全体を書き換えずに、ゾーン バケット内のオブジェクトに追加する
オブジェクトを開いて、オペレーションの実行中にストリームを維持し、後続の読み取りと書き込みを高速化します。
ユースケース
Rapid Bucket は、AI/ML ワークロードやその他のデータ量の多いワークロードに最適です。このようなワークロードの例としては、モデルのチェックポイント、評価、サービング、ロギングとメッセージ キューなどがあります。ストリーミング データやデータベースのストレージの提供にも使用できます。
Rapid Bucket が提供する低レイテンシと高スループットを最大限に活用するには、gRPC 直接接続を有効にしてください。
ゾーン バケット内のオブジェクトへのアクセス
ゾーンバケットのパフォーマンス上のメリットを得るには、オブジェクトをストリーミング用に開き、オブジェクトに対してオペレーションを実行するときにストリームを維持します。ストリームを確立して維持すると、後続の読み取りまたは書き込みオペレーションを非常に低いレイテンシでオブジェクトに対して実行できます。たとえば、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 以降であることを確認してください。
料金
Rapid Bucket を使用すると、データ ストレージ、オペレーション、ネットワーキングの料金が発生します。詳細については、料金をご覧ください。
制限事項
ゾーンバケットでは、階層型名前空間と均一なバケットレベルのアクセスを有効にする必要があります。
Google Cloud CLI の制限事項:
未完了のアップロードの可視性: 他のストレージ クラスのバケットとは異なり、オブジェクトはアップロードが完了した後にのみ Namespace に表示されますが、ゾーンバケットの部分的にアップロードされたオブジェクトはすぐに表示されます。Google Cloud CLI のアップロード コマンドが失敗した場合や中断された場合は、バケットに不完全なオブジェクトが表示されることがあります。コマンドを再実行することで、これらのアップロードを再開できます。
オブジェクトの上書き: 標準の Google Cloud CLI の動作は、ゾーンバケットに適用されます。オブジェクトを上書きするときに、同じ名前のファイルまたはオブジェクトが宛先に存在する場合、Google Cloud CLI の
cp、mv、rsyncコマンドはデフォルトで上書きします。上書きを防ぐには、--no-clobberフラグを使用します。Google Cloud CLI を使用する場合、既存のオブジェクトにデータを追加することはできません。ソース全体を再アップロードする必要があります。オブジェクトのファイナライズ: Google Cloud CLI を使用してゾーン バケットにアップロードされたオブジェクトでは、オブジェクトのメタデータが完全に同期されるまでに短い遅延が発生することがあります。Cloud Storage は結果整合性モデルを使用するため、アップロード直後にオブジェクトをダウンロードしようとすると、メタデータがまだ更新されていない場合にハッシュの不一致エラーが発生することがあります。
アップロード直後にハッシュの不一致エラーでダウンロードが失敗した場合は、コマンドを再試行します。ダウンロードは完全に成功するか、明示的に失敗するかのいずれかになります。部分的なダウンロードや破損したダウンロードがサイレントに発生することはありません。
非互換性
ゾーンバケットは、次のツール、オペレーション、プロダクトと互換性がありません。
ツール
XML API マルチパート アップロード
XML API または JSON API を使用した書き込み
gRPC を使用した追加不可能なオブジェクトの書き込み
データ保護と障害復旧
オブジェクトのバージョニング
削除(復元可能)
データ マネジメント
Anywhere Cache
Autoclass
バケットロック
オブジェクトの作成
オブジェクト保留
オブジェクトのライフサイクル管理
SetStorageClassアクションオブジェクトのライフサイクル管理
Deleteアクションオブジェクト保持ロック
Pub/Sub 通知
バケットの再配置
再開可能なアップロード
オブジェクトの書き換え
リクエスト元による支払い
アクセス制御
オブジェクト レベルのアクセス制御リスト(ACL)
CORS 構成
顧客指定の暗号鍵(CSEK)
HMAC キー
割り当て
プロジェクトごとの各ゾーンには、ストレージ バイトの割り当てがあります。プロジェクトの各ゾーンには、Cloud Storage から Google サービスへの下り(外向き)割り当てもあります。ストレージまたはデータの下り(外向き)割り当ての空き容量を確認するには、[割り当てとシステム上限] ページをご覧ください。割り当ての増加をリクエストする方法については、割り当てを管理するをご覧ください。
ベスト プラクティス
Cloud Storage FUSE でゾーン バケットを使用する際のパフォーマンスを最適化するには、マウントされたオブジェクトへのオープン ファイル ハンドルを維持し、複数のオペレーションで使用します。これにより、Cloud Storage FUSE が読み取りの繰り返しごとに不要なネットワーク ラウンド トリップを実行しなくなるため、パフォーマンスが向上します。
次のステップ
- ゾーンバケットを作成する方法を確認する。
- ゾーンバケットでオブジェクトを使用する方法を確認する。