S3 バッチオペレーションジョブの管理 - Amazon Simple Storage Service

S3 バッチオペレーションジョブの管理

Amazon S3 は、作成したバッチオペレーションジョブを管理するための一連の堅牢なツールを用意しています。このセクションでは、ジョブの管理に使用できるオペレーションについて説明します。このセクションに一覧表示されているすべてのオペレーションは、AWS マネジメントコンソール、AWS CLI、AWS SDK、または REST API を使用して実行できます。

ジョブの失敗の追跡

指定されたマニフェストを読み取れないなど、S3 バッチオペレーションが正常に実行できない問題が発生した場合、そのジョブは失敗します。ジョブが失敗すると、1 つ以上の障害コードまたは失敗の理由が生成されます。S3 バッチオペレーションは、ジョブの詳細をリクエストしてそれらを表示できるように、障害コードと理由をジョブとともに保存します。ジョブの完了レポートをリクエストした場合は、そこに障害コードと理由も表示されます。

ジョブが大量の失敗したオペレーションを実行するのを防ぐために、Amazon S3 はすべてのバッチオペレーションジョブにタスク失敗のしきい値を設定します。ジョブが 1000 個以上のタスクを実行すると、Amazon S3 はタスクの失敗率を監視します。いずれかの時点で、失敗率 (実行されたタスクの総数に対する失敗したタスクの数の割合) が 50 パーセントを超えると、そのジョブは失敗します。タスク失敗しきい値を超えたためにジョブが失敗した場合、この失敗の原因を識別できます。たとえば、特定のバケットに存在しないいくつかのオブジェクトを誤ってマニフェストに含めてしまうことがあります。誤りを訂正したら、ジョブを再送信できます。

注記

S3 バッチオペレーションは非同期で動作するため、タスクはマニフェストにリストされているオブジェクトの順序で実行する必要はありません。つまり、どのオブジェクトのタスクが成功して、どれが失敗したかを判断するためにマニフェストの順序を使用することはできません。代わりに、ジョブの完了レポート (リクエストした場合) を調べるか、AWS CloudTrail イベントログを表示して失敗の原因を特定することができます。

通知とログ記録

完了レポートをリクエストすることに加えて、AWS CloudTrail を使用してバッチオペレーションのアクティビティをキャプチャ、確認、および監査することもできます。バッチオペレーションは既存の Amazon S3 API を使用してタスクを実行するため、それらのタスクも直接呼び出した場合と同じイベントを出力します。したがって、Amazon S3 で既に使用しているのと同じ通知、ログ記録、および監査ツールとプロセスを使用して、ジョブの進捗状況とジョブのすべてのタスクを追跡および記録することができます。詳細については、「AWS CloudTrail を使用して Amazon EventBridge の S3 バッチオペレーションジョブを追跡する」を参照してください。

注記

Amazon S3 バッチオペレーションは、ジョブの実行中に CloudTrail で管理イベントとデータイベントの両方を生成します。これらのイベントの量は、各ジョブのマニフェスト内のキーの数に応じてスケールされます。詳細については、CloudTrail の料金のページをご参照ください。このページには、アカウントで設定した CloudTrail の数に応じて料金がどのように変わるのかを示す例が記載されています。ニーズに合わせてイベントを設定してログに記録する方法については、AWS CloudTrail ユーザーガイドの「最初の証跡を作成する」をご参照ください。

Amazon S3 イベントの詳細については、「Amazon S3 イベント通知」を参照してください。

完了レポート

ジョブを作成するときに、完了レポートをリクエストできます。S3 バッチオペレーションが少なくとも 1 つのタスクを正常に呼び出す限り、タスクの実行が完了した後、失敗したとき、またはキャンセルされたときに、Amazon S3 は完了レポートを生成します。完了レポートに、すべてのタスクを含めるか、失敗したタスクのみを含めるかを設定できます。

完了レポートには、ジョブ設定とステータス、およびオブジェクトキーとバージョン、ステータス、エラーコード、およびエラーの説明を含む各タスクの情報が含まれます。完了レポートは、追加の設定を必要としない統合形式でタスクの結果を表示する簡単な方法です。完了レポートの例については、「S3 バッチオペレーション完了レポート」を参照してください。

完了レポートを設定していない場合でも、CloudTrail および Amazon CloudWatch を使用して、ジョブとそのタスクをモニタリングして監査できます。詳細については、「AWS CloudTrail を使用して Amazon EventBridge の S3 バッチオペレーションジョブを追跡する」を参照してください。