レプリケーションの要件と考慮事項 - Amazon Simple Storage Service

レプリケーションの要件と考慮事項

Amazon S3 レプリケーションでは以下が必要です。

  • ソースバケットの所有者は、自分のアカウントに対して送信元と送信先の AWS リージョン を有効にする必要があります。レプリケート先のバケット所有者は、自分のアカウントでレプリケート先リージョンを有効にしておく必要があります。

    AWS リージョンを有効または無効にする方法の詳細については、「AWS Account Management リファレンスガイド」の「アカウントで使用できる AWS リージョンの指定」を参照してください。

  • レプリケート元とレプリケート先の両方のバケットで、バージョニングを有効にする必要があります。バージョニングの詳細については、「S3 バージョニングによる複数のバージョンのオブジェクトの保持」を参照してください。

  • Amazon S3 には、お客様に代わってレプリケート元バケットから送信先バケットにオブジェクトをレプリケートするためのアクセス許可が必要です。これらのアクセス許可の詳細については、「ライブレプリケーションのアクセス許可の設定」を参照してください。

  • ソースバケット所有者がバケット内のオブジェクトを所有していない場合、オブジェクト所有者は、オブジェクトアクセスコントロールリスト (ACL) を使用して、バケット所有者に READ 権限と READ_ACP 権限を付与する必要があります。詳細については、「アクセスコントロールリスト (ACL) の概要」を参照してください。

  • レプリケート元バケットで S3 オブジェクトロックが有効になっている場合は、レプリケート先バケットでも S3 オブジェクトロックが有効になっている必要があります。

    Object Lock が有効になっているバケットでレプリケーションを有効にするには、AWS Command Line Interface、REST API、または AWS SDK を使用する必要があります。一般的な的な情報については、「S3 Object Lock を使用したオブジェクトのロック」を参照してください

    注記

    レプリケーションを設定するために使用する AWS Identity and Access Management (IAM) ロールで、ソース S3 バケットに対する 2 つの新しいアクセス許可を付与する必要があります。2 つの新しいアクセス許可は s3:GetObjectRetentions3:GetObjectLegalHold です。ロールに s3:Get* アクセス許可がある場合、そのロールは要件を満たしています。詳細については、「ライブレプリケーションのアクセス許可の設定」を参照してください。

詳細については、「ライブレプリケーションの設定の概要」を参照してください。

異なる 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 ログをレプリケート元やレプリケート先のバケットで有効にすると、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 のベストプラクティスとガイドライン」を参照してください。