オブジェクトの削除について

不要になったオブジェクトを削除すると、ストレージ費用の削減、データの保持要件の遵守、バケットの整理に役立ちます。Cloud Storage では、オブジェクトを削除する 2 つの主な方法がサポートされています。

  • 単一オブジェクトの削除: ターゲットを絞った更新のために個々のオブジェクトを削除します。
  • オブジェクトの一括削除: 複数のオブジェクトを同時に、または自動化されたスケジュールで削除します。

Cloud Storage には、削除方法ごとに、オブジェクトを手動、プログラム、または自動ポリシーで削除するためのさまざまなツールが用意されています。これらの削除方法と利用可能なツールを確認して、ワークロードに最適なアプローチを選択してください。

オブジェクトを削除する手順については、オブジェクトを削除するをご覧ください。

単一オブジェクトの削除

単一オブジェクトの削除により、特定のデータを正確に制御できます。通常、単一のオブジェクトを削除するのは、バケットのデータに対して即時にターゲットを絞った更新を行う必要がある場合です。単一オブジェクトの削除の一般的なユースケースは次のとおりです。

  • エラーの修正: 誤ってアップロードしたオブジェクトや、不正確なデータを含むオブジェクトを削除します。

  • クリーンアップ: タスクの完了後に一時オブジェクトまたはログを手動で削除すること。

  • アプリケーション ロジック: ユーザーがプロフィール写真を削除するなど、アプリケーション イベントが発生したときにオブジェクトを自動的に削除します。

  • セキュリティとコンプライアンス: オブジェクトを削除して機密情報を削除します。

単一オブジェクトの削除ツール

バケットから単一のオブジェクトを削除するには、次のいずれかのツールを使用します。各ツールは、オブジェクトごとに個別の DELETE リクエストを送信します。

