レプリケーションの要件と考慮事項
Amazon S3 レプリケーションでは以下が必要です。
-
ソースバケットの所有者は、自分のアカウントに対して送信元と送信先の AWS リージョン を有効にする必要があります。レプリケート先のバケット所有者は、自分のアカウントでレプリケート先リージョンを有効にしておく必要があります。
AWS リージョン の有効化と無効化の詳細については、AWS 全般のリファレンス の「AWS リージョン の管理」を参照してください。
-
レプリケート元とレプリケート先の両方のバケットで、バージョニングを有効にする必要があります。バージョニングの詳細については、「S3 バケットでのバージョニングの使用」を参照してください。
-
Amazon S3 には、お客様に代わってレプリケート元バケットから送信先バケットにオブジェクトをレプリケートするためのアクセス許可が必要です。これらのアクセス許可の詳細については、「ライブレプリケーションのアクセス許可の設定」を参照してください。
-
ソースバケット所有者がバケット内のオブジェクトを所有していない場合、オブジェクト所有者は、オブジェクトアクセスコントロールリスト (ACL) を使用して、バケット所有者に
READ
権限とREAD_ACP
権限を付与する必要があります。詳細については、「アクセスコントロールリスト (ACL) の概要」を参照してください。 -
レプリケート元バケットで S3 オブジェクトロックが有効になっている場合は、レプリケート先バケットでも S3 オブジェクトロックが有効になっている必要があります。
Object Lock が有効になっているバケットでレプリケーションを有効にするには、AWS Command Line Interface、REST API、または AWS SDK を使用する必要があります。一般的な的な情報については、「S3 オブジェクトロックの使用」を参照してください
注記
レプリケーションを設定するために使用する AWS Identity and Access Management (IAM) ロールで、ソース S3 バケットに対する 2 つの新しいアクセス許可を付与する必要があります。2 つの新しいアクセス許可は
s3:GetObjectRetention
とs3:GetObjectLegalHold
です。ロールにs3:Get*
アクセス許可がある場合、そのロールは要件を満たしています。詳細については、「ライブレプリケーションのアクセス許可の設定」を参照してください。
詳細については、「ライブレプリケーションの設定」を参照してください。
異なる AWS アカウント がレプリケート元バケットとレプリケート先バケットを所有するクロスアカウントのシナリオでレプリケーション設定を設定している場合は、次の追加の要件が適用されます。
-
レプリケート先バケットの所有者は、バケットポリシーを使用してレプリケート元バケット所有者にオブジェクトをレプリケートするためのアクセス許可を付与する必要があります。詳細については、「レプリケーション元とレプリケーション先のバケットが異なる AWS アカウントによって所有されている場合の許可の付与」を参照してください。
-
レプリケート先バケットをリクエスタ支払いバケットとして設定することはできません。詳細については、「ストレージ転送と使用量のリクエスタ支払いバケットの使用」を参照してください。
レプリケーションの考慮事項
レプリケーションを設定する前に、以下を考慮してください。
トピック
ライフサイクル設定とオブジェクトのレプリカ
Amazon S3 がオブジェクトをレプリケートするのにかかる時間は、オブジェクトのサイズによって異なります。大きなオブジェクトの場合、数時間かかることもあります。レプリカがレプリケート先バケットで使用可能になるまでにはしばらく時間がかかります。レプリカの作成には、ソースバケットに対応するオブジェクトを作成するのと同じくらいの時間がかかります。レプリケート先バケットでライフサイクル設定が有効な場合、ライフサイクルルールでは、レプリケート先バケットでレプリカが使用可能になった時間ではなく、オブジェクトの元の作成時間が優先されることに注意してください。
レプリケーション設定では、バケットのバージョニングを有効にする必要があります。バケットのバージョニングを有効にする際、以下の点に注意してください。
-
オブジェクトの有効期限ライフサイクル設定がある場合は、バージョニングを有効にした後に
NonCurrentVersionExpiration
ポリシーを追加して、バージョニングを有効にする前と同じ完全な削除動作を維持する必要があります。 -
移行ライフサイクル設定がある場合は、バージョニングを有効にした後に、
NonCurrentVersionTransition
ポリシーの追加を検討する必要があります。
バージョニング設定とレプリケーション設定
レプリケート元バケットとレプリケート先バケットはどちらも、バケットにレプリケーションを設定するときに、バージョニングが有効になっている必要があります。レプリケート元バケットとレプリケート先バケットの両方でバージョニングを有効にして、レプリケート元バケットでレプリケーションを設定した後は、次の問題が発生します。
-
レプリケート元バケットのバージョニングを無効にしようとすると、Amazon S3 はエラーを返します。レプリケート元バケットのバージョニングを無効にする前に、レプリケーション設定を削除する必要があります。
-
レプリケート先バケットのバージョニングを無効にすると、レプリケーションは失敗します。レプリケート元オブジェクトのレプリケーションステータスは
FAILED
です。
S3 Intelligent-Tiering での S3 レプリケーションの使用
S3 Intelligent-Tiering は、最もコスト効率の高いアクセス階層にデータを自動的に移動することで、ストレージコストを最適化するように設計されたストレージクラスです。オブジェクトのモニタリングとオートメーションに対して発生する少額の月額料金で、S3 Intelligent-Tiering はアクセスパターンをモニタリングし、あまりアクセスされていないオブジェクトをより低コストのアクセス階層へ自動的に移動させることができます。
S3 バッチレプリケーションを使用して S3 Intelligent-Tiering に保存されたオブジェクトをレプリケートしたり、CopyObject または UploadPartCopy を呼び出したりすると、アクセスが構成されます。これらの場合、コピーやレプリケーションオペレーションのソースオブジェクトは上位の階層に移動されます。
S3 Intelligent-Tiering の詳細については、「Amazon S3 Intelligent-Tiering」を参照してください。
ログ設定とレプリケーション設定
レプリケーションが有効になっているバケットに Amazon S3 がログを送信している場合、ログオブジェクトをレプリケートします。
サーバーアクセスログ (サーバーアクセスログによるリクエストのログ記録) または AWS CloudTrail ログ (AWS CloudTrail を使用した Amazon S3 API コールのログ記録) をレプリケート元やレプリケート先のバケットで有効にすると、Amazon S3 はレプリケーション関連のリクエストをログに含めます。たとえば、Amazon S3 はレプリケートする各オブジェクトをログに記録します。
CRR とレプリケート先のリージョン
異なる AWS リージョン内の S3 バケット間でオブジェクトをコピーするには、Amazon S3 クロスリージョンレプリケーション (CRR) を使用します。レプリケート先バケットのリージョンは、ビジネスニーズまたはコストを考慮して選択することができます。例えば、リージョン間のデータ転送料金は、選択したリージョンによって異なります。
たとえば、レプリケート元バケットのリージョンとして米国東部 (バージニア北部) (us-east-1) を選択したとします。米国西部 (オレゴン) (us-west-2) をレプリケート先バケットのリージョンとして選択した場合、米国東部 (オハイオ) (us-east-2) リージョンを選択した場合より多く支払うことになります。料金の詳細については、Amazon S3 の料金
同一リージョンレプリケーション (SRR) に関連するデータ転送料金はありません。
S3 バッチレプリケーション
バッチレプリケーションの考慮事項については、「S3 バッチレプリケーションに関する考慮事項」を参照してください。
S3 Replication Time Control
S3 Replication Time Control (S3 RTC) のベストプラクティスと考慮事項については、「S3 RTC のベストプラクティスとガイドライン」を参照してください。