オブジェクトのレプリケーション - Amazon Simple Storage Service

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

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

レプリケーションには、ライブレプリケーションオンデマンドレプリケーションの 2 種類があります。

  • ライブレプリケーション – レプリケート元のバケットに書き込まれる際に、新しく作成されたオブジェクトまたは更新されたオブジェクトを自動的にレプリケートするには、ライブレプリケーションを使用します。ライブレプリケーションでは、レプリケーションを設定する前にバケットに存在していたオブジェクトはレプリケートされません。レプリケーションを設定する前に存在していたオブジェクトをレプリケートするには、オンデマンドレプリケーションを使用します。

  • オンデマンドレプリケーション — レプリケート元のバケットから 1 つ以上のレプリケート先バケットにオンデマンドで既存のオブジェクトをレプリケートするには、S3 バッチレプリケーションを使用します。既存のオブジェクトのレプリケーションの詳細については、「S3 バッチレプリケーションを使用する状況」を参照してください。

ライブレプリケーションには、クロスリージョンレプリケーション (CRR)同一リージョンレプリケーション (SRR) の 2 つの形式があります。

レプリケーションを使用する理由

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

  • メタデータを保持しながらオブジェクトをレプリケートする — レプリケーションを使用すると、元のオブジェクトの作成時刻やバージョン ID などのすべてのメタデータを保持するオブジェクトのコピーを作成できます。この機能は、レプリカがレプリケート元オブジェクトと同じであることを確認する必要がある場合に重要です。

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

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

  • 複数の AWS リージョンに格納されたオブジェクトを保持する – 異なる AWS リージョン間で複数のレプリケート先バケットを設定して、データの保存場所を地理的に異なる場所にします。この機能は、特定のコンプライアンス要件を満たすのに役立つことがあります。

  • 15 分以内にオブジェクトをレプリケート — S3 Replication Time Control (S3 RTC) を使用して、予測可能な時間枠内で、同じ AWS リージョンまたは異なるリージョン間でデータをレプリケートできます。S3 RTC は、Simple Storage Service (Amazon S3) 内に保存されている新規オブジェクトの 99.99% を 15 分以内にレプリケートします (サービスレベルアグリーメントに基づく)。詳細については、「S3 Replication Time Control (S3 RTC) を使用してコンプライアンス要件を満たす」を参照してください。

    注記

    S3 RTC はバッチレプリケーションには適用されません。バッチレプリケーションはオンデマンドレプリケーションジョブで、S3 バッチオペレーションで追跡できます。詳細については、「ジョブステータスと完了レポートの追跡」を参照してください。

  • バケットの同期、既存オブジェクトのレプリケート、以前に失敗したオブジェクトまたはレプリケートされたオブジェクトのレプリケート - バケットを同期して既存のオブジェクトをレプリケートするには、オンデマンドレプリケーションアクションとしてバッチレプリケーションを使用します。バッチレプリケーション使用時の詳細については、「S3 バッチレプリケーションを使用する状況」を参照してください。

  • オブジェクトをレプリケートし、別のAWS リージョン のバケットにフェイルオーバーする - データレプリケーション中にバケット間ですべてのメタデータとオブジェクトを同期させるために、Amazon S3 マルチリージョンアクセスポイントのフェイルオーバーコントロールを構成する前に双方向レプリケーションルールを使用します。双方向のレプリケーションルールにより、トラフィックがフェイルオーバーする S3 バケットにデータが書き込まれると、そのデータがソースバケットにレプリケートされます。

クロスリージョンレプリケーションを使用する場合

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

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

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

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