ツール 説明
Google Cloud コンソール Google Cloud コンソールで個々のオブジェクトを削除します。
Google Cloud CLI gcloud storage rm コマンドを使用してオブジェクトを削除します。
クライアント ライブラリ サポートされている言語(C++、C#、Go、Java、Node.js、PHP、Python、Ruby など)を使用して、プログラムでオブジェクトを削除します。
REST API JSON API または XML API を使用してオブジェクトを削除します。

オブジェクトの一括削除

オブジェクトの一括削除は、大規模なデータセットに対して高効率のオペレーションを行うように設計されています。一括削除を使用すると、ストレージ費用を管理し、バケット全体のデータの整備を自動化できます。オブジェクトの一括削除の一般的なユースケースは次のとおりです。

  • 費用の最適化: 古いログや一時的なビルド アーティファクトなど、運用に不要になった大規模なデータセットを削除します。

  • コンプライアンスの自動化: 特定の保持期間(30 日など)の経過後にオブジェクトを削除することで、データ保持ポリシーを自動的に適用します。

  • バケットの移行またはデコミッション: データの移行時やプロジェクトの終了時に、数百万または数十億のオブジェクトをクリアします。

  • データ パイプラインのクリーンアップ: パイプラインが最終レポートまたはデータセットを生成した後に、中間処理オブジェクトを削除します。

オブジェクトの一括削除ツール

オブジェクトを一括削除するには、次のいずれかのツールを使用します。これらのツールは、個々のリクエストと比較してスループットを向上させ、オーバーヘッドを削減するように最適化されています。

ツール 説明
Google Cloud コンソール 最大 100 万個のオブジェクトをインタラクティブに削除します。削除リクエストを開始すると、Cloud Storage はバックグラウンドで削除を処理します。一括削除のステータスを確認するには、 Google Cloud コンソールのヘッダーにある通知ボタン()をクリックします。
Google Cloud CLI gcloud storage rm --recursive コマンドを使用して、共通の接頭辞を共有するすべてのオブジェクトを削除します。このコマンドは、コマンドラインから小規模から中規模の一括削除を行う場合に適しています。
マルチオブジェクト削除 XML API

1 回の POST リクエストで、最大 1,000 個のオブジェクトをプログラムで削除します。マルチオブジェクト削除 XML API は、Amazon S3 API と相互運用可能です。そのため、既存の Amazon S3 のツール、ライブラリ、ワークフローを使用して、Cloud Storage のオブジェクトを管理できます。XML API は、両方のプラットフォーム間でデータを移行したり、リソースを管理したりする場合に便利です。

XML API を使用して複数のオブジェクトを削除すると、Cloud Storage はデータアクセス監査ログを生成します。データアクセス監査ログを有効にすると、これらのログにはリクエスト全体と個々のオブジェクトの削除に関する詳細が含まれます。詳細については、マルチオブジェクト削除 XML API の監査ログをご覧ください。

マルチオブジェクト削除 XML API には次の制限があります。

  • ガバナンス モードのバイパス: Amazon S3 とは異なり、Cloud Storage では削除中にガバナンス モードをバイパスできません。Amazon S3 では、x-amz-bypass-governance-retention ヘッダーを指定して、ガバナンス モードでロックされたオブジェクトを削除できます。Cloud Storage は、データの不変性を維持するために、オブジェクト保持ポリシーを厳格に適用します。
  • 削除マーカー: Cloud Storage は、単一オブジェクトまたは複数オブジェクトの削除用の Amazon S3 削除マーカーをサポートしていません。Cloud Storage で非現行オブジェクトを復元するには、XML API PUT リクエストを使用して、特定のバージョンをライブ オブジェクトにコピーする必要があります。
  • 条件付き削除オペレーション: Cloud Storage のマルチオブジェクト削除 XML API は、ETag、Last-Modified、Size に基づく条件付き削除をサポートしていません。これらのパラメータを含むリクエストは、HTTP 400 Bad Request ステータス コードを返します。Cloud Storage で条件付きオペレーションを実行するには、x-goog-if-generation-match や x-goog-if-metageneration-match などのヘッダーを使用します。
ストレージ バッチ オペレーション

組み込みの追跡と再試行を備えたフルマネージド サービスを使用して、マニフェスト ファイルに基づいて最大数十億個のオブジェクトを削除します。

ストレージ バッチ オペレーションを使用して、次のタスクを実行します。

  • 数百万または数十億のオブジェクトを削除する。
  • 組み込みのトラッキング、再試行、エラー処理により、信頼性を高めます。
  • 個々の API 呼び出しをスクリプト化する場合と比較して、クライアントサイドのオーバーヘッドを削減します。
オブジェクトのライフサイクル管理 オブジェクトの経過時間やストレージ クラスなど、ユーザー定義のライフサイクル ルールに基づいてオブジェクトを自動的に削除します。オブジェクトを一括削除するには、バケットにオブジェクトのライフサイクル管理ルールを構成します。条件 Age を 0 日に設定し、アクションを Delete に設定します。ルールを設定すると、Cloud Storage は非同期で一括削除を実行します。
API リクエストをバッチ処理する サポートされているクライアント ライブラリまたは JSON API を直接使用する場合、複数の削除リクエストを 1 つの HTTP リクエストにバッチ処理します。このバッチ処理により、クライアントサイドの接続オーバーヘッドとレイテンシが削減されます。

削除方法の選択

オブジェクトの削除に最適な方法とツールは、オブジェクト数とワークフローの要件によって異なります。次の意思決定マトリックスを使用して、ユースケースに適したアプローチを選択します。

ユースケース 削除方法 推奨ツール
個々のオブジェクトまたは少数の特定のオブジェクトを削除する 単一オブジェクトの削除 Google Cloud コンソール、gcloud storage rm、クライアント ライブラリ、または REST API
1 回のプログラムによるリクエストで最大 1,000 個のオブジェクトを削除する オブジェクトの一括削除 マルチオブジェクト削除 XML API、Amazon S3 CLI、または Amazon S3 互換のクライアント ライブラリ(Boto3 など)
共通の接頭辞を共有するオブジェクトを削除する オブジェクトの一括削除 gcloud storage rm --recursive
ブラウザで最大 100 万個のオブジェクトをインタラクティブに削除する オブジェクトの一括削除 Google Cloud コンソール
組み込みのトラッキングを使用して、数百万または数十億のオブジェクトを非同期で削除する オブジェクトの一括削除 ストレージ バッチ オペレーション
条件(経過時間やストレージ クラスなど)に基づいてオブジェクトを自動的に削除する オブジェクトの一括削除 オブジェクトのライフサイクル管理

次のステップ