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

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

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

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

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

単一オブジェクトの削除

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

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

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

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

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

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

バケットから 1 つのオブジェクトを削除するには、次のいずれかのツールを使用します。各ツールは、オブジェクトごとに個別の 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 は、ETagLast-ModifiedSize に基づく条件付き削除をサポートしていません。これらのパラメータを含むリクエストは、HTTP 400 Bad Request ステータス コードを返します。Cloud Storage で条件付きオペレーションを実行するには、x-goog-if-generation-matchx-goog-if-metageneration-match などのヘッダーを使用します。
ストレージのバッチ オペレーション

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

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

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

削除方法の選択

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

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

次のステップ