Amazon Simple Storage Service
開発者ガイド (API バージョン 2006-03-01)

レプリケーション

レプリケーションでは、異なる Amazon S3 バケット間でオブジェクトを自動的に非同期コピーできます。オブジェクトのレプリケーション用に設定されたバケットは、同じ AWS アカウントが所有することも、異なるアカウントが所有することもできます。オブジェクトを異なる AWS リージョン間でコピーすることも、同じリージョン内でコピーすることもできます。

オブジェクトのレプリケーションを有効にするには、バケットレベルの設定を使用します。レプリケーション設定をソースバケットに追加します。最小設定では、以下を指定する必要があります。

  • Amazon S3 がオブジェクトをレプリケートするレプリケート先バケット。

  • Amazon S3 がユーザーのためにオブジェクトをレプリケートできる AWS Identity and Access Management (IAM) ロール

追加の設定オプションが利用可能です。詳細については、「追加のレプリケーション設定」を参照してください。

オブジェクトレプリケーションの種類

オブジェクトを異なる AWS リージョン間でレプリケートすることも、同じ AWS リージョン内でレプリケートすることもできます。

  • 異なる AWS リージョン内の Amazon S3 バケット間でオブジェクトをコピーするには、クロスリージョンレプリケーション (CRR) を使用します。

  • 同一の AWS リージョン内の Amazon S3 バケット間でオブジェクトをコピーするには、同一リージョンレプリケーション (SRR) を使用します。

レプリケーションを使用する場合

レプリケーションは、以下の場合に役立ちます。

  • メタデータを保持しながらオブジェクトをレプリケートする — AWS Lambda 関数を介してオブジェクトをレプリケートすると便利です。ただし、この場合、元のオブジェクト作成時間やバージョン ID などのオブジェクトメタデータは保持されません。レプリケーションは、このメタデータを保持しながらオブジェクトをレプリケートするためのよりシンプルで自動化された方法を提供します。

     

  • オブジェクトを異なるストレージクラスにレプリケートする — レプリケーションを使用すると、オブジェクトを Glacier、DEEP ARCHIVE、または別のストレージクラスのレプリケーション先バケットに直接配置できます。データを同じストレージクラスにレプリケートし、レプリケーション先バケットのライフサイクルポリシーを使用して、オブジェクトが古くなるにつれてより冷たいストレージクラスに移動することもできます。

     

  • 異なる所有者のもとでオブジェクトのコピーを保持する — ソースオブジェクトの所有者に関係なく、レプリカの所有権をレプリケート先バケットを所有する AWS アカウントに変更するように Amazon S3 に指示できます。これは所有者オーバーライドオプションと呼ばれます。このオプションを使用すると、オブジェクトのレプリカへのアクセスを制限できます。

CRR を使用する場合

クロスリージョンレプリケーションは、次のことに役立ちます。

  • コンプライアンス要件への準拠 — Amazon Amazon S3 はデフォルトで地理的に離れた複数のアベイラビリティーゾーンにデータを保存しますが、コンプライアンス要件によっては、さらに離れた場所にデータを保存することが要求される場合があります。クロスリージョンレプリケーションでは、データを遠く離れた AWS リージョンにレプリケートできるため、そのような要件を満たせるようになります。

     

  • レイテンシーの最小化 — 顧客が地理的に別々の 2 つの場所にいる場合は、地理的にユーザーにより近い AWS リージョンにオブジェクトのコピーを保持することで、オブジェクトにアクセスする際のレイテンシーを最小にすることができます。

     

  • 運用効率の向上 — コンピューティングクラスターが 2 つの異なる AWS リージョンに存在していて同じオブジェクトセットを分析している場合、それらのリージョンでオブジェクトコピーを維持することができます。

SRR を使用する場合

同一リージョンレプリケーションは、次のことに役立ちます。

  • ログを単一のバケットに集約する — 複数のバケットまたは複数のアカウントでログを保存している場合、単一リージョン内のバケットにログを簡単にレプリケートできます。これにより、単一のアカウントでログをより簡単に処理できます。

     

  • 開発者アカウントとテストアカウント間のライブレプリケーションを設定する — お客様またはお客様の顧客が同じデータを使用する開発者アカウントとテストアカウントを持っている場合、SRR ルールを実装することにより、オブジェクトメタデータを維持しながら、複数のアカウント間でオブジェクトをレプリケートできます。

     

  • データ主権法に従う — 多くの場合、顧客はデータを個別の AWS アカウントに保存する必要があり、同時にデータを特定のリージョンから持ち出すことが禁止されています。同一リージョンレプリケーションは、コンプライアンス規制によりデータを国外に持ち出すことが許可されていない場合に、重要なデータのバックアップに役立ちます。

レプリケーションの要件

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

  • ソースバケットの所有者は、自分のアカウントに対して送信元と送信先の AWS リージョンを有効にする必要があります。送信先バケットの所有者は、自分のアカウントに対して送信先リージョンを有効にする必要があります。AWS リージョンを有効または無効にする方法の詳細については、「AWS General Reference」の「 リージョンとエンドポイント 」を参照してください。

  • レプリケート元とレプリケート先の両方のバケットで、バージョニングを有効にする必要があります。

  • Amazon S3 には、ユーザーに代わってレプリケート元バケットのオブジェクトをレプリケート先バケットにレプリケートするアクセス許可が必要です。

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

  • ソースバケットで Amazon S3 オブジェクトロックが有効になっている場合は、宛先バケットでもオブジェクトロックが有効になっている必要があります。詳細については、Amazon S3 オブジェクトロックを使用したオブジェクトのロック を参照してください。

    オブジェクトロックが有効になっているバケットでレプリケーションを有効にするには、AWS サポートまでお問い合わせください。

詳細については、「レプリケーションのセットアップの概要」を参照してください。

異なる AWS アカウントがレプリケート元バケットとレプリケート先バケットを所有するクロスアカウントのシナリオでレプリケーション設定を設定している場合は、次の追加の要件が適用されます。