バッチオペレーションでオブジェクトオペレーションを一括で実行する - Amazon Simple Storage Service

バッチオペレーションでオブジェクトオペレーションを一括で実行する

S3 バッチ操作を使用すると、Amazon S3 のオブジェクトに対して大規模なバッチ操作を実行することができます。S3 バッチ操作では、指定した Amazon S3 のオブジェクトのリストに対して、1 つのオペレーションを実行できます。1 つのジョブで、エクサバイトのデータを含む数十億ものオブジェクトに対して、指定されたオペレーションを実行できます。Amazon S3 は、進捗状況の追跡、通知の送信、すべてのアクションの詳細な完了レポートの保存を行い、フルマネージド型の監査可能なサーバーレスエクスペリエンスを提供します。S3 バッチオペレーションは、Amazon S3 コンソール、AWS CLI、AWS SDK、または Amazon S3 REST API を通じて使用できます。

S3 バッチ操作は、オブジェクトをコピーしたり、オブジェクトにタグやアクセスコントロールリスト (ACL) を設定したりするために使用できます。また、S3 Glacier Flexible Retrieval からオブジェクトの復元を行ったり、AWS Lambda 関数を呼び出してオブジェクトを使用してカスタムアクションを実行したりすることもできます。これらのオペレーションは、指定したオブジェクトのカスタムリストに対して実行できます。また、Amazon S3 インベントリレポートを使用して、オブジェクトのリストを簡単に作成することもできます。Amazon S3 バッチオペレーションは、Amazon S3 で既に使用しているのと同じ Amazon S3 API オペレーションを使用します。

注記

Amazon S3 Express One Zone ストレージクラスをディレクトリバケットで使用する方法の詳細については、「ディレクトリバケットと S3 Express One Zone」と「ディレクトリバケットの概要」を参照してください。S3 Express One Zone とディレクトリバケットでのバッチオペレーションの使用の詳細については、「S3 Express One Zone でのバッチオペレーションの使用」を参照してください。

S3 バッチ操作の基本

S3 バッチ操作を使用すると、Amazon S3 のオブジェクトに対して大規模なバッチ操作を実行することができます。S3 バッチ操作では、指定した Amazon S3 のオブジェクトのリストに対して、1 つのオペレーションまたはアクションを実行できます。

用語

このセクションでは、次のように定義されるマニフェスト、ジョブ、オペレーション、およびタスクの用語を使用します。

マニフェスト

マニフェストは、Amazon S3 が動作するオブジェクトキーを含む Amazon S3 オブジェクトです。バッチオペレーションジョブを作成する場合は、マニフェストを指定する必要があります。ユーザーが生成したマニフェストには、各オブジェクトのバケット名、オブジェクトキー、およびオプションでオブジェクトバージョンを含める必要があります。ユーザーが作成したマニフェストを提供する場合は、Amazon S3 インベントリレポートまたは CSV ファイルの形式である必要があります。

ジョブの作成時に指定したオブジェクトフィルター条件に基づいてマニフェストを自動的に生成するように Amazon S3 に指示できます。このオプションは、Amazon S3 コンソールで作成した S3 バッチレプリケーションジョブ、または AWS Command Line Interface (AWS CLI)、AWS SDK、または Amazon S3 REST API を使用して作成した任意のジョブタイプで使用できます。

ジョブ

ジョブは、S3 バッチ操作の基本単位です。ジョブには、マニフェストにリストされているオブジェクトに対して指定されたオペレーションを実行するために必要なすべての情報が含まれています。この情報を入力してからジョブの開始をリクエストすると、ジョブはマニフェスト内の各オブジェクトにおいてオペレーションを実行します。

オペレーション

オペレーションは、バッチ操作のジョブで実行する API のアクションの種類 (オブジェクトのコピーなど) です。各ジョブは、マニフェストで指定されているすべてのオブジェクトに対して 1 種類のオペレーションを実行します。

タスク

タスクは、ジョブ実行の単位です。タスクは、1 つのオブジェクトに対してジョブのオペレーションを実行するための Amazon S3 または AWS Lambda API のオペレーションの 1 回の呼び出しを表します。S3 バッチ操作は、ジョブの実行中に、マニフェストで指定されている各オブジェクトに対して 1 つのタスクを作成します。

S3 バッチ操作のジョブの仕組み

ジョブは、S3 バッチ操作の基本単位です。ジョブには、オブジェクトのリストに対して指定されたオペレーションを実行するために必要なすべての情報が含まれています。ジョブを作成するには、S3 バッチ操作にオブジェクトのリストを渡し、それらのオブジェクトに対して実行するアクションを指定します。

S3 バッチ操作がサポートするオペレーションの詳細については、S3 バッチ操作でサポートされるオペレーション を参照してください。

バッチジョブは、そのマニフェストに含まれるすべてのオブジェクトで指定されたオペレーションを実行します。マニフェストには、バッチジョブで処理するオブジェクトが一覧表示され、オブジェクトとしてバケットに保存されます。カンマ区切り値 (CSV) 形式の S3 インベントリを使用したデータのカタログ化と分析 レポートをマニフェストとして使用できます。これにより、バケット内に配置されたオブジェクトの大きなリストを簡単に作成できます。1 つのバケット内に含まれるカスタマイズされたオブジェクトのリストに対してバッチ操作を実行できるように、シンプルな CSV 形式でマニフェストを指定することもできます。

ジョブを作成すると、Amazon S3 はマニフェストにリストされているオブジェクトを処理し、指定されたオペレーションをそれぞれのオブジェクトに対して実行します。ジョブの実行中は、プログラムまたは Amazon S3 コンソールで進捗状況をモニタリングできます。終了時に完了レポートを生成するようにジョブを設定することもできます。完了レポートには、ジョブによって実行された各タスクの結果が示されます。ジョブのモニタリングの詳細については、「S3 バッチ操作ジョブの管理」を参照してください。

S3 バッチ操作のチュートリアル

次のチュートリアルでは、いくつかのバッチ操作タスクにおけるエンドツーエンドの一連の手順について説明します。