同一リージョンレプリケーションを使用する時

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

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

  • 本番稼働用アカウントとテストアカウント間のライブレプリケーションを設定する — お客様またはお客様のユーザーが保持する本稼働用アカウントとテストアカウントで同じデータを使用する場合、オブジェクトメタデータを維持しながら、これらの複数のアカウント間でオブジェクトをレプリケートできます。

  • データ主権法に準拠する — データの複数のコピーを特定のリージョン内の複数の異なる AWS アカウントに保存することを義務付けられる場合があります。同一リージョンレプリケーションを使用すると、コンプライアンス規制によりデータを国外に持ち出すことが許可されていない場合に、重要なデータを自動的にレプリケートできます。

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

  • 複数の AWS リージョン で共有するデータセットを構築する — レプリカ変更の同期により、オブジェクトのアクセスコントロールリスト (ACL)、オブジェクトタグ、またはオブジェクトロックなどのメタデータの変更を、レプリケーションオブジェクトで簡単に複製することができます。この双方向のレプリケーションは、すべてのオブジェクトとオブジェクトメタデータの変更を同期させたい場合に重要です。同一または異なる AWS リージョン にある 2 つ以上のバケット間で双方向レプリケーションを実行する場合、新規または既存のレプリケーションルールでレプリカ変更の同期を有効にすることができます。

  • フェイルオーバー中にデータをリージョン間で同期させる — マルチリージョンアクセスポイントから直接 S3 クロスリージョンレプリケーション (CRR) で双方向レプリケーションルールを設定することで、AWS リージョン 間のバケットのデータを同期させることができます。フェイルオーバーを開始するタイミングについて十分な情報に基づいた決定を行うために、S3 レプリケーションメトリクスを有効にして Amazon CloudWatch 内、S3 Replication Time Control (S3 RTC) 内、またはマルチリージョンアクセスポイントからのレプリケーションをモニタリングすることもできます。

  • アプリケーションの可用性を高める — リージョンのトラフィックが中断した場合でも、双方向のレプリケーションルールを使用して、データレプリケーション中にすべてのメタデータとオブジェクトをバケット間で同期させることができます。

S3 バッチレプリケーションを使用する状況

バッチレプリケーションは、オンデマンドオプションとして、既存のオブジェクトを異なるバケットにレプリケートします。ライブレプリケーションとは異なり、これらのジョブは必要に応じて実行できます。バッチレプリケーションは、以下の場合に役立ちます。

  • 既存のオブジェクトのレプリケーション — バッチレプリケーションを使用して、同じリージョンレプリケーションまたはクロスリージョンレプリケーションが設定される前に、バケットに追加されたオブジェクトをレプリケートできます。

  • 以前にレプリケートに失敗したオブジェクトをレプリケートする - バッチレプリケーションジョブをフィルタリングして、レプリケーションステータスが [FAILED] (失敗) のオブジェクトをレプリケートできます。

  • すでにレプリケートされたオブジェクトをレプリケートする — データの複数のコピーを別々の AWS アカウントまたは AWS リージョンに保存することを義務付けられる場合があります。バッチレプリケーションでは、新規に追加された宛先に既存のオブジェクトをレプリケートできます。

  • レプリケーションルールから作成されたオブジェクトのレプリカをレプリケートする — レプリケーション設定では、レプリケート先バケットにオブジェクトのレプリカが作成されます。オブジェクトのレプリカは、バッチレプリケーションでのみレプリケートできます。

ワークロードの要件とライブレプリケーション

ワークロードの要件に応じて、一部のレプリケーションタイプは他のレプリケーションよりもユースケースに適していることがあります。次の表を使用して、使用するレプリケーションのタイプと、ワークロードで S3 Replication Time Control (S3 RTC) を使用するかどうかを判断します。S3 RTC は、Amazon S3 内に保存されている新規オブジェクトの 99.99% を 15 分以内にレプリケートします (サービスレベルアグリーメント (SLA) に基づく)。詳細については、「S3 Replication Time Control (S3 RTC) を使用してコンプライアンス要件を満たす」を参照してください。

ワークロードの要件に基づくレプリケーションの比較
ワークロードの要件 S3 RTC (15 分の SLA) クロスリージョンレプリケーション (CRR) 同一リージョンレプリケーション (SRR)
異なる AWS アカウント 間でオブジェクトをレプリケートする はい はい はい
24~48 時間以内に同じ AWS リージョン 内のオブジェクトをレプリケートする (SLA に基づかない) いいえ いいえ はい
24~48 時間以内に異なる AWS リージョン 内のオブジェクトをレプリケートする (SLA に基づかない) いいえ はい いいえ

予測可能なレプリケーション時間: SLA に基づき、15 分以内にオブジェクトの 99.9% をレプリケートする

はい いいえ いいえ