S3 バッチレプリケーションを使用した既存のオブジェクトのレプリケーション
S3 バッチレプリケーションを使用すると、レプリケーション設定が実行される前に存在していたオブジェクト、以前にレプリケートされたオブジェクト、およびレプリケーションに失敗したオブジェクトをレプリケートできます。これは、バッチオペレーションジョブを使用して行います。これは、新しい Simple Storage Service (Amazon S3) バケット間で新しいオブジェクトを継続的に自動的にレプリケートするライブレプリケーションとは異なります。バッチレプリケーションを開始するには、次の操作を行います。
-
新しいレプリケーションルールまたはレプリケート先のバッチレプリケーションを開始する — 1 回限りのバッチレプリケーションジョブは、新しいレプリケーション設定で最初のルールを作成する場合や、AWS Management Consoleを介して既存の設定に新しいレプリケート先を追加する場合に作成できます。
-
既存のレプリケーション設定のバッチレプリケーションを開始する — S3 バッチオペレーションを使用して、AWS SDK、AWS Command Line Interface (AWS CLI)、または Simple Storage Service (Amazon S3) コンソールを介し、新しいバッチレプリケーションジョブを作成できます。
バッチレプリケーションジョブが終了すると、完了レポートが表示されます。レポートを使用してジョブを検査する方法の詳細については、「ジョブステータスと完了レポートの追跡」を参照してください。
S3 バッチレプリケーションに関する考慮事項
-
レプリケート元バケットには既存のレプリケーション設定が必要です。レプリケーションを有効にするには、「レプリケーションの設定」と「チュートリアル: レプリケーションの設定例」を参照してください。
-
バケットで S3 ライフサイクルが設定されている場合は、バッチレプリケーションジョブがアクティブな際には、ライフサイクルルールを無効にすることをお勧めします。これにより、レプリケート元バケットとレプリケート先バケットの間で等価性が確保されます。これを行わない場合、これらのバケットが分岐し、レプリケート先バケットがレプリケート元バケットの完全なレプリカではなくなる可能性があります。以下の点を考慮します。
-
レプリケート元バケットには、オブジェクトと削除マーカーの複数のバージョンがあります。
-
レプリケート元とレプリケート先のバケットには、期限切れの削除マーカーを削除するライフサイクル設定が設定されています。
バッチレプリケーションでは、オブジェクトのバージョンをレプリケートする前に、レプリケート先バケットに削除マーカーをレプリケートすることがあります。この削除マーカーが期限切れとしてマークされた時点で、オブジェクトがコピーされる前に、レプリケート先バケットから削除されてしまう可能性があります。
-
-
バッチオペレーションジョブを実行するために指定する AWS Identity and Access Management IAM ロールには、基になるバッチレプリケーションのおレーションを実行するための許可が必要です。IAM ロールの作成の詳細については、「バッチレプリケーション用の IAM ポリシーの設定」を参照してください。
-
バッチレプリケーションには、Simple Storage Service (Amazon S3) で生成できるマニフェストが必要です。生成されたマニフェストは、レプリケーション元バケットと同じ AWS リージョンに保存されている必要があります。マニフェストを生成しない場合は、レプリケートするオブジェクトを含む Amazon S3 インベントリレポートまたは CSV ファイルを指定できます。
-
バッチレプリケーションでは、レプリケート先バケットからオブジェクトのバージョン ID で削除されたオブジェクトの再レプリケーションはサポートされません。これらのオブジェクトを再レプリケートするには、バッチコピージョブを使用してソースオブジェクトを所定の場所でコピーします。これらのオブジェクトを所定の場所でコピーすると、レプリケート元バケットにオブジェクトの新しいバージョンが作成され、レプリケート先へのレプリケーションが自動的に開始されます。レプリケート先バケットを削除して再作成しても、レプリケーションは開始されません。
バッチコピーの詳細については、「バッチ操作を使用してオブジェクトをコピーする例」を参照してください。
-
S3 バケットでレプリケーションルールを使用している場合は、レプリケーション設定を更新して、レプリケーションルールにアタッチされている IAM ロールに、オブジェクトをレプリケートするための適切な権限を付与してください。IAM ロールには、ソースバケットとレプリケート先バケットの両方で S3 アクションを実行する権限が必要です。
-
短期間に同じバケットに対して複数の Batch レプリケーションジョブを送信すると、S3 はそれらのジョブを同時に実行します。
-
2 つの異なるバケットに対して複数の Batch レプリケーションジョブを送信する場合、S3 がすべてのジョブを同時に実行するわけではないことに注意してください。アカウントで一度に実行できる Batch レプリケーションジョブの数を超えると、S3 は優先度の低いジョブを一時停止して優先度の高いジョブを処理します。優先度の高い項目が完了すると、一時停止していたジョブは再びアクティブになります。
-
バッチオペレーションは、S3 Glacier Flexible Retrieval ストレージクラスと S3 Glacier Deep Archive ストレージクラスに保存されたオブジェクトに対してはサポートされていません。
-
アーカイブアクセスまたはディープアーカイブアクセスのストレージ階層に保存されている S3 Intelligent-Tiering オブジェクトのバッチレプリケーションを行うには、まず復元リクエストを開始し、オブジェクトが高頻度アクセス階層に移動されるまで待つ必要があります。
バッチレプリケーションジョブのマニフェストの指定
マニフェストは、Simple Storage Service (Amazon S3) でオペレーションを実行するオブジェクトのキーを含む Simple Storage Service (Amazon S3) のオブジェクトです。バッチレプリケーションジョブを作成する場合は、ユーザー生成のマニフェストを指定するか、レプリケーション設定に基づいて Simple Storage Service (Amazon S3) でマニフェストを生成させる必要があります。
ユーザーが作成したマニフェストを提供する場合は、Simple Storage Service (Amazon S3) インベントリレポートまたは CSV ファイルの形式である必要があります。マニフェスト内のオブジェクトがバージョニング対応のバケット内にある場合は、そのオブジェクトのバージョン ID を指定する必要があります。マニフェストで指定されたバージョン ID を持つオブジェクトのみがレプリケートされます。マニフェストの指定の詳細については、「マニフェストの指定」を参照してください。
Amazon S3 がユーザーに代わってマニフェストファイルを生成するように選択した場合、リストされるオブジェクトでは、ソースバケットのすべてのレプリケーション設定と同じレプリケーション元のバケット、プレフィックス、タグを使用します。生成されたマニフェストでは、Simple Storage Service (Amazon S3) はオブジェクトの適格なバージョンをすべてレプリケートします。
注記
マニフェストの生成を選択する場合は、レプリケーション元バケットと同じ AWS リージョンに保存されている必要があります。
バッチレプリケーションジョブのフィルター
バッチレプリケーションジョブを作成するときに、オプションで、オブジェクトの作成日やレプリケーションステータスなどの追加のフィルターを指定して、ジョブのスコープを縮小できます。
オブジェクトのレプリケーションは、ObjectReplicationStatuses
値を基に、以下の値を 1 つ以上指定することでフィルターできます。
-
"NONE"
- Simple Storage Service (Amazon S3) がこれまでオブジェクトのレプリケートを試みたことがないことを示します。 -
"FAILED"
- Simple Storage Service (Amazon S3) が以前にオブジェクトのレプリケートを試みたがオブジェクトのレプリケーションに失敗したことを示します。 -
"COMPLETED"
- Simple Storage Service (Amazon S3) が以前にオブジェクトを正常にレプリケートしたことを示します。 -
"REPLICA"
- Simple Storage Service (Amazon S3) が別のソースからレプリケートしたレプリカオブジェクトであることを示します。
レプリケーションステータスの詳細については、「レプリケーションステータス情報の取得」を参照してください。
レプリケーションのステータスに基づいてフィルターしない場合、バッチオペレーションは適格なすべてのレプリケーションを試みます。目標によっては、以下のいずれかの値に ObjectReplicationStatuses
を設定する場合があります。
-
レプリケートされたことがない既存のオブジェクトのみをレプリケートする場合は、
"NONE"
のみを含めます。 -
以前にレプリケートに失敗したオブジェクトのレプリケートのみを再試行する場合は、
"FAILED"
のみを含めます。 -
既存のオブジェクトをレプリケートし、以前にレプリケートに失敗したオブジェクトのレプリケーションを再試行する場合は、
"NONE"
と"FAILED"
の両方を含めます。 -
別のレプリケート先にレプリケートされたオブジェクトをレプリケート先バケットにバックフィルする場合は、
"COMPLETED"
を含めます。 -
以前にレプリケートオブジェクトをレプリケートする場合は、
"REPLICA"
を含めます。
バッチレプリケーション完了レポート
バッチレプリケーションジョブを作成するときに、CSV 完了レポートをリクエストできます。このレポートには、オブジェクト、レプリケーションの成功コードまたは失敗コード、出力、および説明が表示されます。ジョブの追跡と完了レポートの追跡については、「完了レポート」を参照してください。
レプリケーション失敗コードのリストと説明については、「Amazon S3 レプリケーションの失敗の理由」を参照してください。
バッチレプリケーションの使用開始
バッチレプリケーションの使用方法の詳細については、「チュートリアル: S3 バッチレプリケーションによる Amazon S3 バケット内の既存のオブジェクトのレプリケーション