メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

クロスリージョンレプリケーション

クロスリージョンレプリケーションはバケットレベルの機能を持ち、異なる AWS リージョンにあるバケット間でオブジェクトを自動的に非同期コピーします。 この機能を有効にするには、replication 設定をレプリケート元バケットに追加します。 設定では、オブジェクトのレプリケート先バケットなどの情報を指定します。すべてのオブジェクト、または、特定のキー名のプレフィックスが付いた一部のオブジェクトをレプリケートするように Amazon S3 にリクエストできます。 たとえば、キー名のプレフィックスが Tax/ であるオブジェクトのみをレプリケートするようにクロスリージョンレプリケーションを設定できます。 これより、Amazon S3 は Tax/doc1Tax/doc2 のようなキーを持つオブジェクトをレプリケートしますが、Legal/doc3 のようなキーを持つオブジェクトはレプリケートしません。

レプリケート先バケットにあるオブジェクトのレプリカは、レプリケート元バケットにあるオブジェクトの正確なレプリカです。このすべては、同じキー名とメタデータを持ちます。たとえば、作成時間、所有者、ユーザー定義メタデータ、ID バージョン、ACL やストレージクラス(レプリケーション設定でオブジェクトレプリカごとに異なるストレージクラスを特定しなかった場合)などです。 Amazon S3 は、SSL を使用して AWS リージョンにわたり、伝送中のすべてのデータ転送を暗号化します。 また、オプションで Amazon S3 がオブジェクトレプリカを作成したときに使用するストレージクラスを指定できます。(この特定を行わない場合には、Amazon S3 はソースオブジェクトのストレージクラスを適用します)。

ユースケースのシナリオ

バケットにクロスリージョンレプリケーションを設定する理由はさまざまです。以下に例を挙げます。

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

  • レイテンシーの最小化 – 顧客が 2 つの地域にいるとします。その場合、オブジェクトにアクセスする際のレイテンシーを最小にするために、地理的にユーザーのより近くにある AWS リージョンにオブジェクトのコピーを保持できます。

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

コスト上の考慮を取り入れる場合にはオプションで、STANDARD_IA ストレージクラスをオブジェクトレプリカに使用するよう Amazon S3 に直接指示できます。 コストの詳細については、Amazon S3 料金表を参照してください。

要件

クロスリージョンレプリケーションの要件は以下のとおりです。

  • レプリケート元とレプリケート先のバケットでは、バージョニングを有効にする必要があります。 バージョニングの詳細については、「バージョニングの使用」を参照してください。

  • レプリケート元とレプリケート先のバケットは、異なる AWS リージョンに存在する必要があります。バケットを作成できる AWS リージョンのリストについては、『AWS General Reference』の「リージョンとエンドポイント」を参照してください。

  • レプリケート元バケットのオブジェクトをレプリケートできるのは、1 つのレプリケート先バケットに対してのみです。

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

    Amazon S3 が引き受けることのできる IAM ロールを作成することで、このアクセス権限を付与できます。 Amazon S3 がこのロールを引き受けたときにレプリケーションタスクを実行できるためには、ロールに Amazon S3 アクションのアクセス権限を付与する必要があります。 IAM ロールの詳細については、「IAM ロールを作成します。」を参照してください。

  • レプリケート元バケットの所有者がオブジェクトも所有している場合、バケット所有者はオブジェクトをレプリケートする完全なアクセス権限を持ちます。 そうでない場合、レプリケート元バケットの所有者は、オブジェクトとオブジェクト ACL を読み取る s3:GetObjectVersions3:GetObjectVersionACL の Amazon S3 アクションに対するアクセス権限を持つ必要があります。 Amazon S3 アクションの詳細については、「ポリシーでのアクセス許可の指定」を参照してください。 リソースと所有権についての詳細は、「Amazon S3 リソース」を参照してください。

  • クロスアカウントシナリオでクロスリージョンレプリケーションをセットアップする場合(レプリケート元とレプリケート先のバケットが異なる AWS アカウントによって所有されている)、レプリケート元バケットの所有者には、レプリケート先バケットにオブジェクトをレプリケートするアクセス権限が必要です。

    レプリケート先バケットの所有者は、バケットポリシーを通じてこのアクセス権限を付与する必要があります。 例については、「チュートリアル 2: レプリケート元とレプリケート先のバケットが異なる AWS アカウントによって所有されているクロスリージョンレプリケーションの設定」を参照してください。

レプリケートするものと、しないもの

クロスリージョンレプリケーションのセットアップ方法

オブジェクトのレプリケーションのステータスを確認する方法

クロスリージョンレプリケーションと他のバケット設定

チュートリアル 1: レプリケート元とレプリケート先のバケットが同一の AWS アカウントによって所有されているクロスリージョンレプリケーションの設定

チュートリアル 2: レプリケート元とレプリケート先のバケットが異なる AWS アカウントによって所有されているクロスリージョンレプリケーションの設定